Проект Funkwhale випустив першу стабільну версію В рамках ініціативи розвивається вільний сервер, написаний мовою Python з використанням фреймвок Django, для розміщення музики та подкастів, прослуховування яких доступне за допомогою веб-інтерфейсу, клієнтів з підтримкою Subsonic API або рідного Funkwhale API, І з інших екземплярів Funkwhale, використовуючи протокол федеративної мережі ActivityPub.
Взаємодія користувача з аудіо відбувається за допомогою бібліотек та каналів: бібліотеки - це колекції з декількох артистів з випадково створеним UUID як адреса, а канал - дискографія якогось одного виконавця, якому задається адреса людини; канали можуть бути корисними для публікації подкастів. Робота з підписками схожа на таку в іншому проекті. PeerTube: Ви можете підписатися як на користувача, так і на окремо створені канали. Оскільки сервер працює за протоколом ActivityPub, підписатися можна з інших популярних реалізацій, на кшталт Мастодонт и плерома.
Після створення бібліотеки або каналу з'являється можливість завантажувати музику. Файлове сховище може бути як локальним, так і віддаленим, використовуючи вбудовану підтримку файлових систем на протоколі Amazon S3. Завантажити можна будь-який файл популярного формату, без додаткового перекодування та втрати якості (що, наприклад, робить PeerTube, який також підтримує завантаження аудіо). Funkwhale зчитує вбудовані у файли музичні метадані та обкладинки, а у разі їх відсутності видає помилку. Тому користувачам рекомендується використовувати MusicBrainz Picard для запису правильних тегів перед завантаженням. Також доступний інтерфейс редагування метаданих після завантаження, що працює у вигляді ревізій із видимою історією змін.
З уже завантаженої музики до бібліотек та каналів можна складати плейлисти, радіостанції та позначати треки обраними. Віддалені користувачі зможуть запросити доступ до вашої бібліотеки або каналу, просто вставивши посилання на неї в рядок пошуку свого сервера. Анонімні користувачі можуть слухати музику з веб-інтерфейсу, якщо це дозволено в налаштуваннях сервера. Зареєстровані локальні користувачі можуть отримати доступ до всієї музики сервера без використання веб-інтерфейсу, зайшовши через будь-який клієнт із підтримкою Subsonic API — ще одного музичного сервера, нині під пропрієтарною ліцензією, з паралельними відгалуженнями старої кодової бази під вільною ліцензією, — або рідного Funkwhale API, наприклад, Otter для Android.
Клієнти також можуть запросити у сервера транскодовану версію треків (наприклад, з FLAC до MP3 з меншим бітрейтом, що вимагає менше інтернет-трафіку).
Можлива підписка на RSS-стрічки, наприклад, вже згадані подкасти.
Зі змін у цьому випуску:
- мінімально потрібна версія Python піднята до 3.6;
- ламають сумісність зміни в клієнтському API;
- припинення підтримки JSON-токенів (JWT) на користь OAuth;
- покращений алгоритм генерування прев'ю для обкладинок;
- у веб-інтерфейсі додано кнопку для імпорту музики з файлової системи сервера;
- з'явилося відображення кількості завантажень треків та альбомів;
- нова сторінка пошуку;
- кнопка «грати» на треках та альбомах тепер замінює чергу, а не додає треки до неї;
- підтримка скроблінгу за допомогою Last.fm API v2.
Джерело: linux.org.ru