Sobre el proyecto

Viboplr es un reproductor de música de escritorio con enfoque en plugins para macOS y Windows, creado con Tauri 2, React y Rust. Reproduce audio y video desde carpetas locales y servicios de música remotos, actuando como un orquestador: un sistema de plugins conecta proveedores de streaming, servicios de metadatos, bases de datos de letras y fuentes de imágenes, mientras que la aplicación principal gestiona la reproducción, la administración de la biblioteca y la interfaz de usuario. Administración de la biblioteca Las carpetas locales se escanean en segundo plano con informes de progreso y vigilancia de archivos en tiempo real. Las colecciones Subsonic/Navidrome se sincronizan en la misma biblioteca, y las colecciones remotas se pueden conectar mediante plugins. Las pistas locales se pueden exportar como una fuente de música autónoma y alojable (manifiesto más archivos), y los manifiestos publicados se pueden suscribir como colecciones. Los metadatos se leen mediante la biblioteca de etiquetas lofty con análisis alternativo del nombre de archivo, y la búsqueda funciona con SQLite FTS5 en títulos, artistas, álbumes, géneros y nombres de archivo, sin distinción de acentos ni mayúsculas. Los metadatos de género se almacenan como etiquetas con relaciones de pistas de muchos a muchos. Reproducción El motor predeterminado es mpv nativo, basado en libmpv incluido, que ofrece decodificación nativa, reproducción sin pausas y salida de audio exclusiva (bit-perfect), con renderizado de video nativo en ambas plataformas. Un motor HTML5 del navegador a través del webview del sistema sirve como respaldo automático. Otras funciones de reproducción incluyen un ecualizador de 10 bandas, normalización ReplayGain, fundido cruzado configurable de hasta 10 segundos, control de velocidad estilo tocadiscos, gestión de cola mediante arrastrar y soltar, reglas de continuación automática, estaciones de radio infinitas a partir de una pista, artista o etiqueta, me gusta de tres estados, un mini reproductor compacto siempre visible y una barra de búsqueda con forma de onda y vistas previas de storyboard para video. Vistas y skins Las vistas incluyen Inicio (carrusel de radio más estantes), una vista a pantalla completa de Reproducción actual con letras karaoke sincronizadas y visualizadores de plugins, páginas de detalle para artistas, álbumes, etiquetas y pistas, una vista de Historial con pestañas, listas de reproducción con exportación/importación M3U8 y .mixtape, y un administrador de Colecciones. Se incluyen ocho skins integradas (Default, OLED Black, Arctic Light, Forest, Silver, Ocean Blue, Viboplr, Sunset), con skins JSON personalizadas, una galería comunitaria, 19 tokens de color y CSS opcional saneado por skin. Plugins e integraciones Los plugins de JavaScript son el mecanismo de extensión principal, y proporcionan streaming, metadatos, letras, resolución de imágenes, descargas, elementos de menú contextual, vistas de barra lateral, estantes de inicio, elementos de información de reproducción actual, visualizadores, hooks de eventos, paneles de configuración y tareas programadas. Los plugins integrados cubren scrobbling y metadatos de Last.fm, letras de LRCLIB y Lyrics.ovh, y carátulas de TheAudioDB, Deezer, iTunes y MusicBrainz. Los plugins de la galería incluyen Spotify, TIDAL, YouTube mediante yt-dlp, Genius, qBittorrent y visualizadores. Los plugins se renderizan mediante un modelo de datos estructurado en lugar de inyección de HTML sin procesar, y se pueden habilitar, deshabilitar, reordenar y configurar desde la vista Extensiones. Otras capacidades Perfiles aislados similares a Chrome, un asistente de incorporación en el primer inicio, dependencias externas gestionadas (ffmpeg, yt-dlp) que se detectan, instalan y actualizan automáticamente, carátulas de entidades basadas en plugins con imágenes compuestas de etiquetas, menús contextuales nativos del sistema operativo, un paquete de diagnóstico revisado por el usuario para informes de problemas y actualizaciones automáticas integradas con canales estable y beta. Tecnología y formatos El stack es Tauri 2 para el shell de la aplicación, Rust para el escaneo, la base de datos, la sincronización, el motor de reproducción y los clientes de API, TypeScript/React/Vite para el frontend, libmpv con respaldo HTML5 para la reproducción, SQLite mediante rusqlite con FTS5, lofty para etiquetas, notify para la vigilancia de archivos y tauri-plugin-store v2 para la persistencia del estado. Los formatos de audio decodificados de forma nativa incluyen MP3, FLAC, AAC/M4A, ALAC, WAV, OPUS, WMA, OGG, AIFF, APE, WavPack, TTA, DSD y otros; la compatibilidad de video cubre MP4/M4V/MOV (H.264) en ambas plataformas y WebM en Windows mediante el motor del navegador. Desarrollo y licencia El desarrollo requiere Node.js 18+ y Rust 1.70+ además de los requisitos previos de Tauri específicos de la plataforma; el README documenta los comandos de desarrollo y compilación de producción, scripts de linting y pruebas, y un flujo de despliegue en VPS para el sitio de documentación, incluido un flujo de trabajo de GitHub Actions. El proyecto está licenciado bajo GPL-3.0-or-later, con dependencias de Rust y JavaScript con licencias permisivas, y libmpv, ffmpeg y yt-dlp usados como componentes externos separados.