Automatiza tu librería de música. (Lidarr + Soularr + Slskd)

Cómo configurar Lidarr, Soularr y slskd con Docker Compose

Tabla de Contenidos

Introducción

En este tutorial aprenderás a implementar Lidarr, Soularr y slskd utilizando Docker Compose. Estas herramientas funcionan en conjunto para gestionar, descargar y organizar tu colección de música de forma eficiente. Al usar Docker, podrás ejecutarlas en contenedores aislados, lo que simplifica su configuración y mantenimiento.

Requisitos Previos

Antes de comenzar, asegúrate de contar con lo siguiente:

  1. Un entorno con Docker: Instala Docker y Docker Compose en tu sistema. Aquí tienes las instrucciones para instalar Docker Desktop. Windows/Linux/macOS
  2. Directorios configurados: Crea los siguientes directorios para almacenar datos de forma:
    1. ./slskd/config
    2. ./soularr/config
    3. ./lidarr/config
  3. Otros directorios:
    1. ./musica: Para la biblioteca de música.
    2. ./slskd/downloads: Para las descargas completas.
    3. ./slskd/incomplete: Para las descargas incompletas.

       

  4. Credenciales de Soulseek: Necesitarás un usuario y contraseña de Soulseek para configurar slskd.

El Archivo Docker Compose

A continuación, encontrarás el archivo docker-compose.yml que utilizaremos para configurar los contenedores:

name: lidarr-soularr
services:
  soularr:
    restart: unless-stopped
    container_name: soularr
    hostname: soularr
    environment:
      - PUID=0
      - PGID=0
      - TZ=Etc/UTC
      - SCRIPT_INTERVAL=300 # Cada cuanto se ejecuta soularr, en segundos
    user: "0:0"
    volumes:
      - ./slskd/config:/slskd
      - ./slskd/downloads:/slskd/downloads
      - ./slskd/incomplete:/slskd/incomplete
      - ./soularr/config:/data
    image: mrusse08/soularr:latest

  slskd:
    image: slskd/slskd
    container_name: slskd
    ports:
      - "5030:5030"
      - "5031:5031"
      - "50300:50300"
    environment:
      - SLSKD_REMOTE_CONFIGURATION=true
      - SLSKD_DOWNLOADS_DIR=/app/downloads
      - SLSKD_INCOMPLETE_DIR=/app/incomplete
    volumes:
      - ./slskd/config:/app
      - ./slskd/downloads:/app/downloads
      - ./slskd/incomplete:/app/incomplete
      - ./musica:/musica
    restart: always

  lidarr:
    image: lscr.io/linuxserver/lidarr:latest
    container_name: lidarr
    environment:
      - PUID=0
      - PGID=0
      - TZ=Etc/UTC
      - SLSKD_SHARED_DIR=/musica
    volumes:
      - ./slskd/downloads:/musica
      - ./lidarr/config:/config
    ports:
      - 8686:8686
    restart: unless-stopped

Guarda este archivo como

docker-compose.yml

en un directorio de tu elección. Yo lo voy a guardar en

C:UsersDavidlidarr-soularr

 

Cómo Implementar los Contenedores

Abre Docker Desktop y activa el terminal.

Boton para acceder al terminal

Entra en el directorio donde guardaste el fichero docker-compose.yml

listado de directorio

Y ejecuta docker compose up -d, docker descargara las imágenes y ejecutara los contenedores.

Para descargar estas 3 imágenes necesitas ~2GB de espacio.

Una vez los contenedores se estén ejecutando podrás ver esto:

Contenedores en ejecución

Configurando Slskd

Ahora podemos acceder a http://localhost:5030 e iniciar sesión.

alt text

  • Usuario: slskd
  • Contraseña: slskd

Una vez dentro vamos a System > Options > Edit

Aquí podemos modificar el fichero de configuración de slskd para conectarnos a la red Soulseek.

Primero vamos a modificar el directorio compartido (⚠ Hay quienes solo permiten que descargues su contenido compartido si tú también estás compartiendo)

de

# shares:
# directories:
# - ~

a

shares:
directories:
- /downloads

Así volvemos a compartir todo lo que nos descarguemos.

Lo segundo es cambiar el usuario y contraseña de slskd, crear una clave API para usar posteriormente con Soularr y tu usuario y contraseña de la red Soulseek.

Para cambiar el usuario y contraseña de slskd y crear una clave API:

Cambia de

# web:
# [...]
# authentication:
# disabled: false
# username: slskd
# password: slskd
# jwt:
# key: ~
# ttl: 604800000
# api_keys:
# my_api_key:
# key: and 255 characters>
# role: readonly # readonly, readwrite, administrator
# cidr: 0.0.0.0/0,::/0
a
web:
[...]
authentication:
disabled: false
username: TuNombreDeUsuario
password: TuContraseña
# jwt:
# key: ~
# ttl: 604800000
api_keys:
my_api_key:
key: UnStringLargoDeEntre16Y255Caracteres
role: readonly
cidr: 0.0.0.0/0,::/0

Y para cambiar el usuario y contraseña de la red Soulseek:

Cambia más abajo de

# soulseek:
# address: vps.slsknet.org
# port: 2271
# username:
# password: ~

a

soulseek:
address: vps.slsknet.org
port: 2271
username: TuNombreDeUsuario
password: TuContraseña

Ahora haz clic en Save.

Ahora puedes cerrar session y probar tu nuevo usuario y contraseña.

Una vez dentro haz clic en Disconnected para conectarte a la red Soulseek.

alt text

alt text

Verás que se ha activado el cuadro de búsqueda.

Si introduces cualquier termino a buscar Slskd buscará en la red Soulseek a otros usuarios que compartan archivos que coincidan con tu búsqueda:

alt text

Una vez acabada la búsqueda podrás entrar a ver los resultados:

alt text

Si lo deseas puedes seleccionar cualquiera que prefieras y enviarlo a la cola de descargas. Pero nosotros vamos a hacer que Soularr haga esto por nosotros automáticamente.

Pero primero hay que configurar Lidarr

Lidarr

Para configurar Lidarr vamos a la URL http://localhost:8686/

Lo primero que veremos será un popup que nos pide que creemos un usuario y contraseña, además de configurar el método de autenticación.

alt text

Yo recomiendo la configuración mostrada, así no hace falta iniciar sesión cada vez que entremos desde nuestra red local.

Primero vamos a cambiar el idioma a Español:

Haz clic en Settings > UI y selecciona Spanish al final de la página.

alt text

Luego haz clic en Save y actualiza.

Ahora hay que configurar la carpeta donde se descargará nuestra música.

Haz clic en Ajustes > Gestión de Medios y haz clic en el + para añadir una carpeta raíz.

alt text

alt text

Nosotros hemos configurado en nuestro docker-compose.yml la carpeta ./musica de la máquina anfitrión a la carpeta /musica del contenedor Docker de Lidarr.

Por último vamos a Ajustes > General y copiamos la Clave API.

alt text

Antes de ir a configurar Soularr para conectar Lidarr y Slskd vamos a añadir algunos artistas a nuestra librería de música.

Haz clic en Biblioteca > Añadir Nuevo

alt text

Selecciona el que mejor se asemeje a tu búsqueda y añádelo cambiando las opciones que desees.

Ahora sí, vamos a configurar Soularr

Soularr

Primero vamos al directorio ./soularr/config y creamos el siguiente archivo config.ini

[Lidarr]
api_key = AQUI_TU_CLAVE_API_DE_LIDARR
host_url = http://lidarr:8686
#Esta debería ser la ruta montada en Lidarr que apunta al directorio de descargas de Slskd.
download_dir = /musica

[Slskd]
#Clave API de Slskd. Necesitas configurarla manualmente. Consulta el enlace a la documentación de Slskd arriba.
api_key = AQUI_TU_CLAVE_API_DE_SLSKD
host_url = http://slskd:5030
#Directorio de descargas de Slskd. Debería haberse configurado al instalar Slskd.
download_dir = /app/downloads
#Elimina las búsquedas de Slskd después de que la búsqueda termine.
delete_searches = False
#Tiempo máximo (en segundos) que el script esperará para que las descargas se completen.
#Esto se utiliza para evitar que el script se ejecute indefinidamente debido a una descarga atascada. Por defecto, 1 hora.
stalled_timeout = 3600

[Release Settings]
#Selecciona el lanzamiento con la cantidad más común de pistas entre todos los lanzamientos.
use_most_common_tracknum = True
allow_multi_disc = True
#Consulta la lista completa de países más abajo.
accepted_countries = Europe,Japan,United Kingdom,United States,[Worldwide],Australia,Canada
#Consulta la lista completa de formatos más abajo.
accepted_formats = CD,Digital Media,Vinyl

[Search Settings]
search_timeout = 5000
maximum_peer_queue = 50
#Velocidad mínima de subida en bit/s
minimum_peer_upload_speed = 0
#Reemplaza "flac,mp3" por "flac" si solo quieres archivos FLAC.
allowed_filetypes = flac,mp3
ignored_users = User1,User2,Fred,Bob,SGAE
#Establecer en False si solo deseas buscar álbumes completos.
search_for_tracks = True
#Establecer en True si deseas agregar el nombre del artista al principio de la búsqueda de álbumes.
album_prepend_artist = False
track_prepend_artist = True
#Tipos de búsqueda válidos: all || incrementing_page || first_page
#"all" buscará cada registro deseado cada vez que se ejecute Soularr.
#"incrementing_page" comenzará con la primera página e incrementará a la siguiente en cada ejecución.
#"first_page" buscará repetidamente la primera página.
#Si utilizas el tipo de búsqueda "first_page", remove_wanted_on_failure debe estar habilitado.
search_type = incrementing_page
#Cantidad de álbumes a obtener en cada ejecución, debe ser un número entre 1 y 2,147,483,647.
number_of_albums_to_grab = 10
#Desmonitoriza el álbum si Soularr no puede encontrarlo y lo coloca en "failure_list.txt".
#Los álbumes fallidos pueden ser remonitorizados filtrando por "No monitorizados" en la lista de deseados de Lidarr.
remove_wanted_on_failure = False
#Lista separada por comas de palabras que no pueden estar en el título de álbumes o pistas. Insensible a mayúsculas.
title_blacklist = BlacklistWord1,blacklistword2

[Logging]
#Estas opciones se pasan directamente al método basicConfig() del registrador.
#Esto significa que, si estás familiarizado con el módulo de registro de Python, puedes configurar
#el registrador con opciones más allá de las listadas aquí por defecto.
#Para más información sobre las opciones disponibles -- https://docs.python.org/3/library/logging.html#logging.basicConfig
level = INFO
#Formato del mensaje de registro -- https://docs.python.org/3/library/logging.html#logrecord-attributes
format = [%(levelname)s|%(module)s|L%(lineno)d] %(asctime)s: %(message)s
#Formato de las fechas y horas -- https://docs.python.org/3/library/time.html#time.strftime
datefmt = %Y-%m-%dT%H:%M:%S%z

 

⚠ Ojo con los host_url, como nosotros usamos Docker podemos usar los nombres de host de cada contenedor, si tu setup es diferente cámbialos por sus IPs correspondientes.

Una vez reiniciamos el contenedor de Soularr este ejecutará el script the monitorización y empezará a buscar y descargar álbumes.

alt text

Si accedemos a la interfaz web de Slskd podremos ver las búsquedas realizadas por Soularr

alt text

Y si ha encontrado alguna coincidencia según nuestros parámetros los habrá añadido a la cola de descargas.

alt text

Soularr ejecutará el script the monitorización cada 300 segundo o cada cuanto hayamos configurado en la variable de entorno SCRIPT_INTERVAL

Por último, cada cierto tiempo Lidarr escaneara el directorio raíz que añadimos /musica y actualizara nuestra librería. También podemos forzar a un escaneo manual.

alt text

alt text

Post hecho por el socio:
Si te ha gustado... ¡Compártelo!
Homelabs esuna asociación sin ánimo de lucro. Advierte que el contenido compartido por sus socios no constituye asesoramiento profesional. No asumimos responsabilidad por el mal uso de los artículos de la web, debiéndose contrastar previamente, eximiéndonos de cualquier consecuencia.
Posts relacionados
Asociación homelabs
Logo
Shopping cart