Projekt Funkwhale veröffentlichte die erste stabile Version. Im Rahmen der Initiative wird ein freier Server entwickelt, der in Python mit dem Django-Framework geschrieben ist, um Musik und Podcasts zu hosten, die über eine Weboberfläche zugänglich sind. Clients mit Unterstützung für das Subsonic API oder die native Funkwhale API, und von anderen Funkwhale-Instanzen, unter Verwendung von dem ActivityPub-Föderationsprotokoll.
Die Interaktion des Benutzers mit Audio erfolgt über Bibliotheken und Kanäle: Bibliotheken sind Sammlungen von mehreren Künstlern mit einer zufällig erstellten UUID als Adresse, während ein Kanal die Diskografie eines einzelnen Künstlers ist, der eine menschenlesbare Adresse zugewiesen bekommt; Kanäle können nützlich sein zur Veröffentlichung von Podcasts. Das Abonnieren ähnelt dem anderer Projekte - PeerTube: Sie können sowohl den Benutzer als auch seine separat erstellten Kanäle abonnieren. Da der Server nach dem ActivityPub-Protokoll arbeitet, ist es möglich, sich von anderen beliebten Implementierungen anzumelden, wie zum Beispiel Mastodon und Pleroma.
Nach der Erstellung einer Bibliothek oder eines Kanals besteht die Möglichkeit, Musik hochzuladen. Der Speicherort für diese kann lokal oder remote sein, wobei die integrierte Unterstützung für Dateisysteme über das Amazon S3-Protokoll genutzt wird. Sie können jede Datei eines populären Formats hochladen, ohne zusätzliche Umkodierung und Qualitätsverlust (was beispielsweise PeerTube macht, das ebenfalls das Hochladen von Audio unterstützt). Funkwhale liest die in die Dateien eingebetteten Musikmetadaten und Cover, und im Falle ihres Fehlens wird ein Fehler ausgegeben. Daher wird den Benutzern empfohlen, MusicBrainz Picard zu verwenden, um die richtigen Tags vor dem Hochladen festzulegen. Auch eine Schnittstelle zum Bearbeiten der Metadaten nach dem Hochladen steht zur Verfügung, die in Form von Revisionen mit sichtbarer Änderungsverlauf arbeitet.
Aus bereits hochgeladener Musik in Bibliotheken und Kanälen können Playlists, Radiosender erstellt und Titel als Favoriten markiert werden. Entfernte Benutzer können Zugang zu Ihrer Bibliothek oder Ihrem Kanal anfordern, indem sie einfach den Link in die Suchleiste ihres Servers einfügen. Anonyme Benutzer können Musik über die Weboberfläche anhören, wenn dies in den Servereinstellungen erlaubt ist. Registrierte lokale Benutzer können auf die gesamte Musik des Servers zugreifen, ohne die Weboberfläche zu nutzen, indem sie sich anmelden über jeder Kunde mit Unterstützung für die Subsonic API — einen weiteren Musikserver, der derzeit unter proprietär Lizenz läuft, mit parallel entwickelten Abzweigungen von der alten Codebasis unter einer freien Lizenz, — oder die hauseigene Funkwhale API, zum Beispiel, Otter für Android.
Clients können auch eine transkodierte Version von Tracks beim Server anfordern (zum Beispiel von FLAC in MP3 mit niedrigerer Bitrate, die weniger Internetverkehr erfordert).
Eine Abonnementsoption für RSS-Feeds ist möglich, beispielsweise für die bereits erwähnten Podcasts.
Zu den Neuerungen in dieser Version:
- die minimal erforderliche Python-Version wurde auf 3.6 angehoben;
- kompatibilitätsbrechende Änderungen in der Client-API;
- Abschaffung der Unterstützung für JSON-Tokens (JWT) zugunsten von OAuth;
- verbesserten Algorithmus zur Generierung von Vorschauen für Cover;
- im Web-Interface wurde eine Schaltfläche zum Importieren von Musik aus dem Dateisystem des Servers hinzugefügt;
- es gibt jetzt eine Anzeige der Anzahl der Downloads von Tracks und Alben;
- neue Suchseite;
- die Schaltfläche „spielen“ für Tracks und Alben ersetzt jetzt die Warteschlange, anstatt Tracks hinzuzufügen;
- Unterstützung für Scrobbling mit Hilfe der Last.fm API v2.
Quelle: linux.org.ru

