Rádio Algoritmo
Where Music Meets Code

Rádio online self-hosted a correr num Raspberry Pi 5. Descarrega música do YouTube, edita marcadores de entrada/saída, organiza em sequências programadas e emite continuamente via Icecast2 com crossfade automático — tudo controlado por algoritmo.

▶ Ouvir agora
219
Faixas
12.7h
De música
8628
Reproduções
4
Sequências
Como funciona
YouTube URL → yt-dlp → MP3
→ Editor (marcadores + metadados + categorias)
→ Sequências (blocos de programação ordenados)
→ Horário (mapa semanal + datas específicas)
→ stream_daemon.py (crossfade numpy + ffmpeg)
→ Icecast2 :8000Browser / VLC / Android Auto
Funcionalidades
🎛️ Editor de faixas com forma de onda interactiva — 4 marcadores arrastáveis (entrada, voz, saída)
📋 Sequências de programação com drag-and-drop — faixas específicas, categorias aleatórias, jingles e silêncios
🗓️ Horário semanal e por data específica com prioridades — fila pré-resolvida de 8 posições
🔀 Crossfade configurável (fade in/out/overlap) sem reiniciar o daemon
🚫 Anti-repetição por faixa e por artista — janelas de tempo configuráveis com fallback gracioso
📱 PWA com Media Session API — nome da música, temperatura dos ouvintes no ecrã bloqueado
🎵 Pedidos de faixas pelos ouvintes — rate limit 1 pedido/15 min por IP
🌡️ Temperatura em tempo real das localidades dos ouvintes (Geolocation API + Open-Meteo)
Stack técnica
🖥️
Raspberry Pi 5
ARM64 · 8 GB RAM
🐍
Python 3
Daemon + crossfade numpy
🐘
PHP 8.2
Backend + scheduling API
🎬
ffmpeg
Decode PCM + encode MP3
📡
Icecast2
Stream HTTP :8000
🗄️
MariaDB
Tracks · schedules · history
📥
yt-dlp
Download do YouTube
🌐
Apache 2
Proxy HTTPS → Icecast
🤖
Claude Code
Co-desenvolvido com IA
Roadmap
✓ feito Download YouTube, editor de marcadores, catálogo
✓ feito Stream daemon Python com crossfade real (numpy)
✓ feito Sequências de programação e horário semanal
✓ feito Player público PWA + pedidos de faixas
✓ feito Media Session API + temperatura dos ouvintes
✓ feito Sugestões de música pelos ouvintes via YouTube + sistema de likes
✓ feito Backup automático diário da base de dados
✓ feito Auto-detecção de cue points por análise de silêncio (ffmpeg)
✓ feito Votação em tempo real — ouvintes escolhem a próxima música
✓ feito Modo nocturno adaptativo — sequência automática sem ouvintes
✓ feito Feed RSS do histórico de reprodução
✓ feito Análise automática de BPM e energia das faixas (librosa) — recalibrado com score combinado
✓ feito Capa do álbum no player — YouTube thumbnail + MusicBrainz + Media Session / Android Auto
✓ feito Reconhecimento automático de metadados via AcoustID + Chromaprint
✓ feito Auto-importação de playlist YouTube — evita duplicados por youtube_id
✓ feito Votação renovada — playlist vs desafiante aleatório; registo de vitórias e rejeições
✓ feito Catálogo com gostos, vitórias/derrotas em votação, filtros de tipo e incompletos
a seguir Sequências por mood/BPM — filtrar faixas por humor ou intervalo de tempo
a seguir Locutor IA contextual — Claude API + edge-tts entre faixas
a seguir Dashboard de saúde — disco, daemon, faixas incompletas, sugestões pendentes
a seguir Clip para partilha — 30s da faixa actual para download