Projekt funkwary wydał pierwszą stabilną wersję. W ramach inicjatywy tworzony jest darmowy serwer, napisany w Pythonie z wykorzystaniem frameworka Django, na którym będzie można hostować muzykę i podcasty, których będzie można słuchać za pomocą interfejsu WWW. klienci z obsługą Subsonic API lub natywnego Funkwhale APIi z innych instancji FunkwhaleKorzystanie Sfederowany protokół sieciowy ActivityPub.
Interakcja użytkownika z dźwiękiem odbywa się za pomocą bibliotek i kanałów: biblioteki to zbiory kilku artystów z losowo utworzonym UUID jako adresem, a kanał to dyskografia pojedynczego artysty, któremu nadano adres czytelny dla człowieka; kanały mogą być przydatne do publikowania podcastów. Praca z subskrypcjami przebiega podobnie jak w innym projekcie - PeerTube: Możesz subskrybować zarówno kanały użytkownika, jak i jego oddzielnie utworzone kanały. Ponieważ serwer działa w oparciu o protokół ActivityPub, możliwa jest subskrypcja z innych popularnych implementacji, takich jak Mastodont и pleroma.
Po utworzeniu biblioteki lub kanału możesz przesyłać muzykę. Przechowywanie plików dla niego może być lokalne lub zdalne, wykorzystując wbudowaną obsługę systemów plików opartych na protokole Amazon S3. Możesz wgrać dowolny plik w popularnym formacie, bez dodatkowego transkodowania i utraty jakości (co robi na przykład PeerTube, który obsługuje także przesyłanie audio). Funkwhale odczytuje metadane muzyczne i okładki osadzone w plikach, a jeśli ich brakuje, generuje błąd. Dlatego użytkownikom zaleca się korzystanie MusicBrainz Picard aby napisać prawidłowe tagi przed przesłaniem. Dostępny jest także interfejs do edycji metadanych po pobraniu, działający w formie rewizji z widoczną historią zmian.
Możesz tworzyć playlisty, stacje radiowe i oznaczać utwory jako ulubione, od już pobranej muzyki po biblioteki i kanały. Zdalni użytkownicy będą mogli poprosić o dostęp do Twojej biblioteki lub kanału, po prostu wklejając link do paska wyszukiwania na swoim serwerze. Anonimowi użytkownicy będą mogli słuchać muzyki z poziomu interfejsu internetowego, jeśli zezwoli to na to w ustawieniach serwera. Zarejestrowani użytkownicy lokalni mogą uzyskać dostęp do całej muzyki na serwerze bez korzystania z interfejsu internetowego, logując się za pośrednictwem dowolny klient z obsługą Subsonic API - inny serwer muzyczny, teraz na licencji własnościowej, z równolegle rozwijającymi się gałęziami starej bazy kodowej na wolnej licencji, - lub natywny API Funkwhale, np. Wydra dla Androida.
Klienci mogą również zażądać od serwera transkodowanej wersji utworów (na przykład z FLAC do MP3 o niższej przepływności, wymagającej mniejszego ruchu internetowego).
Istnieje możliwość subskrypcji kanałów RSS, na przykład wspomnianych już podcastów.
Zmiany w tej wersji:
- minimalna wymagana wersja Pythona została podniesiona do 3.6;
- zmiany w API klienta, które psują kompatybilność;
- wycofywanie tokenów JSON (JWT) na rzecz OAuth;
- ulepszony algorytm generowania podglądów okładek;
- do interfejsu WWW dodano przycisk umożliwiający import muzyki z systemu plików serwera;
- pojawiło się wyświetlanie liczby pobrań utworów i albumów;
- nowa strona wyszukiwania;
- przycisk „odtwórz” na utworach i albumach zastępuje teraz kolejkę, zamiast dodawać do niej utwory;
- Obsługa scrobblingu przy użyciu interfejsu API Last.fm v2.
Źródło: linux.org.ru