Ana içeriğe geç
Version: 13.x

Harici API

Harici API, programların bir HTTP çağrısıyla UMS işlevlerine erişmesini veya bunları tetiklemesini sağlar.

Harici API nasıl etkinleştirilir

UMS.conf dosyasını düzenleyin ve şunun gibi bir api_anahtarı yapılandırın

api_anahtarı = gizli_parola

gizli_parola en az 12 karakterden oluşmak zorundadır.

API kullanımı

Eğer harici API etkinleştirildiyse, API’ye /api/KOMUT olarak yapılan bir POST çağrısıyla erişilebilir.

Klasör Tarama

rescan

NiyetTüm kütüphaneyi yeniden tarar
URI/api/folderscanner/rescan
POST BODYYOK
POST BODY örnek / açıklamaBu komutun gövde içeriğine ihtiyacı yoktur
Şu sürümden beri mevcut10.4.2

Bu, büyük kütüphaneler için yavaş olabilir

Örnek:

curl -w "%{http_code}\n" -H "api-key: gizli_parola" http://localhost:5001/api/folderscanner/rescan

rescanFileOrFolder

NiyetDosya sisteminin kısmi bir alt ağacını yeniden tarar.
URI/api/folderscanner/rescanFileOrFolder
POST BODYTARANACAK_YOL
POST BODY örnek / açıklamaörnek: "/music/pop/Madonna". Yol, paylaşılan bir yolun kök veya alt klasörü olmak zorundadır.
Şu sürümden beri mevcut10.4.2

Örnek:

curl -d "TARANACAK_YOL" -w "%{http_code}\n" -H "api-key: gizli_parola" -X POST http://localhost:5001/api/folderscanner/rescanFileOrFolder

Müzik Beğenme (albümler ve şarkılar)

like song

Şarkı beğenildi olarak işaretlenecektir.

NiyetmusicBrainz trackId ile tanımlanan bir şarkıyı beğenir
URI<span class="s1">/api/like/likesong</span>
POST BODYmusicBrainz_trackID
POST BODY örnek / açıklamab8695995-45e9-405d-b4aa-e50e8760fe25
Şu sürümden beri mevcut10.20

Örnek:

curl -d "b8695995-45e9-405d-b4aa-e50e8760fe25" -w "%{http_code}\n" -H "api-key: secret_password" -X POST http://localhost:5001/api/like/likesong

dislike song

Şarkı beğenilmeyecektir

NiyetmusicBrainz trackId ile tanımlanan bir şarkıyı beğenmez
URI<span class="s1">/api/like/</span>dislikesong
POST BODYmusicBrainz_trackID
POST BODY örnek / açıklamab8695995-45e9-405d-b4aa-e50e8760fe25
Şu sürümden beri mevcut10.20

Örnek:

curl -d "b8695995-45e9-405d-b4aa-e50e8760fe25" -w "%{http_code}\n" -H "api-key: secret_password" -X POST http://localhost:5001/api/like/dislikesong

is song liked

Şarkının beğenilip beğenilmediğini denetleyin.

NiyetmusicBrainz trackId ile tanımlanan şarkının beğenilip beğenilmediğini denetler
URI<span class="s1">/api/like/</span><span class="s1">issongliked</span>
POST BODYmusicBrainz_trackID
POST BODY örnek / açıklamab8695995-45e9-405d-b4aa-e50e8760fe25
RESPONSE BODYTRUE veya FALSE
Şu sürümden beri mevcut10.20

Örnek:

curl -d "b8695995-45e9-405d-b4aa-e50e8760fe25" -w "%{http_code}\n" -H "api-key: secret_password" -X POST http://localhost:5001/api/like/issongliked

Bu çağrı, musicbrainz yayım kimliği 1e0eee38-a9f6-49bf-84d0-45d0647799af ile tanımlanan albümün beğenildi özniteliğini ekler.

like album

Albüm beğenme durumunu true olarak ayarlayın.

NiyetmusicBrainz releaseID ile tanımlanan bir albümü beğenir
URI<span class="s1">/api/like/</span>likealbum
POST BODYmusicBrainz_releaseID
POST BODY örnek / açıklama1e0eee38-a9f6-49bf-84d0-45d0647799af
Şu sürümden beri mevcut10.20

Örnek:

curl -d "1e0eee38-a9f6-49bf-84d0-45d0647799af" -w "%{http_code}\n" -H "api-key: secret_password" -X POST http://localhost:5001/api/like/likealbum

dislike album

Albüm beğenme durumunu kaldırın.

NiyetmusicBrainz releaseID ile tanımlanan bir şarkıyı beğenmez
URI<span class="s1">/api/like/</span>dislikealbum
POST BODYmusicBrainz_releaseID
POST BODY örnek / açıklama1e0eee38-a9f6-49bf-84d0-45d0647799af
Şu sürümden beri mevcut10.20

Örnek:

curl -d "1e0eee38-a9f6-49bf-84d0-45d0647799af" -w "%{http_code}\n" -H "api-key: secret_password" -X POST http://localhost:5001/api/like/dislikealbum

Bu çağrı, musicbrainz yayım kimliği 1e0eee38-a9f6-49bf-84d0-45d0647799af ile tanımlanan albümün beğenildi özniteliğini kaldırır.

is album liked

Albüm beğenme durumunu denetleyin.

NiyetmusicBrainz releaseID ile tanımlanan albümün beğenilip beğenilmediğini denetler
URI<span class="s1">/api/like/</span>isalbumliked
POST BODYmusicBrainz_releaseID
POST BODY örnek / açıklama1e0eee38-a9f6-49bf-84d0-45d0647799af
RESPONSE BODY"TRUE" veya "FALSE"
Şu sürümden beri mevcut10.20

Örnek:

curl -d "1e0eee38-a9f6-49bf-84d0-45d0647799af" -w "%{http_code}\n" -H "api-key: secret_password" -X POST http://localhost:5001/api/like/isalbumliked

Bu çağrı, musicbrainz yayım kimliği 1e0eee38-a9f6-49bf-84d0-45d0647799af ile tanımlanan albümün beğenilip beğenilmediğini denetler.

Derecelendirme

Derecelendirme API’si, şarkıları değerlendirmekten sorumludur. Derecelendirme bilgileri dahili veritabanına (önbellek etkin) ve isteğe bağlı olarak dosyanın kendisine kaydedilir. Eğer UMS.conf içinde  audio_update_rating_tag = true olarak ayarlanırsa, IDv3 derecelendirme alanı da şarkı dosyasında güncellenir (şarkı dosyası biçimi destekleniyorsa).

İçerik dizini sunucusuna göz atarken, MusicBrainzTrackID (varsa) ve audiotrackID, DIDL öğesi içinde desc üstverisi olarak teslim edilir.

set rating

NiyetmusicBrainz trackId ile tanımlanan bir şarkıda derecelendirmeyi yıldız (0 - 5) olarak ayarlar
URI<span class="s1">/api/</span><span class="s1">rating/setrating</span>
POST BODYmusicbrainzTrackId /stars
POST BODY örnek / açıklamab8695995-45e9-405d-b4aa-e50e8760fe25/3
Şu sürümden beri mevcut10.20

Örnek:

curl -d "b8695995-45e9-405d-b4aa-e50e8760fe25/3" -w "%{http_code}\n" -H "api-key: secret_password" -X POST http://localhost:5001/api/rating/setrating

Bu çağrı, musicbrainz parça kimliği b8695995-45e9-405d-b4aa-e50e8760fe25 ile tanımlanan tüm şarkıların kullanıcı derecelendirmesini 3 olarak ayarlar.

get rating

Veritabanından şarkı derecelendirmesini okur

NiyetmusicBrainz trackID ile şarkı derecelendirmesini yıldız (0 - 5) olarak alır. Yanıt gövdesi derecelendirme bilgilerini içerir.
URI<span class="s1">/api/</span><span class="s1">rating/getrating </span>
POST BODYmusicbrainzTrackId
POST BODY örnek / açıklamab8695995-45e9-405d-b4aa-e50e8760fe25
RESPONSE BODY örnek3
Şu sürümden beri mevcut10.20

Örnek:

curl -d "b8695995-45e9-405d-b4aa-e50e8760fe25" -w "%{http_code}\n" -H "api-key: secret_password" -X POST http://localhost:5001/api/rating/getrating

Bu çağrı, musicbrainz parça kimliği b8695995-45e9-405d-b4aa-e50e8760fe25 ile tanımlanan bir şarkının kullanıcı derecelendirmesini okur.

set rating by audiotrack id

NiyetUMS dahili audiotrackID ile tanımlanan bir şarkıda derecelendirmeyi yıldız (0 - 5) olarak ayarlar
URI<span class="s1">/api/</span><span class="s1">rating/setRatingByAudiotrackId </span>
POST BODYtrackID /stars
POST BODY örnek / açıklama32
Şu sürümden beri mevcut11.0

Örnek:

curl -d "32/3" -w "%{http_code}\n" -H "api-key: secret_password" -X POST http://localhost:5001/api/rating/setrating

Bu çağrı, audiotrack kimliği 32 ile tanımlanan şarkıların kullanıcı derecelendirmesini 3 olarak ayarlar.

get rating by audiotrack id

Veritabanından şarkı derecelendirmesini okur

NiyetUMS dahili audiotrackID ile şarkı derecelendirmesini yıldız (0 - 5) olarak alır. Yanıt gövdesi derecelendirme bilgilerini içerir.
URI<span class="s1">/api/</span><span class="s1">rating/getRatingByAudiotrackId</span>
POST BODYtrackId
POST BODY örnek / açıklama32
RESPONSE BODY örnek3
Şu sürümden beri mevcut11.0

Örnek:

curl -d "32" -w "%{http_code}\n" -H "api-key: secret_password" -X POST http://localhost:5001/api/rating/getRatingByAudiotrackId

Bu çağrı, UMS audiotrack-id 32 ile tanımlanan bir şarkının kullanıcı derecelendirmesini okur.

Yedekleme / Geri yükleme

Kullanıcı tarafından yönetilen "beğenilen albüm" girişleri, database_backup adlı bir profil dizini alt klasörüne yedeklenebilir. Dosya adı MUSIC_BRAINZ_RELEASE_LIKE’dır. UMS veritabanının silinmesi durumunda geri yüklemeyi çağırmanız yeterlidir.

backup liked albums

MUSIC_BRAINZ_RELEASE_LIKE tablosunu dosya sistemine yedekler

NiyetBeğenilen şarkıları dosya sistemine yedekler
URI<span class="s1"><span class="s1">/api/like/</span></span>backupLikedAlbums
REQUEST TYPEGET
RESPONSE BODYOK veya hata iletisi
Şu sürümden beri mevcut10.20

Örnek:

curl -w "%{http_code}\n" -H "api-key: gizli_parola" -X GET http://localhost:5001/api/like/backupLikedAlbums

Bu çağrı, beğenilen albümleri içeren bir yedekleme dosyası oluşturacaktır.

restore liked albums

MUSIC_BRAINZ_RELEASE_LIKE tablosunu dosya sisteminden geri yükler

NiyetBeğenilen şarkıları yedekleme dosyasından geri yükler
URI<span class="s1"><span class="s1"><span class="s1">/api/like/</span></span></span>restoreLikedAlbums
REQUEST TYPEGET
RESPONSE BODYOK veya hata iletisi
Şu sürümden beri mevcut10.20

Örnek:

curl -w "%{http_code}\n" -H "api-key: gizli_parola" -X GET http://localhost:5001/api/like/restoreLikedAlbums

Bu çağrı, yedekleme dosyasını geri yükler.

Çalma listesi

enable service

Bu hizmeti etkinleştirmek için UMS.conf dosyasını düzenleyin ve 

<span class="s1">managed_playlist_folder</span> = PATH_TO_PLAYLIST_FOLDER

parametresini ayarlayarak yönetilen bir çalma listesi klasörü yapılandırın. Varsayılan olarak bu hizmet etkisizleştirilmiştir. Çalma listesi klasörü yolu, UMS tarafından görünür olması için bu API tarafından yapılan değiştirilmiş çalma listesi için yapılandırılmış bir paylaşılan <span class="s1">klasörler</span> yolunun altında bulunmalıdır.

list all playlists

Mevcut çalma listelerini okur. Bu çalma listesi adları, sonraki çağrılarda şarkı eklemek veya kaldırmak için kullanılmak zorundadır.

NiyetTüm desteklenen (m3u, m3u8 ve pls) ve yapılandırılmış klasördeki mevcut çalma listelerini sunar. Çalma listesi adının yanı sıra playlistId oynatma listeleri
URI<span class="s1">/api/</span><span class="s1">playlist</span><span class="s1">/</span><span class="s1">getAllPlaylists</span>
REQUEST TYPEGET
RESPONSE BODYÇalma listesi adlarının JSON dizilimi
RESPONSE BODY örnek<span class="s1">["Pop","Jazz","Classic"]</span>
Şu sürümden beri mevcut11.0

Örnek:

curl -d "" -w "\n%{http_code}\n" -H "api-key: gizli_parola" -X GET http://localhost:5001/api/playlist/getAllPlaylists

Bu çağrı, tüm mevcut çalma listelerini listeleyecek.

list server accessible playlists

Bunların tümü UMS tarafından bilinen çalma listeleridir (veritabanı/önbellek etkin). Bu çalma listesi adları, sonraki çağrılarda şarkı eklemek veya kaldırmak için kullanılmak zorundadır. Çalma listesi kimliği, objectId $DBID$PLAYLIST$ concat databaseId’ye göz atarak doğrudan çalma listesine gitmek için kullanılabilir.

NiyetTüm desteklenen (m3u, m3u8 ve pls) ve yapılandırılmış klasördeki mevcut çalma listelerini sunar
URI<span class="s1">`/api/</span><span class="s1">playlist</span><span class="s1">/</span>getserverplaylists` ``
REQUEST TYPEGET
RESPONSE BODYÇalma listesi adlarının JSON dizilimi
RESPONSE BODY örnek[{"playlistName":"Jazz","playlistId":5},{"playlistName":"Charts","playlistId":343}]
Şu sürümden beri mevcutdev dalı

Örnek:

curl -d "" -w "\n%{http_code}\n" -H "api-key: gizli_parola" -X GET http://localhost:5001/api/playlist/getserverplaylists

Bu çağrı, UMS tarafından erişilebilen tüm mevcut çalma listelerini listeleyecek.

adding songs to playlists

Gerekli audiotrackid, UPnP tarama istekleri sırasında teslim edilir ve descMetadata DIDL yanıt özniteliğinden çıkarılabilir

<ums-tags>
[...]
    <audiotrackid>ID</audiotrackid>
[...]
</ums-tags>
NiyetÇalma listesine şarkı ekler
URI<span class="s1">/api/</span><span class="s1">playlist</span><span class="s1">/</span><span class="s1">addSongToPlaylist</span>
REQUEST TYPEPOST
POST BODYaudiotrackid<span style="background-color: #bfe6ff; font-size: 11.76px; white-space: pre-wrap;">/PLAYLIST</span>
POST BODY örnek / açıklama123/Pop
RESPONSE BODYYOK
Şu sürümden beri mevcut11.0

Örnek:

curl -d "123/Pop" -w "\n%{http_code}\n" -H "api-key: gizli_parola" -X POST http://localhost:5001/api/playlist/addSongToPlaylist

Bu, kimliği 123 olan şarkıyı Pop çalma listesine ekler.

removing songs from playlists

Gerekli audiotrackid, UPnP tarama istekleri sırasında teslim edilir ve descMetadata DIDL yanıt özniteliğinden çıkarılabilir

<ums-tags>
[...]
    <audiotrackid>ID</audiotrackid>
[...]
</ums-tags>

``

NiyetŞarkıyı çalma listesinden kaldırır
URI<span class="s1">/api/</span><span class="s1">playlist</span><span class="s1">/</span><span class="s1">removeSongFromPlaylist</span>
REQUEST TYPEPOST
POST BODYaudiotrackid<span style="background-color: #bfe6ff; font-size: 11.76px; white-space: pre-wrap;">/PLAYLIST</span>
POST BODY örnek / açıklama123/Pop
RESPONSE BODYYOK
Şu sürümden beri mevcut11.0

Örnek:

curl -d "123/Pop" -w "\n%{http_code}\n" -H "api-key: gizli_parola" -X POST http://localhost:5001/api/playlist/removeSongFromPlaylist

Bu, kimliği 123 olan şarkıyı Pop çalma listesinden kaldırır.

create new playlists

Çalma listesi adı herhangi bir yol ve dosya uzantısı olmadan sağlanmalıdır. 

NiyetYönetilen çalma listesi klasöründe yeni çalma listeleri oluşturma
URI<span class="s1">/api/</span><span class="s1">playlist</span><span class="s1">/</span><span class="s1">createPlaylist</span>
REQUEST TYPEPOST
POST BODY<span style="background-color: #bfe6ff; font-size: 11.76px; white-space: pre-wrap;">ÇALMALİSTESİ_ADI</span>
POST BODY örnek / açıklamaModern
RESPONSE BODYYOK
Şu sürümden beri mevcut11.0

Örnek:

curl -d "Modern" -w "\n%{http_code}\n" -H "api-key: gizli_parola" -X POST http://localhost:5001/api/playlist/createPlaylist

Bu çağrı, yönetilen çalma listesi klasöründe Contemporary.m3u8 adlı yeni bir çalma listesi dosyası oluşturur.

Java kodu örneği

Bu kod parçacığı, API’nin okhttp3 kütüphanesi ile nasıl kullanılacağını gösterir.

import nextcp.dto.Config;
import nextcp.dto.UmsServerApiKey;
import okhttp3.Call;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;

[...]

    public String executeCall() throws IOException
    {
        String postBody = "1e0eee38-a9f6-49bf-84d0-45d0647799af";
        String apiKey = "secret_password";
        RequestBody body = RequestBody.create(postBody, MediaType.parse("application/text"));
        String requestUrl = "http://127.0.0.1:5001/api/like/likealbum";
        Request request = new Request.Builder().url(requestUrl).addHeader("api-key", apiKey).post(body).build();
        Call call = okClient.newCall(request);
        Response response = call.execute();
        return response.body().string();
    }

HTTP dönüş kodları

| 200 | TAMAM | | 204 | hiçbir içeriğin döndürülmemesi gerekiyorsa başarılı | | 401 | geçersiz API anahtarı | | 404 | istenen nesne bulunamadı | | 417 | API isteği başarısız oldu | | 503 | harici api etkin değil. UMS.conf dosyasında 12 veya daha fazla karakter uzunluğunda bir api_anahtarı ayarlayın |