beets¶
Post-procesador de metadatos de música. Corre automáticamente cuando Lidarr importa un artista nuevo: busca letras, album art, género y analiza BPM.
Stack¶
| Qué | Dónde |
|---|---|
| Dockerfile | /opt/docker/beets/Dockerfile |
| Compose | /opt/docker/beets/compose.yaml |
| Config | /opt/docker/beets/config/config.yaml |
| Script BPM | /opt/docker/beets/bpm.py |
| Script Lidarr | /opt/docker/beets/lidarr-import.sh |
| Imagen | beets:local (local build) |
Contenedor: no corre como daemon — se ejecuta via docker run --rm desde el script de Lidarr.
Qué hace¶
Cuando Lidarr importa un album, ejecuta /beets/lidarr-import.sh que corre:
| Paso | Acción |
|---|---|
1. beet import -q -A |
Agrega a la librería (sin autotag, preserva tags) |
2. beet lyrics -p |
Descarga letras desde Genius/lyrics.ovh |
3. beet fetchart |
Descarga album art (coverartarchive.org, iTunes) |
4. beet lastgenre |
Asigna género via Last.fm |
5. bpm.py |
Analiza BPM con librosa |
Comandos útiles¶
# Procesar un artista manualmente
/opt/docker/beets/lidarr-import.sh /mnt/hdd_2tb/navidrome_music/Artista
# Analizar BPM de un track específico
sudo docker run --rm \
-v /mnt/hdd_2tb/navidrome_music:/music \
--entrypoint python3 \
beets:local /usr/local/bin/bpm.py "/music/Artista/Album/track.flac"
# Ver stats de la librería beets
sudo docker run --rm \
-v /opt/docker/beets/config:/config \
beets:local stats
# Reconstruir imagen
cd /opt/docker/beets && sudo docker build -t beets:local .
Notas¶
- Los archivos de música se montan read-write para escribir tags (letras, genre, BPM)
- La base de datos de beets está en
/opt/docker/beets/config/library.db - Si se borra la DB, la próxima importación la recrea desde cero
- Libros está incluido para BPM (dependencia pesada ~300MB en la imagen)