RG35XX H Radio

App nativa de radio por internet para la consola Anbernic RG35XX H con MuOS. Interfaz 640×480, playlist M3U, favoritos y listas propias.

RG35XX H Radio

Radio por internet en una consola retro

RG35XX H Radio es una aplicación nativa de radio por internet para la consola Anbernic RG35XX H con MuOS. La interfaz corre a 640×480 y se navega con los botones físicos de la consola: lista de emisoras, favoritos, recientes y ajustes guardados en la tarjeta SD.

Incluye una playlist M3U con emisoras MP3, AAC, streams HLS (.m3u8) y flujos Icecast genéricos. Desde Ajustes puedes añadir tus propias listas, locales o remotas, y la selección queda guardada en la configuración de la aplicación.

Instalación

Se copian los archivos en la tarjeta SD con esta estructura:

/mnt/mmc/Roms/APPS/Radio.sh
/mnt/mmc/Roms/APPS/radio/

Radio.sh va en Roms/APPS/ y el directorio radio/ completo en Roms/APPS/radio/. Para el icono del menú, se copia el PNG como Roms/APPS/Imgs/Radio.png y la aplicación se lanza desde el menú APPS de MuOS.

El paquete de instalación incluye también el motor de audio AArch64 en radio/engine/ffmpeg-aarch64. Ese binario no está en el repositorio: hay que obtenerlo por separado e incluirlo en el paquete.

Controles

Playlists propias

Listas locales (.m3u o .m3u8) en:

/mnt/mmc/Roms/APPS/radio/playlists/

Para listas remotas, una URL http:// o https:// completa por línea en playlists/playlist_urls.txt. Se permiten líneas en blanco y comentarios con #; otros esquemas se ignoran.

Las descargas remotas verifican el certificado HTTPS y se limitan a 2 MiB. Cada descarga válida se guarda en caché: si una actualización posterior falla, se usa esa copia. Sin caché válida, o si una playlist local no existe, está vacía o es inválida, la aplicación usa la playlist incluida.

Arquitectura

La interfaz está escrita en Python con SDL2 y Pillow sobre el dispositivo. El parser M3U, la gestión de playlists, el estado de la aplicación y la persistencia están separados de la capa de interfaz, de forma que se pueden probar en un sistema de escritorio.

La reproducción conecta un decodificador estático ffmpeg-aarch64 con /usr/bin/aplay: FFmpeg convierte el stream a PCM y aplay lo envía a ALSA. El bundle de certificados en radio/assets/cacert.pem se entrega al decodificador a través de SSL_CERT_FILE para verificar HTTPS sin depender del almacén TLS del firmware.

Seguridad

La aplicación solo acepta URLs de playlist HTTP(S), conserva la verificación HTTPS y no ejecuta playlists ni URLs a través de un shell. Las entradas M3U se tratan como datos no confiables y las malformadas se omiten. La caché y la persistencia quedan dentro del árbol de la aplicación en la tarjeta SD. Eso no hace fiables los streams de terceros: usa solo playlists y emisoras en las que confíes.

Licencia

Código abierto bajo licencia MIT. Repositorio en github.com/rafarq/rg35xxh-radio.