Música desde la línea de comandos

mp3blaster, mpsyt y alguno más

Captura de pantalla de mpv lanzado por mpsyt con la careta de la canción Moon de Las ninyas del corro

En un principio era la línea de comandos y mp3blaster el reproductor de audio. Cuando empecé con Debian GNU/Linux y aprendía a base de compilar el kernel, crimpar cable de red, configurar iwconfig, ALSA o icecast en centros sociales y hacklabs, había una herramienta que nos acompañaba en nuestra vida y era mp3blaster, que nos servía además para compartir música. La única pega era que no leyera ogg, pero esa fue una de las muchas batallas perdidas.

Con el tiempo siguió acompañándonos y en algún momento que no recuerdo dejó de funcionar, no sé si por PulseAudio.

También los usos han cambiado, y no porque haya ido hacia Spotify. Si antes guardaba gb de datos con música, ahora escucho más la radio, podcasts, conciertos… muchos de ellos se publican en Youtube. Y también el dispositivo móvil/tablet acompaña al desktop/laptop y mucho por ahí.

Por eso hay un conjunto de herramientas que se han ido haciendo habituales: newpipe, youtube-dl y la última en llegar a mis teclas, mpsyt.

mp3blaster

Os dejo los enlaces del histórico y genial mp3blaster, “an interactive text-console based mp3 player”, por si alguien quiere probarlo.

NewPipe

La aplicación de f-droid imprescindible para escuchar música de Youtube. Puedes usarlo como reproductor de vídeo o solo escuchar el audio, con el ahorro de datos que supone. Soporta poner varios temas y alterar el orden, puedes importar una playlist y crear una. La única pega que le puedo poner es que no he podido compartir esa lista de reproducción por lo que no vive más que en tu dispositivo.

NewPipe does not use any Google framework libraries, or the YouTube API. It only parses the website in order to gain the information it needs. Therefore this app can be used on devices without Google Services installed. Also, you don’t need a YouTube account to use NewPipe, and it’s FLOSS. Fuente: https://f-droid.org/packages/org.schabi.newpipe/

No utiliza ni librerías de Google ni la API de Youtube, solo parsea la web y obtiene la información de ahí. No necesita una cuenta de youtube ni tener corriendo ni instalados los Google Services, lo cual se agradece mucho.

Búsqueda

Captura de pantalla de búsqueda de newpipe
Figure 1: Captura de pantalla de búsqueda de newpipe

Lista de Ferrary Wan seleccionada

Nos aparece la lista seleccionada, Las Ninjas del Corro de Ferrary Wan. Podemos reproducir todo, que lo hará con vídeo; popup o bien en segundo plano, por lo que solo se bajará el audio y se utilizará como un reproductor de música.

Requiere permisos de ejecución de la aplicación en segundo plano.

Captura de pantalla de búsqueda de playlist en newpipe
Figure 2: Captura de pantalla de búsqueda de playlist en newpipe

Lista cargada

Una vez cargada la lista podemos alterar el orden subiendo o bajando canciiones manteniendo pulsados las dos líneas horizontales de la derecha de cada tema:

Captura de pantalla de playlist de newpipe
Figure 3: Captura de pantalla de playlist de newpipe

Comprobar reproducción

Si deslizamos el móvil veremos la ventana de reproducción. Si pinchamos sobre ella iremos al menú anterior.

Captura de pantalla de newpipe en segundo plano
Figure 4: Captura de pantalla de newpipe en segundo plano

Enlaces

mps-youtube o mpsyt

Encontrarme con mps-youtube (mpsyt) ha sido genial porque es casi como tener Newpipe o mejor porque el móvil va con Android… pero ésta necesita igualmente una cuenta de Google.

Captura de pantalla de mpsyt en acción con Bulgaria de Las niñas del corro
Figure 5: Captura de pantalla de mpsyt en acción con Bulgaria de Las niñas del corro

Se puede instalar como paquete .deb o con pip. Lo hice con lo segundo y me dio primero un error y luego otro. El primero era sobre el token

El primer error se producía con cualquier canción y al decir “video unavailable” con vídeos que sabía que estaban pensé que tenía que ser algo de la API… bingo! Hay una issue abierta. Una opción era crear una app en la API de youtube (creando una app nueva) así que lo hice. Una vez que pones el token hay que esperar a que se propague por lo que no funcionará automáticamente.

El segundo error cantaba que la opción de línea de comandos requería un parámetro. Busqué en las issues de mps-youtube y encontré la 1058. Parece que en la versión de desarrollo ya lo han solucionado así que instalé desde pip esta versión:

1
pip3 install --user -U git+https://github.com/mps-youtube/mps-youtube.git

Y a disfrutar, lo lanzamos con mpsyt y buscamos con /search, por ejemplo, “Las ninyas del corro”

1
/search las ninyas del corro

Si no sabemos que hacer siempre podemos lanzar la ayuda con /help:

1
/help

O la ayuda de un comando de los que aparecen:

1
/help search

También podemos tabular para ver algunas cosas más.

Podemos reproducir una playlist:

1
playlist https://www.youtube.com/playlist?list=PLKvQ2_H7_0ySOCFd6jorDyZSUzK8bKdcS

O una url normal:

1
playurl https://youtu.be/EIoIM_r2cpc

También permite descargar pero eso era de cuando Napster ;-)

Captura de pantalla de reproducción de mpsyt con mpv
Figure 6: Captura de pantalla de reproducción de mpsyt con mpv

youtube-dl

youtube-dl es la maravilla tras mpsyt. Puede bajarse de youtube o de vimeo y otros sitios. Ofrece varias formas de instalación.

Dos ejemplos de los muchos que hay:

Audio en alta calidad

Comentando sobre un disco con Alejandro Zappala me comentó cómo bajarlo flac, un formato de audio de alta calidad. Este disco era “Al Alba” de Rosa Leon y la canción para descargar, Al Alba.

1
youtube-dl --extract-audio --audio-format flac https://youtu.be/EIoIM_r2cpc

Vídeo en alta calidad

Para bajar un vídeo con la mejor calidad, primero vemos qué opciones tiene con -F. Por ejemplo el vídeo de EmacsCast 5, Blogging with Org mode and ox-hugo:

1
youtube-dl -F https://www.youtube.com/watch?v=7s8cQ2cOnl8
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
[youtube] 7s8cQ2cOnl8: Downloading webpage
[youtube] 7s8cQ2cOnl8: Downloading video info webpage
[youtube] 7s8cQ2cOnl8: Downloading MPD manifest
[info] Available formats for 7s8cQ2cOnl8:
format code  extension  resolution note
139          m4a        audio only DASH audio   58k , m4a_dash container, mp4a.40.5@ 48k (22050Hz)
251          webm       audio only DASH audio  128k , webm_dash container, opus @160k (48000Hz)
140          m4a        audio only DASH audio  136k , m4a_dash container, mp4a.40.2@128k (44100Hz)
278          webm       256x144    DASH video   95k , webm_dash container, vp9, 24fps, video only
134          mp4        640x360    DASH video  103k , mp4_dash container, avc1.4d401e, 24fps, video only
160          mp4        256x144    DASH video  108k , mp4_dash container, avc1.4d400b, 24fps, video only
242          webm       426x240    DASH video  220k , webm_dash container, vp9, 24fps, video only
133          mp4        426x240    DASH video  242k , mp4_dash container, avc1.4d400c, 24fps, video only
243          webm       640x360    DASH video  405k , webm_dash container, vp9, 24fps, video only
137          mp4        1920x1080  DASH video  612k , mp4_dash container, avc1.640028, 24fps, video only
244          webm       854x480    DASH video  752k , webm_dash container, vp9, 24fps, video only
135          mp4        854x480    DASH video 1155k , mp4_dash container, avc1.4d4014, 24fps, video only
247          webm       1280x720   DASH video 1505k , webm_dash container, vp9, 24fps, video only
136          mp4        1280x720   DASH video 2310k , mp4_dash container, avc1.4d4016, 24fps, video only
248          webm       1920x1080  DASH video 2646k , webm_dash container, vp9, 24fps, video only
18           mp4        640x360    360p  275k , avc1.42001E, mp4a.40.2@ 96k (44100Hz), 74.93MiB
22           mp4        1280x720   720p  726k , avc1.64001F, mp4a.40.2@192k (44100Hz) (best)

Normalmente la de mejor calidad es la 22, por lo que lo especificamos con -f 22:

1
youtube-dl -f 22 https://youtu.be/EIoIM_r2cpc
1
2
3
4
5
[youtube] 7s8cQ2cOnl8: Downloading webpage
[youtube] 7s8cQ2cOnl8: Downloading video info webpage
[youtube] 7s8cQ2cOnl8: Downloading MPD manifest
[download] Destination: EmacsCast 5 - Blogging with Org mode and ox-hugo-7s8cQ2cOnl8.mp4
[download]  40.6% of 197.28MiB at  8.14MiB/s ETA 00:14
Adolfo Antón Bravo
Adolfo Antón Bravo
Coordinador del Máster de Periodismo y Visualización de Datos de la Universidad de Alcalá

Periodismo y visualización de datos, web semántica, bash, emacs, orgmode

Relacionado