Projeto Funkwhale lançou a sua primeira versão estável. No âmbito dessa iniciativa, desenvolve-se um servidor livre, escrito em Python utilizando o framework Django, para hospedagem de música e podcasts, que podem ser ouvidos através de uma interface web, clientes que suportam a API Subsonic ou a API nativa Funkwhale, quanto de outras instâncias do Funkwhale, usando protocolo de rede federativa ActivityPub.
A interação do usuário com o áudio ocorre por meio de bibliotecas e canais: as bibliotecas são coleções de vários artistas com um UUID gerado aleatoriamente como endereço, enquanto o canal é a discografia de um único artista, ao qual é atribuído um endereço legível; os canais podem ser úteis para a publicação de podcasts. O gerenciamento de assinaturas é semelhante ao de outro projeto — PeerTube: você pode assinar tanto o usuário quanto os canais que ele criou separadamente. Como o servidor opera sob o protocolo ActivityPub, é possível assinar outras implementações populares, como Mastodon e Pleroma.
Após a criação de uma biblioteca ou canal, é possível fazer o upload de músicas. O armazenamento de arquivos pode ser local ou remoto, utilizando suporte embutido para sistemas de arquivos com o protocolo Amazon S3. É possível fazer upload de qualquer arquivo em formato popular, sem recodificação adicional e sem perda de qualidade (o que, por exemplo, o PeerTube faz, que também suporta o upload de áudio). O Funkwhale lê os metadados musicais embutidos nos arquivos e as capas, e em caso de ausência, apresenta um erro. Portanto, recomenda-se aos usuários que utilizem MusicBrainz Picard para gravar as tags corretas antes do upload. Também está disponível uma interface de edição de metadados após o upload, funcionando como revisões com um histórico de mudanças visível.
A partir da música já carregada nas bibliotecas e canais, é possível criar playlists, estações de rádio e marcar faixas como favoritas. Usuários remotos poderão solicitar acesso à sua biblioteca ou canal, simplesmente colando o link dela na barra de pesquisa de seu servidor. Usuários anônimos poderão ouvir música através da interface web, se isso for permitido nas configurações do servidor. Usuários locais registrados podem acessar toda a música do servidor sem usar a interface web, acessando através de qualquer cliente com suporte a Subsonic API — outro servidor de música, atualmente sob licença proprietária, com ramificações em paralelo da antiga base de código sob licença livre, — ou a nativa Funkwhale API, por exemplo, Otter para Android.
Os clientes também podem solicitar ao servidor uma versão transcodificada das faixas (por exemplo, de FLAC para MP3 com uma taxa de bits menor, que exige menos tráfego de internet).
É possível assinar feeds RSS, por exemplo, para os podcasts já mencionados.
Mudanças nesta versão:
- a versão mínima requerida do Python foi elevada para 3.6;
- mudanças incompatíveis na API do cliente;
- cessação do suporte a tokens JSON (JWT) em favor do OAuth;
- algoritmo aprimorado para geração de previews de capas;
- adicionada uma botão na interface web para importar música do sistema de arquivos do servidor;
- agora há exibição da quantidade de downloads de faixas e álbuns;
- nova página de busca;
- o botão 'tocar' em faixas e álbuns agora substitui a fila, em vez de adicionar faixas a ela;
- suporte ao scrobbling usando Last.fm API v2.
Fonte: linux.org.ru

