Projekt Funkwhale veröffentlichte die erste stabile Version. Im Rahmen der Initiative wird ein freier Server entwickelt, der in Python unter Verwendung des Django-Frameworks geschrieben ist, um Musik und Podcasts bereitzustellen, die über eine Weboberfläche angehört werden können. Clients, die das Subsonic API oder das hauseigene Funkwhale API unterstützen, und von anderen Instanzen von Funkwhale, unter Verwendung von das Protokoll des föderierten Netzwerks ActivityPub.
Die Interaktion des Benutzers mit Audio erfolgt über Bibliotheken und Kanäle: Bibliotheken sind Sammlungen von mehreren Künstlern mit zufällig generierten UUIDs als Adressen, während ein Kanal die Diskografie eines einzelnen Künstlers darstellt, der eine gut lesbare Adresse zugewiesen bekommt; Kanäle können nützlich sein für die Veröffentlichung von Podcasts. Die Arbeit mit Abonnements ähnelt der in einem anderen Projekt – PeerTube: Sie können sowohl einem Benutzer als auch seinen separat erstellten Kanälen folgen. Da der Server über das ActivityPub-Protokoll arbeitet, ist es möglich, von anderen populären Implementierungen zu abonnieren, wie Mastodon und Pleroma.
Nach der Erstellung einer Bibliothek oder eines Kanals besteht die Möglichkeit, Musik hochzuladen. Der Speicherort dafür kann entweder lokal oder remote sein, wobei die integrierte Unterstützung für Dateisysteme über das Amazon S3-Protokoll genutzt werden kann. Jede Datei im beliebten Format kann hochgeladen werden, ohne dass eine zusätzliche Neukodierung und Qualitätsverlust erforderlich sind (was beispielsweise bei PeerTube der Fall ist, das ebenfalls die Audio hochladen kann). Funkwhale liest die in den Dateien eingebetteten Musikmetadaten und Cover. Fehlen diese, wird eine Fehlermeldung ausgegeben. Daher wird den Nutzern empfohlen, MusicBrainz Picard zu verwenden, um die richtigen Tags vor dem Hochladen zu setzen. Nach dem Hochladen steht auch eine Benutzeroberfläche zur Bearbeitung der Metadaten zur Verfügung, die revisionsbasiert mit einer sichtbaren Änderungsanamnese arbeitet.
Aus bereits hochgeladener Musik in Bibliotheken und Kanälen können Playlists, Radiosender erstellt und Titel als Favoriten markiert werden. Gelöschte Benutzer können Zugang zu Ihrer Bibliothek oder Ihrem Kanal anfordern, indem sie einfach den Link dazu in die Suchleiste ihres Servers einfügen. Anonyme Benutzer dürfen Musik über die Weboberfläche hören, sofern dies in den Servereinstellungen erlaubt ist. Registrierte lokale Benutzer haben Zugriff auf die gesamte Musik des Servers, ohne die Weboberfläche nutzen zu müssen, indem sie sich über jeden Client mit Subsonic API-Unterstützung — einen weiteren Musikserver, der derzeit unter einer proprietären Lizenz steht, mit parallel entwickelten Abspaltungen der alten Codebasis unter einer freien Lizenz — oder das native Funkwhale API, zum Beispiel Otter für Android.
Clients können auch eine transkodierte Version der Tracks vom Server anfordern (z.B. von FLAC nach MP3 mit niedrigeren Bitraten, was weniger Internetverkehr verursacht).
Ein Abonnement für RSS-Feeds ist möglich, beispielsweise für die bereits erwähnten Podcasts.
Aus den Änderungen in dieser Version:
- Die minimal erforderliche Python-Version wurde auf 3.6 angehoben;
- kompatibilitätsbrechende Änderungen im Client-API;
- Einstellung der Unterstützung für JSON-Webtokens (JWT) zugunsten von OAuth;
- Verbesserter Algorithmus zur Generierung von Vorschauen für Cover;
- Im Webinterface wurde eine Schaltfläche zum Importieren von Musik aus dem Dateisystem des Servers hinzugefügt;
- Es wird jetzt die Anzahl der Downloads von Tracks und Alben angezeigt;
- Neue Suchseite;
- Die Schaltfläche „Spielen“ bei Tracks und Alben ersetzt jetzt die Warteschlange, anstatt die Tracks hinzuzufügen;
- Unterstützung für Scrobbling über die Last.fm API v2.
Quelle: linux.org.ru

