Об этом проекте

Viboplr — это десктопный музыкальный плеер для macOS и Windows, ориентированный в первую очередь на плагины и построенный на Tauri 2, React и Rust. Он воспроизводит аудио и видео из локальных папок и удалённых музыкальных сервисов, выступая в роли оркестратора: система плагинов подключает стриминговые провайдеры, сервисы метаданных, базы текстов песен и источники изображений, а ядро приложения отвечает за воспроизведение, управление библиотекой и интерфейс. Управление библиотекой Локальные папки сканируются в фоне с отображением прогресса и отслеживанием файлов в реальном времени. Коллекции Subsonic/Navidrome синхронизируются в ту же библиотеку, а удалённые коллекции можно подключать через плагины. Локальные треки можно экспортировать как самодостаточный, размещаемый на хостинге музыкальный источник (манифест плюс файлы), а опубликованные манифесты можно подписывать как коллекции. Метаданные читаются через библиотеку тегов lofty с резервным разбором имён файлов, а поиск работает на SQLite FTS5 по названиям, исполнителям, альбомам, жанрам и именам файлов без учёта регистра и диакритики. Метаданные жанров хранятся как теги со связями «многие ко многим» с треками. Воспроизведение Движок по умолчанию — нативный mpv, построенный на встроенном libmpv, который обеспечивает нативное декодирование, воспроизведение без пауз и эксклюзивный (bit-perfect) аудиовыход, а также нативный рендеринг видео на обеих платформах. Движок HTML5 через системный webview служит автоматическим резервным вариантом. Другие возможности воспроизведения включают 10-полосный эквалайзер, нормализацию ReplayGain, настраиваемое кроссфейд-затухание до 10 секунд, управление скоростью в стиле проигрывателя винила, управление очередью перетаскиванием, правила автопродолжения, бесконечные радиостанции от трека, исполнителя или тега, трёхпозиционные лайки, компактный мини-плеер поверх всех окон и полосу перемотки с формой волны и превью-раскадровками для видео. Представления и скины Представления включают Главную (карусель радио плюс полки), полноэкранное представление «Сейчас играет» с синхронизированными караоке-текстами и плагинными визуализаторами, страницы деталей для исполнителей, альбомов, тегов и треков, вкладку «История», плейлисты с экспортом/импортом M3U8 и .mixtape и менеджер коллекций. Включены восемь встроенных скинов (Default, OLED Black, Arctic Light, Forest, Silver, Ocean Blue, Viboplr, Sunset), а также пользовательские JSON-скины, галерея сообщества, 19 цветовых токенов и опциональный очищенный CSS для каждого скина. Плагины и интеграции Плагины на JavaScript — основной механизм расширения, обеспечивающий стриминг, метаданные, тексты, разрешение изображений, загрузки, пункты контекстного меню, представления на боковой панели, полки на главной, информационные элементы «сейчас играет», визуализаторы, хуки событий, панели настроек и задачи планировщика. Встроенные плагины охватывают скробблинг и метаданные Last.fm, тексты из LRCLIB и Lyrics.ovh и обложки из TheAudioDB, Deezer, iTunes и MusicBrainz. Плагины галереи включают Spotify, TIDAL, YouTube через yt-dlp, Genius, qBittorrent и визуализаторы. Плагины рендерятся через структурированную модель данных, а не через прямую HTML-инъекцию, и их можно включать, отключать, переупорядочивать и настраивать из представления «Расширения». Другие возможности Изолированные профили в стиле Chrome, мастер первоначальной настройки, управляемые внешние зависимости (ffmpeg, yt-dlp), которые обнаруживаются, устанавливаются и автоматически обновляются, плагинные изображения сущностей с составными изображениями тегов, нативные контекстные меню ОС, проверяемый пользователем диагностический пакет для сообщений о проблемах и встроенные автообновления со стабильным и бета-каналами. Технологии и форматы Стек: Tauri 2 для оболочки приложения, Rust для сканирования, базы данных, синхронизации, движка воспроизведения и API-клиентов, TypeScript/React/Vite для фронтенда, libmpv с резервным HTML5 для воспроизведения, SQLite через rusqlite с FTS5, lofty для тегов, notify для отслеживания файлов и tauri-plugin-store v2 для сохранения состояния. Аудиоформаты, декодируемые нативно, включают MP3, FLAC, AAC/M4A, ALAC, WAV, OPUS, WMA, OGG, AIFF, APE, WavPack, TTA, DSD и другие; поддержка видео охватывает MP4/M4V/MOV (H.264) на обеих платформах и WebM в Windows через браузерный движок. Разработка и лицензирование Для разработки требуются Node.js 18+ и Rust 1.70+, а также платформенно-зависимые предварительные требования Tauri; README описывает команды сборки для разработки и продакшена, скрипты линтинга и тестирования, а также процесс развёртывания сайта документации на VPS, включая рабочий процесс GitHub Actions. Проект лицензирован под GPL-3.0-or-later, с разрешительно лицензированными зависимостями Rust и JavaScript, а libmpv, ffmpeg и yt-dlp используются как отдельные внешние компоненты.