Saltar para o conteúdo principal
Version: 14.x

API Externa

A API externa permite que programas acedam ou acionem funcionalidades UMS com um pedido HTTP.

Como ativar a API externa​

Editar UMS.conf e configurar uma api_key como esta

api_key = palavra_passe

A secret_password deve ter no mínimo 12 caracteres.

Utilização da API​

Se a API externa estiver ativada, a API estará acessível através de um pedido POST para /api/COMMAND

Procurar em Pastas​

Pesquisar novamente​

IntençãoVerificar toda a biblioteca.
URI/api/folderscanner/rescan
CAIXA DE PUBLICAÇÃONENHUM
POST BODY exemplo / descriçãoEste comando não precisa de corpo no pedido
Disponível desde10.4.2
info

Isto pode ser lento para bibliotecas grandes

Exemplo:

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

Pesquisar novamente ficheiro ou pasta​

IntençãoVerificar parte do sistema de ficheiros.
URI/api/folderscanner/rescanFileOrFolder
CAIXA DE PUBLICAÇÃOCAMINHO_PARA_PESQUISA
POST BODY examplo / descriçãoexemplo: "/music/pop/Madonna". O caminho deve ser a raiz ou uma subpasta de um caminho partilhado.
Disponível desde10.4.2

Exemplo:

Gostos em Músicas (Álbuns e Canções)​

Gostar da música​

A música será marcada com Gosto.

IntençãoColocar gosto numa música identificada pelo trackId da musicBrainz.
URI<span class="s1">/api/like/likesong</span>
CAIXA DE PUBLICAÇÃOmusicBrainz_trackID
POST BODY examplo / descriçãob8695995-45e9-405d-b4aa-e50e8760fe25
Disponível desde10.20

Exemplo:

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

Não gostar a música​

Música deixará de estar marcada com Gosto.

IntençãoRetirar gosto numa música identificada pelo trackId da musicBrainz.
URI<span class="s1">/api/like/</span>dislikesong
CAIXA DE PUBLICAÇÃOmusicBrainz_trackID
POST BODY examplo / descriçãob8695995-45e9-405d-b4aa-e50e8760fe25
Disponível desde10.20

Exemplo:

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

Gostaram da música​

Verificar se gostaram da música.

IntençãoVerificar se gostaram da música identificada por musicBrainz trackId
URI<span class="s1">/api/like/</span><span class="s1">issongliked</span>
CAIXA DE PUBLICAÇÃOmusicBrainz_trackID
CAIXA DE PUBLICAÇÃO exemplo/descriçãob8695995-45e9-405d-b4aa-e50e8760fe25
CAIXA DE RESPOSTATRUE or FALSE
Disponível desde10.20

Exemplo:

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

Esta escolha adiciona o atributo gostado do álbum identificado por musicbrainz release-id 1e0eee38-a9f6-49bf-84d0-45d0647799af.

Gostar do álbum​

Define o estado do álbum como true.

IntençãoColocar gosto num álbum identificado pelo trackId da musicBrainz.
URI<span class="s1">/api/like/</span>likealbum
CAIXA DE PUBLICAÇÃOmusicBrainz_releaseID
1e0eee38-a9f6-49bf-84d0-45d0647799af
10.20

Exemplo:

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

Não gostar do álbum​

Remover gostar do estado do álbum.

IntençãoRemover gosto numa música identificada pelo trackId da musicBrainz.
URI<span class="s1">/api/like/</span>dislikealbum
CAIXA DE PUBLICAÇÃOmusicBrainz_releaseID
CAIXA DE PUBLICAÇÃO exemplo/descrição1e0eee38-a9f6-49bf-84d0-45d0647799af
Disponível desde10.20

Exemplo:

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

Esta escolha adiciona o atributo gostado do álbum identificado por musicbrainz release-id 1e0eee38-a9f6-49bf-84d0-45d0647799af.

é um álbum com gosto​

Verificar o estado de gosto do álbum

IntençãoVerificar se o álbum tem gosto identificado por musicBrainz trackId
URI<span class="s1">/api/like/</span>isalbumliked
CAIXA DE PUBLICAÇÃOmusicBrainz_releaseID
CAIXA DE PUBLICAÇÃO exemplo/descrição1e0eee38-a9f6-49bf-84d0-45d0647799af
CAIXA DE RESPOSTA"TRUE" or "FALSE"
Disponível desde10.20

Exemplo:

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

Esta opção verifica se o álbum identificado por musicbrainz release-id 1e0eee38-a9f6-49bf-84d0-45d0647799afestá com gosto.

Classificação​

A API de avaliação é responsável pela avaliação de músicas. Informações de avaliação são guardadas no base de dados interna (cache habilitado) e, opcionalmente, no próprio arquivo. Se oaudio_update_rating_tag = true estiver definido no UMS. o campo de classificação conf IDv3 também está a ser actualizado no arquivo de música (se o formato do arquivo de músicas for suportado).

Ao navegar pelo servidor de directório de conteúdo, MusicBrainzTrackID (se disponível) e audiotrackID são disponibilizados como metadados desc dentro do elemento DIDL.

Defina a classificação​

IntençãoClassificar com estrelas (0 - 5) uma música identificada pelo trackId do musicBrainz
URI<span class="s1">/api/</span><span class="s1">rating/setrating</span>
CAIXA DE PUBLICAÇÃOmusicbrainzTrackId /stars
CAIXA DE PUBLICAÇÃO exemplo/descriçãob8695995-45e9-405d-b4aa-e50e8760fe25/3
Disponível desde10.20

Exemplo:

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

Esta opção define a classificação do utilizador de todas as músicas identificadas pelo track-id de música b8695995-45e9-405d-b4aa-e50e8760fe25 para 3.

Aceda à classificação​

Lê avaliação de músicas na base de dados

IntençãoObtenha a classificação da música em estrelas (0 - 5) pela musicBrainz trackID. A caixa de resposta contém as informações da classificação.
URI<span class="s1">/api/</span><span class="s1">rating/getrating </span>
CAIXA DE PUBLICAÇÃOmusicbrainzTrackId
CAIXA DE PUBLICAÇÃO exemplo/descriçãob8695995-45e9-405d-b4aa-e50e8760fe25
CAIXA DE RESPOSTA exemplo3
Disponível desde10.20

Exemplo:

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

Esta opção define a classificação do utilizador de todas as músicas identificadas pelo track-id de música b8695995-45e9-405d-b4aa-e50e8760fe25 .

Definir avaliação por id da faixa de áudio​

IntençãoClassificar com estrelas (0 - 5) uma música identificada pelo audiotrackID interno do UMS
URI<span class="s1">/api/</span><span class="s1">rating/setRatingByAudiotrackId </span>
CAIXA DE PUBLICAÇÃOtrackID /stars
CAIXA DE PUBLICAÇÃO exemplo/descrição32
Disponível desde11.0

Exemplo:

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

Esta opção define a classificação das músicas identificadas pelo id da faixa de áudio32 para 3.

Definir avaliação por id da faixa de áudio​

Lê avaliação de músicas na base de dados

Obtenha a classificação da música em estrelas (0 - 5) pela ID da faixa de áudio interna do UMS. A caixa de resposta contém informações da classificação.
<span class="s1">/api/</span><span class="s1">rating/getRatingByAudiotrackId</span>
Id da faixa
CAIXA DE PUBLICAÇÃO exemplo/descrição32
CAIXA DE RESPOSTA exemplo3
11.0
curl -d "32" -w "%{http_code}\n" -H "api-key: secret_password" -X POST http://localhost:5001/api/rating/getRatingByAudiotrackId

Esta opção lê a classificação do utilizador de uma música identificada pelo audiotrack-id UMS 32.

Cópia de segurança / Restauro​

Entradas marcadas pelo utilizador como "álbum que gosto" podem ser guardadas numa sub-pasta de diretórios chamada database_backup. O nome de arquivo é MUSIC_BRAINZ_RELEASE_LIKE. No caso em que o banco de dados UMS seja apagado, basta escolher "Restaurar".

Cópia de segurança de álbuns que gosto​

Cópia de segurança da tabela MUSIC_BRAINZ_RELEASE_LIKE no sistema de arquivos

IntençãoFazer cópia de segurança das músicas com gosto para o sistema de arquivos
URI<span class="s1"><span class="s1">/api/like/</span></span>backupLikedAlbums
SOLICITAR TIPOGET
CAIXA DE RESPOSTAOK ou mensagem de erro
Disponível desde10.20

Exemplo:

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

Esta opção cria um arquivo da cópia de segurança contendo álbuns com gosto.

restaurar álbuns com gosto​

Restaura tabela MUSIC_BRAINZ_RELEASE_LIKE a partir do sistema de ficheiros

IntençãoRestaurar músicas com gosto do arquivo da cópia de segurança
URI<span class="s1"><span class="s1"><span class="s1">/api/like/</span></span></span>restoreLikedAlbums
SOLICITAR TIPOGET
CAIXA DE RESPOSTAOK ou mensagem de erro
Disponível desde10.20

Exemplo:

curl -w "%{http_code}\n" -H "api-chave: palavra-passe" -X GET http://localhost:5001/api/gosto/restaurar álbuns com gosto

Esta opção restaura o arquivo da cópia de segurança.

Lista de reprodução​

Habilitar serviço​

Edite o UMS.conf e configure uma pasta da lista de reprodução gerida pela configuração 

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

Por habilitar este serviço. Este serviço está desativado por padrão O caminho da pasta da lista de reprodução, deverá estar localizado debaixo de um caminho partilhado <span class="s1">pastas</span> configurado para a lista de reprodução, criado por esta API para ficar visível pelo UMS

Listar todas as listas de reprodução​

Ler listas de reprodução disponíveis Estes nomes de listas de reprodução devem ser usados para subsequentes acções de remoção ou adição de músicas

IntençãoEntrega todos os (m3u, m3u8 e pls) suportados e listas de reprodução disponíveis a partir da pasta configurada. Ao lado do nome da lista de reprodução, as listas de reprodução playlistId são
URI<span class="s1">/api/</span><span class="s1">playlist</span><span class="s1">/</span><span class="s1">getAllPlaylists</span>
GET
Variedade JSON de nomes de listas de reprodução
<span class="s1">["Pop","Jazz","Classic"]</span>
Disponível desde11.0

Exemplo:

curl -w "%{http_code}\n" -H "api-chave: palavra-passe" -X GET http://localhost:5001/api/lista de reprodução/aceder a todas as listas de reprodução

Este comando listará todas as listas de reprodução disponíveis.

Enumera as listas de reprodução acessíveis no servidor​

Estas são todas as listas de reprodução conhecidas pelo UMS (base de dados/cache habilitado). Estes nomes de listas de reprodução devem ser usados para subsequentes acções de remoção ou adição de músicas O ID da playlist pode ser usado para navegar directamente para a lista de reprodução navegando pelo objectId $DBID$PLAYLIST$ concat databaseId.

IntençãoEntrega todos os (m3u, m3u8 e pls) suportados e listas de reprodução disponíveis a partir da pasta configurada.
URI<span class="s1">`/api/</span><span class="s1">playlist</span><span class="s1">/</span>getserverplaylists` ``
SOLICITAR TIPOGET
CAIXA DE RESPOSTAVariedade JSON de nomes de listas de reprodução
CAIXA DE RESPOSTA exemplo[{"playlistName":"Jazz","playlistId":5},{"playlistName":"Tabelas","playlistId":343}]
Disponível desdefilial de desenvolvimento

Exemplo:

curl -w "%{http_code}\n" -H "api-chave: palavra-passe" -X GET http://localhost:5001/api/lista de reprodução/aceder a todas as listas de reprodução

Esta opção listará todas as listas de reprodução disponíveis acessíveis pelo UMS.

adicionar músicas às playlists​

A faixa de áudio necessária é entregue durante solicitações de navegação UPnP e pode ser extraída do atributo de resposta DIDL descMetadata

<ums-tags>
[...]
<audiotrackid>ID</audiotrackid>
[...]
</ums-tags>
IntençãoAdicionar música à lista de reprodução
URI<span class="s1">/api/</span><span class="s1">playlist</span><span class="s1">/</span><span class="s1">addSongToPlaylist</span>
SOLICITAR TIPOPOST
CAIXA DE PUBLICAÇÃOaudiotrackid<span style="background-color: #bfe6ff; font-size: 11.76px; white-space: pre-wrap;">/PLAYLIST</span>
CAIXA DE PUBLICAÇÃO exemplo/descrição123/Pop
CAIXA DE RESPOSTANENHUM
Disponível desde11.0

Exemplo:

curl -w "%{http_code}\n" -H "api-chave: palavra-passe" -X GET http://localhost:5001/api/lista de reprodução/aceder a todas as listas de reprodução

Esta opção adiciona a música com o ID 123à lista de reprodução Pop.

Remover faixas da lista de reprodução​

A faixa de áudio necessária é entregue durante solicitações de navegação UPnP e pode ser extraída do atributo de resposta DIDL descMetadata

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

``

IntençãoRemover faixa da lista de reprodução
URI<span class="s1">/api/</span><span class="s1">playlist</span><span class="s1">/</span><span class="s1">removeSongFromPlaylist</span>
SOLICITAR TIPOPOST
CAIXA DE PUBLICAÇÃOaudiotrackid<span style="background-color: #bfe6ff; font-size: 11.76px; white-space: pre-wrap;">/PLAYLIST</span>
CAIXA DE PUBLICAÇÃO exemplo/descrição123/Pop
CAIXA DE RESPOSTANENHUM
Disponível desde11.0

Exemplo:

curl -w "%{http_code}\n" -H "api-chave: palavra-passe" -X PUBLICAÇÃO http://localhost:5001/api/lista de reprodução/remover música da lista de reprodução

Esta opção remove a música com o ID 123da lista de reprodução Pop.

Criar nova lista de reprodução​

O nome da lista de reprodução deve ser fornecido sem qualquer caminho e sem extensões de arquivo. 

IntençãoCriar novas listas de reprodução na pasta gerida de listas de reprodução
URI<span class="s1">/api/</span><span class="s1">playlist</span><span class="s1">/</span><span class="s1">createPlaylist</span>
SOLICITAR TIPOPOST
CAIXA DE PUBLICAÇÃONOME_LISTA DE REPRODUÇÃO
CAIXA DE PUBLICAÇÃO exemplo/descriçãoContemporâneo
CAIXA DE RESPOSTANENHUM
Disponível desde11.0

Exemplo:

curl -w "%{http_code}\n" -H "api-chave: palavra-passe" -X PUBLICAÇÃO http://localhost:5001/api/lista de reprodução/criarListadereprodução

Esta opção cria um novo arquivo de lista de reprodução chamado Contemporâneo.m3u8 na pasta de listas geridas.

Exemplo de código Java​

Este código snippet mostra como usar a API com biblioteca okhttp3.

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();
}

Códigos de retorno HTTP​

| 200 | OK | | 204 | sucesso se nenhum conteúdo for retornado | | 401 | chave api inválida | | 404 | objeto pedido não foi encontrado | | 417 | Pedido de API falhou | | 503 | api externa não está habilitado. Defina uma api_key no UMS.conf com comprimento de 12 ou mais caracteres |