Project Funkwhale released its first stable version. As part of the initiative, a free server written in Python using the Django framework is being developed to host music and podcasts, which can be accessed via a web interface. clients that support Subsonic API or the native Funkwhale API, and from other instances of Funkwhale, using the ActivityPub federated network protocol.
User interaction with audio occurs through libraries and channels: libraries are collections of several artists with randomly generated UUIDs as addresses, while a channel is the discography of a single artist, assigned a human-readable address; channels can be useful for publishing podcasts. Managing subscriptions is similar to that in another project — PeerTube: you can subscribe both to a user and to their separately created channels. Since the server operates according to the ActivityPub protocol, it is possible to subscribe from other popular implementations, such as Mastodon and Pleroma.
After creating a library or channel, you can upload music. The storage for it can be either local or remote, using built-in support for Amazon S3 protocol file systems. You can upload any file in a popular format without additional re-encoding and loss of quality (which, for example, PeerTube does, which also supports audio uploads). Funkwhale reads embedded music metadata and covers from the files, and if they are missing, it returns an error. Therefore, users are advised to use MusicBrainz Picard to write the correct tags before uploading. An interface for editing metadata after upload is also available, functioning in the form of revisions with a visible change history.
From the already uploaded music in libraries and channels, you can create playlists, radio stations, and mark tracks as favorites. Remote users will be able to request access to your library or channel simply by pasting the link into their server's search bar. Anonymous users will be able to listen to music from the web interface if allowed in the server settings. Registered local users can access all the music on the server without using the web interface by logging in through any client with Subsonic API support — another music server, now under proprietary license, with concurrently developing branches of the old codebase under an open license, — or the native Funkwhale API, for example, Otter for Android.
Clients can also request a transcoded version of tracks from the server (for example, from FLAC to MP3 with a lower bitrate, requiring less internet traffic).
Subscription to RSS feeds is possible, such as the already mentioned podcasts.
Changes in this release:
- the minimum required version of Python is raised to 3.6;
- breaking changes in the client API;
- ending support for JSON tokens (JWT) in favor of OAuth;
- improved algorithm for generating cover previews;
- a button has been added in the web interface to import music from the server's filesystem;
- display of the number of downloads for tracks and albums has been introduced;
- new search page;
- the 'play' button on tracks and albums now replaces the queue instead of adding tracks to it;
- support for scrobbling using Last.fm API v2.
Source: linux.org.ru

