Projekt Funkwhale wydał pierwszą stabilną wersję. W ramach inicjatywy rozwijany jest darmowy serwer napisany w języku Python z wykorzystaniem frameworka Django, do hostowania muzyki i podcastów, których odsłuch można zrealizować za pomocą interfejsu webowego, klientów z obsługą Subsonic API lub natywnego Funkwhale API, i z innych instancji Funkwhale, używając protokół federacyjnej sieci ActivityPub.
Interakcja użytkownika z audio odbywa się za pomocą bibliotek i kanałów: biblioteki — to kolekcje kilku artystów z losowo wygenerowanym UUID jako adresem, a kanał — dyskografia konkretnego wykonawcy, któremu przypisuje się czytelny dla człowieka adres; kanały mogą być przydatne do publikacji podcastów. Praca z subskrypcjami przypomina tę w innym projekcie — PeerTube: możesz subskrybować zarówno użytkownika, jak i jego osobno utworzone kanały. Ponieważ serwer działa w protokole ActivityPub, możliwe jest subskrybowanie z innych popularnych implementacji, takich jak Mastodon i Pleroma.
Po utworzeniu biblioteki lub kanału możliwe jest przesyłanie muzyki. Przechowywanie plików może być lokalne lub zdalne, korzystając z wbudowanego wsparcia dla systemów plików w protokole Amazon S3. Możesz przesłać dowolny plik w popularnym formacie, bez dodatkowego transkodowania i utraty jakości (co na przykład robi PeerTube, który także wspiera przesyłanie audio). Funkwhale odczytuje wbudowane w pliki metadane muzyczne oraz okładki, a w przypadku ich braku zgłasza błąd. Dlatego użytkownikom zaleca się korzystanie z MusicBrainz Picard do zapisywania prawidłowych tagów przed przesłaniem. Dostępny jest także interfejs edytowania metadanych po przesłaniu, działający w formie rewizji z widoczną historią zmian.
Z już załadowanej muzyki w bibliotekach i kanałach można tworzyć playlisty, stacje radiowe oraz oznaczać utwory jako ulubione. Użytkownicy zdalni będą mogli poprosić o dostęp do twojej biblioteki lub kanału, po prostu wklejając link do niego w pasku wyszukiwania swojego serwera. Użytkownicy anonimowi będą mogli słuchać muzyki z interfejsu webowego, jeśli będzie to dozwolone w ustawieniach serwera. Zarejestrowani użytkownicy lokalni mogą uzyskać dostęp do całej muzyki serwera bez korzystania z interfejsu webowego, logując się przez każdy klient z obsługą Subsonic API — kolejnego serwera muzycznego, obecnie pod licencją proprietarną, z równolegle rozwijającymi się gałęziami starej bazy kodu na licencji open source, — lub rodzimym Funkwhale API, na przykład, Otter dla Androida.
Klienci mogą również poprosić serwer o wersję transcoded utworów (na przykład, z FLAC na MP3 o niższej przepływności, zużywającej mniej ruchu internetowego).
Można subskrybować kanały RSS, na przykład wspomniane podcasty.
Zmiany w tej wersji:
- minimalna wymagana wersja Python wzrosła do 3.6;
- zmiany łamiące kompatybilność w API klienta;
- zaprzestanie wsparcia dla tokenów JSON (JWT) na rzecz OAuth;
- ulepszony algorytm generowania podglądów okładek;
- w interfejsie webowym dodano przycisk do importowania muzyki z systemu plików serwera;
- pojawiło się wyświetlanie liczby pobrań utworów i albumów;
- nowa strona wyszukiwania;
- przycisk 'odtwarzaj' przy utworach i albumach teraz zastępuje kolejkę, a nie dodaje utwory do niej;
- wsparcie dla scrobbilingu za pomocą Last.fm API v2.
Źródło: linux.org.ru

