Hacer streaming de Spotify en Ubuntu 11.04, con icecast2 + darkice y pulseaudio

Esto vale para escuchar Spotify en dispositivos que pueden reproducir streams, como smartphones, tablets, o TVs y para los que no hay una versión de Spotify (o necesitan cuentas premium). En mi caso vale para poner a sonar Spotify de fondo en mi TV de casa, (que suena mejor que el portátil :-P ).

Lo que se hará en realidad, es streaming de cualquier sonido que esté reproduciendo el PC. Pasos:

Primero, se instalará un servidor de streaming.

  1. Instalar icecast2 (apt-get install).
  2. Editar el fichero /etc/icecast2/icecast.xml para escuchar en todas las IP del PC, descomentando y poniendo:

    <bind-adress>0.0.0.0</bind-adress>

  3. Editar /etc/default/icecast2 y poner:

    ENABLED=true

  4. Arrancar icecast2 con:

    sudo /etc/init.d/icecast2 restart

A continuación, instalamos un módulo para servir el audio local (pulse) como si fuese un mp3.

  1. Instalar darkice (apt-get install).
  2. Crear el fichero ~/darkice.cfg con el siguiente contenido:
  3. [general]
    duration = 0 # duration in s, 0 forever
    bufferSecs = 1 # buffer, in seconds
    reconnect = yes # reconnect if disconnected
    [input]
    device = pulse # for Pulseaudio
    sampleRate = 44100 # sample rate 11025, 22050 or 44100
    bitsPerSample = 16 # bits
    channel = 2 # 2 = stereo
    [icecast2-0]
    bitrateMode = vbr # variable bit rate (cbr for constant)
    quality = 1.0 # 1.0 is best quality
    format = mp3 # format
    bitrate = 256 # bitrate
    server = localhost # or IP
    port = 8000 # port for IceCast2 access
    password = hackme # source password to the IceCast2 server
    mountPoint = mystream.mp3 # mount point on the IceCast2 server or any name
    name = mystream

  4. Arrancar el módulo darkice con:

    darkice -c ~/darkice.cfg

Podemos comprobar que el servidor icecast2 y el módulo funcionan, dirigiendo el navegador a http://localhost:8000 y ver que hay montado un stream llamado mystream.mp3 (a través de darkice).

Ponemos a sonar Spotify. Por último, configuramos el audio en pulse audio. Arrancamos el Pulse Audio Volume Control. Nos aseguramos de que:

  • Playback (Reproducción): Spotify esté saliendo por la tarjeta de sonido habitual, p. ej: “Internal Audio Analog Stereo”.
  • Recording (Grabación): Deberíamos ver la aplicación “darkice” y le seleccionamos que capture de: “Monitor of Internal Analog Stereo”.
  • Input Devices (Dispositivos de entrada): Miramos que aparezca el que seleccionamos para darkice pidiendo que muestre todos los dispositivos y nos aseguramos que no esté en mute.
  • Si es necesario, cambiamos de canción en Spotify.

Por último, hacer apuntar el reproductor que queramos (móvil, TV, etc) a:

http://[ip_del_pc]:8000/mystream.mp3

Tutorial basado en: http://askubuntu.com/questions/28496/how-do-i-setup-an-icecast-server-for-broadcasting-audio-in-my-network.

Deja un comentario