Ugrás a fő tartalomhoz
Verzió: 14.x

Külső API

Külső API lehetővé teszi a programok számára, hogy HTTP-hívással elérjék vagy aktiválják az UMS-funkciókat.

Hogyan lehet engedélyezni a külső API-t

Szerkessze az UMS.conf fájlt, és állítson be egy ilyen api_key-t

api_key = secret_password

A secret_password legalább 12 karakter hosszúnak kell lennie.

API használat

Ha a külső API engedélyezve van, az API elérhető egy POST hívással a /api/COMMAND végponton.

Mappa beolvasás

újra beolvasás

FunkcióÚjravizsgálja a teljes könyvtárat
URI/api/folderscanner/rescan
POST BODYNINCS
POST BODY példa / leírásEnnek a parancsnak nincs szüksége body tartalomra
Elérhető10.4.2
információ

Ez nagy könyvtárak esetén lassú lehet

Példa:

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

fájl vagy mappa újravizsgálata

FunkcióA fájlrendszer egy részleges almappájának újravizsgálata.
URI/api/folderscanner/rescanFileOrFolder
POST BODYPATH_TO_SCAN
POST BODY példa / leíráspélda: "/music/pop/Madonna". Az útvonalnak egy megosztott útvonal gyökere vagy almappája kell lennie.
Elérhető10.4.2

Példa:

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

Zene kedvelése (albumok és dalok)

dal kedvelése

A dal kedveltnek lesz jelölve.

FunkcióDal kedvelése, amelyet a musicBrainz trackId azonosít
URI<span class="s1">/api/like/likesong</span>
POST BODYmusicBrainz_trackID
POST BODY példa / leírásb8695995-45e9-405d-b4aa-e50e8760fe25
Elérhető10.20

Példa:

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

dal nem kedvelése

A dal nem lesz nem kedvelt.

FunkcióDal nem kedvelése, amelyet a musicBrainz trackId azonosít
URI<span class="s1">/api/like/</span>dislikesong
POST BODYmusicBrainz_trackID
POST BODY példa / leírásb8695995-45e9-405d-b4aa-e50e8760fe25
Elérhető10.20

Példa:

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

a dal kedvelt?

Ellenőrizni, hogy a dal kedvelt-e.

FunkcióEllenőrizni, hogy a dal kedvelt-e, amelyet a musicBrainz trackId azonosít
URI<span class="s1">/api/like/</span><span class="s1">issongliked</span>
POST BODYmusicBrainz_trackID
POST BODY példa / leírásb8695995-45e9-405d-b4aa-e50e8760fe25
RESPONSE BODYTRUE or FALSE
Elérhető10.20

Példa:

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

Ez a hívás hozzáadja a kedvelt attribútumot az albumhoz, amelyet a musicbrainz release-id 1e0eee38-a9f6-49bf-84d0-45d0647799af azonosít.

album kedvelése

Állítsd be az album kedveltségi állapotát igazra.

FunkcióAlbum kedvelése, amelyet a musicBrainz releaseID azonosít
URI<span class="s1">/api/like/</span>likealbum
POST BODYmusicBrainz_releaseID
POST BODY példa / leírás1e0eee38-a9f6-49bf-84d0-45d0647799af
Elérhető10.20

Példa:

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

album nem kedvelése

Az album kedveltségi állapotának eltávolítása.

FunkcióDal nem kedvelése, amelyet a musicBrainz releaseID azonosít
URI<span class="s1">/api/like/</span>dislikealbum
POST BODYmusicBrainz_releaseID
POST BODY példa / leírás1e0eee38-a9f6-49bf-84d0-45d0647799af
Elérhető10.20

Példa:

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

Ez a hívás eltávolítja a kedvelt attribútumot az albumról, amelyet a musicbrainz release-id 1e0eee38-a9f6-49bf-84d0-45d0647799af azonosít.

az album kedvelt?

Ellenőrizni az album kedveltségi állapotát.

FunkcióEllenőrizni, hogy az album kedvelt-e, amelyet a musicBrainz releaseID azonosít.
URI<span class="s1">/api/like/</span>isalbumliked
POST BODYmusicBrainz_releaseID
POST BODY példa / leírás1e0eee38-a9f6-49bf-84d0-45d0647799af
RESPONSE BODY"TRUE" or "FALSE"
Elérhető10.20

Példa:

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

Ez a hívás ellenőrzi, hogy az album, amelyet a musicbrainz release-id 1e0eee38-a9f6-49bf-84d0-45d0647799af azonosít, kedvelt-e.

Értékelés

Az értékelési API a dalok értékeléséért felelős. Az értékelési információk a belső adatbázisban (gyorsítótár aktív) kerülnek mentésre, és opcionálisan magában a fájlban is tárolhatók. Ha az audio_update_rating_tag = true be van állítva az UMS.conf fájlban, akkor az IDv3 értékelési mező is frissítésre kerül a dal fájlban (ha a fájlformátum támogatott).

A tartalomkönyvtár szerver böngészése során a MusicBrainzTrackID (ha elérhető) és az audiotrackID a desc metadataként kerül átadásra a DIDL elemben.

értékelés beállítása

FunkcióÉrtékelés beállítása csillagokban (0 - 5) egy dalon, amelyet a musicBrainz trackId azonosít
URI<span class="s1">/api/</span><span class="s1">rating/setrating</span>
POST BODYmusicbrainzTrackId /stars
POST BODY példa / leírásb8695995-45e9-405d-b4aa-e50e8760fe25/3
Elérhető10.20

Példa:

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

Ez a hívás beállítja az összes, a musicbrainz track-id-val b8695995-45e9-405d-b4aa-e50e8760fe25 azonosított dal felhasználói értékelését 3-ra.

értékelés lekérése

A dal értékelésének lekérése az adatbázisból.

FunkcióA dal értékelésének lekérése csillagokban (0 - 5) a musicBrainz trackID alapján. A RESPONSE BODY tartalmazza az értékelési információkat.
URI<span class="s1">/api/</span><span class="s1">rating/getrating </span>
POST BODYmusicbrainzTrackId
POST BODY példa / leírásb8695995-45e9-405d-b4aa-e50e8760fe25
RESPONSE BODY példa3
Elérhető10.20

Példa:

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

Ez a hívás lekéri a felhasználói értékelést egy dalról, amelyet a musicbrainz track-id b8695995-45e9-405d-b4aa-e50e8760fe25 azonosít.

értékelés beállítása audiotrack ID alapján

FunkcióÉrtékelés beállítása csillagokban (0 - 5) egy dalon, amelyet az UMS belső audiotrackID azonosít
URI<span class="s1">/api/</span><span class="s1">rating/setRatingByAudiotrackId </span>
POST BODYtrackID /stars
POST BODY példa / leírás32
Elérhető11.0

Példa:

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

Ez a hívás beállítja a 32 audiotrackID-val azonosított dal felhasználói értékelését 3-ra.

értékelés lekérése audiotrack ID alapján

A dal értékelésének lekérése az adatbázisból.

FunkcióA dal értékelésének lekérése csillagokban (0 - 5) az UMS belső audiotrackID alapján. A RESPONSE BODY tartalmazza az értékelési információkat.
URI<span class="s1">/api/</span><span class="s1">rating/getRatingByAudiotrackId</span>
POST BODYtrackId
POST BODY példa / leírás32
RESPONSE BODY példa3
Elérhető11.0

Példa:

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

Ez a hívás lekéri a felhasználói értékelést egy dalról, amelyet az UMS audiotrack-id 32 azonosít.

Biztonsági mentés / Visszaállítás

A felhasználó által kezelt "kedvelt album" bejegyzések biztonsági mentése elvégezhető egy profil mappáján belüli database_backup nevű almappába. A fájlnév MUSIC_BRAINZ_RELEASE_LIKE. Ha az UMS adatbázis törlődik, egyszerűen hajtsd végre a visszaállítást.

kedvelt albumok biztonsági mentése

A MUSIC_BRAINZ_RELEASE_LIKE tábla biztonsági mentése a fájlrendszerre

Funkciókedvelt dalok biztonsági mentése a fájlrendszerre
URI<span class="s1"><span class="s1">/api/like/</span></span>backupLikedAlbums
REQUEST TYPEGET
RESPONSE BODYOK vagy hibaüzenet
Elérhető10.20

Példa:

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

Ez a hívás létrehoz egy biztonsági mentés fájlt, amely a kedvelt albumokat tartalmazza.

kedvelt albumok visszaállítása

A MUSIC_BRAINZ_RELEASE_LIKE tábla visszaállítása a fájlrendszerről.

Funkciókdvelt dalok visszaállítása a biztonsági mentés fájlból
URI<span class="s1"><span class="s1"><span class="s1">/api/like/</span></span></span>restoreLikedAlbums
REQUEST TYPEGET
RESPONSE BODYOK vagy hibaüzenet
Elérhető10.20

Példa:

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

Ez a hívás visszaállítja a biztonsági mentés fájlt.

Lejátszási lista

szolgáltatás engedélyezése

Szerkeszd az UMS.conf fájlt, és konfiguráld a kezelt lejátszási lista mappát az alábbi beállítással 

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

a szolgáltatás engedélyezéséhez. Alapértelmezés szerint ez a szolgáltatás le van tiltva. A lejátszási lista mappa elérési útjának a konfigurált megosztott <span class="s1">folders</span> mappa alatt kell elhelyezkednie, hogy az API által végrehajtott lejátszási lista módosítások láthatóvá váljanak az UMS számára.

összes lejátszási lista felsorolása

Elérhető lejátszási listák olvasása. Ezeket a lejátszási lista neveket kell használni a további hívásokhoz, hogy dalokat adjunk hozzá vagy távolítsunk el.

FunkcióSzállítja az összes támogatott (m3u, m3u8 és pls) és elérhető lejátszási listát a konfigurált mappából. Besides playlist name, the playlists playlistId is
URI<span class="s1">/api/</span><span class="s1">playlist</span><span class="s1">/</span><span class="s1">getAllPlaylists</span>
REQUEST TYPEGET
RESPONSE BODYlejátszási lista nevek JSON tömbje
RESPONSE BODY példa<span class="s1">["Pop","Jazz","Classic"]</span>
Elérhető11.0

Példa:

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

Ez a hívás felsorolja az összes elérhető lejátszási listát.

felsorolni a szerver által elérhető lejátszási listákat

Ezek azok a lejátszási listák, amelyeket az UMS ismer (adatbázis/gyorsítótár engedélyezve). Ezeket a lejátszási lista neveket kell használni a további hívásokhoz a dalok hozzáadásához vagy eltávolításához. A lejátszási lista azonosítója közvetlenül a lejátszási listához navigálhat, ha az objectId $DBID$PLAYLIST$ és a databaseId összefűzésével böngészel.

FunkcióSzállítja az összes támogatott (m3u, m3u8 és pls) és elérhető lejátszási listát a konfigurált mappából.
URI<span class="s1">`/api/</span><span class="s1">playlist</span><span class="s1">/</span>getserverplaylists` ``
REQUEST TYPEGET
RESPONSE BODYlejátszási lista nevek JSON tömbje
RESPONSE BODY példa[{"playlistName":"Jazz","playlistId":5},{"playlistName":"Charts","playlistId":343}]
Elérhetődev branch

Példa:

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

Ez a hívás felsorolja az összes elérhető lejátszási listát, amelyek az UMS által hozzáférhetők.

dalok hozzáadása a lejátszási listákhoz

A szükséges audiotrackid az UPnP böngészési kérelmek során kerül átadásra, és a DIDL válasz descMetadata attribútumából nyerhető ki.

<ums-tags>
[...]
<audiotrackid>ID</audiotrackid>
[...]
</ums-tags>
FunkcióDal hozzáadása a lejátszási listához
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 példa / leírás123/Pop
RESPONSE BODYNINCS
Elérhető11.0

Példa:

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

Ez hozzáadja a 123 azonosítójú dalt a Pop lejátszási listához.

dalok eltávolítása a lejátszási listákból

A szükséges audiotrackid az UPnP böngészési kérelmek során kerül átadásra, és a DIDL válasz descMetadata attribútumából nyerhető ki.

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

``

FunkcióDal eltávolítása a lejátszási listáról
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 példa / leírás123/Pop
RESPONSE BODYNINCS
Elérhető11.0

Példa:

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

Ez eltávolítja a 123 azonosítójú dalt a Pop lejátszási listáról.

új lejátszási listák létrehozása

A lejátszási lista nevét úgy kell megadni, hogy ne tartalmazzon semmilyen elérési utat és fájl kiterjesztést. 

FunkcióÚj lejátszási listák létrehozása a kezelt lejátszási lista mappában
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;">PLAYLIST_NAME</span>
POST BODY példa / leírásContemporary
RESPONSE BODYNINCS
Elérhető11.0

Példa:

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

Ez a hívás egy új lejátszási lista fájlt hoz létre Contemporary.m3u8 néven a kezelt lejátszási lista mappában.

Java kód példa

Ez a kódrészlet bemutatja, hogyan lehet használni az API-t az okhttp3 könyvtárral.

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 válaszkódok

| 200 | OK | | 204 | siker, ha nem kell tartalmat visszaadni | | 401 | érvénytelen API kulcs | | 404 | a kért objektum nem található | | 417 | API kérés nem sikerült | | 503 | a külső API nincs engedélyezve Állíts be egy api_key értéket az UMS.conf fájlban, amely legalább 12 karakter hosszú |