Trae el resto de tu música
Un plugin trae una fuente de música externa a rox. rox la explora, la busca, la reproduce sin huecos y conserva lo que le pidas, en los mismos paneles y la misma cola que los archivos de tu disco.
Qué es un plugin
Un plugin es una carpeta con un pequeño manifiesto y un programa. El programa puede ser un script de Python o un binario nativo, y habla con rox por su entrada y salida estándar. rox lo arranca la primera vez que algo lo necesita y lo reinicia si se cae. Cinco caídas en diez minutos lo paran hasta que lo apagas y lo vuelves a encender.
Lo que puede hacer un plugin es una lista corta: listar y buscar en un catálogo, sincronizar colecciones en tu biblioteca, servir audio, llevar una radio, enlazar a sus propias páginas web, y añadir paneles predefinidos bajo su nombre. No puede añadir botones, cambiar el aspecto de rox ni meterse en otros paneles. Los plugins traen fuentes, y el reproductor a su alrededor sigue siendo el de rox.
Explorar una fuente
Cada plugin en marcha tiene una entrada en Añadir panel > Plugins, que abre un panel de Fuentes externas sobre su fuente. El panel lista las carpetas, listas y álbumes del plugin, busca, muestra carátulas y carga más según te desplazas. La página de inicio de un servicio aparece en el nivel superior del panel, así que está ahí sin necesidad de un clic.
Lo demás que muestre el panel depende del plugin. Unas fichas sobre una lista cambian entre las vistas del plugin, como una búsqueda reducida a álbumes. Los estantes de carátulas se desplazan de lado, y una página que solo tiene carátulas se pliega en una cuadrícula. Las columnas que el servicio conoce y tus etiquetas no, como un número de descargas, se ordenan con un clic en su cabecera. Mientras suena una de las pistas del plugin, el nivel superior la muestra junto con lo que viene después.

Reproducir y conservar
Las pistas de un plugin entran en la cola, las listas y el historial como tus propios archivos, y suenan sin huecos una tras otra. Una pista que se corta a medias se reconecta y sigue por el mismo punto. Un flujo en directo de un plugin tiene pausa y búfer de rebobinado, como una emisora de radio.
Reproducir una pista no la añade a tu biblioteca; Añadir a la biblioteca sí la conserva. Pasa el ratón por una colección y pulsa su marca de verificación para conservarla entera. Se sincroniza en tu biblioteca, sigue a la colección según cambia, y se abre desde ahí aunque el plugin esté parado o no haya red.
Abrir en el navegador y Copiar enlace llevan a la página de una pista o un álbum en el servicio, desde cualquier sitio donde sus pistas aparezcan en rox. El scrobbling está apagado a menos que el plugin lo pida, y entonces es un interruptor en la fila del plugin.
Radio
Un plugin con radio añade Reproducir algo parecido a sus pistas, álbumes, listas y artistas. Un álbum, una lista o un artista suena primero con sus propias pistas, mientras que una pista solo sirve de punto de partida para la emisora y no suena en ella. Luego las elecciones del servicio siguen la cola a medida que se agota. El orden aleatorio pasa a Parecido, y para las pistas del plugin funciona sin el análisis acústico de tu biblioteca. Un álbum que reproduces desde el panel continúa igual al terminar, en vez de pasar a tu biblioteca local.
Las pistas de la radio suenan por el propio motor de rox como cualquier otra pista. No se unen a tu biblioteca, la emisora se salta lo que ya sonó en esta sesión, y sigue tras reiniciar. Apaga Seguir reproduciendo en Ajustes > Reproducción y la cola se para al final.
Qué estás aprobando
Un plugin nuevo aparece apagado. Activarlo es la aprobación, y la tarjeta que confirmas dice qué es el plugin, qué puede hacer, qué programas necesita, y que se ejecuta como un programa en tu ordenador con tus permisos.
La aprobación cubre exactamente los archivos de la carpeta del plugin. Si alguno cambia, el plugin se apaga solo y muestra Cambiado en el disco hasta que lo apruebas de nuevo, y entonces la tarjeta muestra qué cambió en su manifiesto. Quitar en la página de Plugins borra las pistas, colecciones sincronizadas, ajustes y aprobación del plugin, y deja su carpeta tal cual.
Escribe el tuyo
Un plugin habla JSON-RPC, un mensaje por línea sobre la entrada y salida estándar, así que vale cualquier lenguaje que lea y escriba líneas. La guía de plugins cubre el manifiesto, cada método, los tiempos de espera y cómo llega el audio al reproductor. El botón Guía de plugins en la página de Plugins la abre para la versión que tienes.
Hay dos ejemplos en el repositorio. tones genera tonos y acordes sinusoidales, y es el que sirve para aprender el protocolo. Internet Archive usa cada parte opcional del protocolo contra un catálogo real, con estantes de inicio, vistas, columnas, radio y enlaces, en Python sin nada más allá de la biblioteca estándar.
El modo desarrollador en la fila de un plugin aprueba tus propios cambios en su carpeta hasta que cierras rox, y reinicia el plugin cada vez que guardas. Cada parte más reciente del protocolo es opcional. rox lista las que admite cuando el plugin arranca, así que un plugin nunca tiene que mandar algo que un rox más antiguo rechazaría.
Dónde se paran los plugins
- Los plugins traen fuentes y nada más. Un componente de foobar2000 que cambiara el propio reproductor, como un panel nuevo o un DSP, no tiene equivalente en plugins.
- Los plugins con script necesitan Python 3 en la máquina. La mayoría de instalaciones de Linux lo tienen, y Windows y macOS normalmente no.
- El Flatpak no ve los programas instalados en el sistema anfitrión. Incluye Python 3, así que un plugin que solo necesite la biblioteca estándar funciona tal cual. Cualquier otra cosa tiene que venir en la propia carpeta
bindel plugin. - Una app de Mac abierta desde Finder o el Dock no recibe el PATH de tu shell, así que los programas instalados con Homebrew aparecen como ausentes hasta que añadas la carpeta de Homebrew a Carpetas de programas en Ajustes > Plugins.
- En Windows, los archivos de un plugin nativo no se pueden reemplazar mientras se ejecuta. Apágalo antes de actualizar su carpeta.
Prueba uno
Descarga rox, activa Activar plugins en Ajustes > Plugins, y copia el ejemplo de Internet Archive en la carpeta de plugins. Necesita red y ninguna cuenta.
¿En Arch o NixOS? Instálalo desde el AUR o el flake de Nix en su lugar.