--- title: ¿Cuál es el mejor reproductor de videos y por qué mpv? layout: post excerpt: | Acá no hay mucha discusión, mpv corre en lo que sea y encima podemos ver videos de YouTube y streaming de Twitch incluso en hardware (para nada) obsoleto. Acá te muestro sus bondades y como podés instalarlo en tu distro favorita. --- Desde que las computadoras nos permitieron reproducir videos, debemos haber experimentado con una larga lista de reproductores de video. Personalmente, [VLC](https://www.videolan.org/vlc/) fue amor a primera vista, mi reproductor de videos predilecto por años. Es Software Libre, te reproduce cualquier video, sin importar si tenés los codecs instalados para poder verlo, es multiplataforma, hasta lo pude instalar en mi primer Android (un LG hermoso que corría Android 2.2 y le entraba CyanogenMod como anillo al dedo, pero esa historia es para otro post). Los últimos años mi atracción se volcó a [SMPlayer](https://www.smplayer.info/), un reproductor basado en librerías Qt que ofrece una interfaz gráfica para el poderoso MPlayer. SMPlayer traía algo que me generó adicción: poder decargar los subtítulos sin abandonar la interfaz del reproductor. Además siempre lo sentí más estable que el VLC. Sin embargo, en este último tiempo apareció en mi vida el que considero el mejor reproductor de videos... (tambores de suspenso) [`mpv`](https://mpv.io/), un reproductor minimalista, que consume muy pocos recursos, con una interfaz super simple donde el protagonista es el video. No tiene menús, pero podés acceder a muchas funcionalidades a través de accesos de teclado. Al igual que SMPlayer, `mpv` está basado en MPlayer, pero también en FFmpeg, la suite de programas de audio y video que [comprime los videos que llegan de Marte](https://en.wikipedia.org/wiki/FFmpeg#Projects_using_FFmpeg). Al ser tan minimalista, `mpv` está diseñado para poder ser embebido en otras aplicaciones. Por ejemplo, Stremio lo utiliza para poder reproducir los videos que _streamea_. Las bondades de `mpv` no terminan ahí. Este reproductor está pensado para que podamos agregarle funcionalidades a través de scripts, sin necesidad de modificar el código fuente y recompilarlo. Es decir, cualquier usuarie puede escribir (con algo de conocimiento) unas pocas líneas para manipular el reproductor a su antojo. Y si no te sentís capaz de escribir un script vos solx, podés descargar alguno de [esta larga lista](https://github.com/mpv-player/mpv/wiki/User-Scripts). Y por si no fuera poco, `mpv` nos permite ver videos de YouTube, Vimeo, Peertube, etc. haciendo uso de [`youtube-dl`](https://youtube-dl.org/) (agachen sus cabezas ante semejante deidad). Gracias a esta funcionalidad, no solo podemos ver videos que estén colgados en la red sin necesidad de abrir nuestro navegador, sino que también podemos ver streamings de YouTube Live, Twitch y cuanta plataforma se te ocurra. Me saco el sombrero. Esto abre la puerta a que un hardware no muy poderoso (una netbook con un Atom, por ejemplo) nos reproduzca videos de estas plataformas sin necesidad de cargar una tonelada de JavaScript con nuestro navegador solo para darnos cuenta que a nuestro CPU no le queda nafta para reproducir el video sin perder frames en el camino. ## Cómo instalar mpv mpv está disponible en los repositorios de la mayoría de las distribuciones. En Debian, Ubuntu y derivadas podemos instalarlo con: ``` sudo apt install mpv ``` Y en Arch, Manjaro y derivadas: ``` sudo pacman -S mpv ``` Podemos abrir un video desde nuestro navegador de archivos y elegir `mpv` como la aplicación por defecto. O bien podemos abrirlo desde la terminal: ``` mpv mi-video.mkv ``` En el [manual de `mpv`](https://mpv.io/manual/master/) podemos hallar una lista de los accesos de teclados que podemos usar. Por ejemplo la `f` para poner en pantalla completa. ## Ahora quiero ver videos online! Para que podamos disfrutar de cualquier video online desde `mpv`, primero necesitamos instalar `youtube-dl`. En muchas distros, `youtube-dl` es una dependencia (obligatoria u opcional) de `mpv` y es probable que ya lo tengas instalado. Podemos disfrutar cualquier video de la web ejecutando `mpv` seguido de la url del mismo, por ejemplo: ``` mpv https://www.youtube.com/watch?v=WhWc3b3KhnY ``` Alternativamente, podemos abrir `mpv` desde nuestro menú de aplicaciones y _arrastrar_ la url del video a la ventana del reproductor. Es probable que estos pasos no nos funcionen a la primera. Nuestros (ene)amigos de las plataformas no les gusta mucho que podamos ver videos sin pasar por sus páginas web, es por eso que cambiar algunas cositas de vez en cuando para que nuestro `youtube-dl` deje de funcionar correctamente. Obvio que les desarrolladores de `youtube-dl` son más rápides y le encuentran la vuelta, pero esto hace necesario que tengamos instalada una versión moderadamente nueva de `youtube-dl`. En los sistemas basados en Arch es moneda corriente tener las últimas versiones de los programas, pero el panorama es distinto en Debian y Ubuntu, donde se suele priorizar la estabilidad del sistema por encima de la novedad de los paquetes. ### Actualizar youtube-dl en Debian 10 Si estás corriendo Debian stable sabrás que los paquetes que usas no son de lo más nuevos, pero Debian nos suele ofrecer un conjunto de repositorios que nos permiten acceder fácilmente a paquetes casi recién sacados del horno sin comprometer nuestro sistema: los `backports`. Para poder acceder a ellos necesitamos agregar los `backports` a nuestra lista de repositorios. Vamos a editar el archivo `/etc/apt/sources.list` y agregar las siguiente línea al final: ``` deb http://deb.debian.org/debian buster-backports main ``` Luego vamos a actualizar la lista de paquetes: ``` sudo apt update ``` Y ahora podemos instalar una de las últimas versiones de `youtube-dl`, especificandole a `apt` que queremos descargar la versión en los backports: ``` sudo apt install -t buster-backports youtube-dl ``` Para más detalles, podés leer la [documentación oficial](https://backports.debian.org/Instructions/). ### Actualizar youtube-dl en Ubuntu A diferencia de Debian, Ubuntu no nos ofrece un repositorio con una versión más nueva de `youtube-dl`, así que vamos a tener que instalarlo de forma manual. Lo primero que vamos a tener que hacer es desinstalar la versión de `youtube-dl` que nos instaló `mpv`. Para eso vamos a correr: ``` sudo apt remove youtube-dl ``` Luego vamos a proceder a descargar el último release de `youtube-dl` e instalarlo de forma manual en `/usr/local/bin`. Todo este proceso lo podemos ejecutar en una sola línea, solo tenemos que copiar y pegar: ``` sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl ``` Finalmente le damos permisos para poder ejecutarlo: ``` sudo chmod a+rx /usr/local/bin/youtube-dl ``` Y ya lo tenemos instalado. Si querés ver otras formas de instalarlo, podés leer la [documentación de youtube-dl](https://ytdl-org.github.io/youtube-dl/download.html). ## Mi maquina no se banca un video en 1080p Como comenté antes, estas funcionalidades de `mpv` nos permiten disfrutar de videos en hardware no muy poderoso, pero por defecto `mpv` descarga el video en la más alta resolución que encuentra arruinándonos todos los planes. Obviamente podemos cambiar esto, diciéndole a `youtube-dl` que descargue una versión del video en menor resolución. Por ejemplo, si queremos reproducir el video en no más de 480p, podemos ejecutar `mpv` con la siguiente opción: ``` mpv --ytdl-format="bestvideo[height<=480]+bestaudio" https://www.youtube.com/watch?v=WhWc3b3KhnY ``` Como es cantando que no nos vamos a acordar de escribir todo eso cada vez que queremos reproducir un video, podemos agregarlo al archivo de configuración de `mpv` y nos olvidamos. Además, si hacemos esto vamos a poder ver en 480p aquellos videos que los reproduzcamos _arrastrando_ la url a la ventana de `mpv`. Para eso vamos a editar el archivo `~/.config/mpv/config`. Si no existe, vamos a crearlo y luego agregarle la siguiente línea: ``` ytdl-format="bestvideo[height<=480]+bestaudio" ``` Una vez que guardemos el archivo, vamos a poder disfrutar cualquier video de la web en nuestro hardware para nada obsoleto. ## Buscar videos de YouTube desde la terminal De yapa les dejo el enlace a [`ytfzf`](https://github.com/pystardust/ytfzf), un script que nos permite buscar videos en YouTube desde la terminal y reproducirlos desde `mpv` sin necesidad de abrir el navegador. En Arch y derivadas podemos instalarlo desde AUR: ``` yay -S ytfzf ``` Mientras que en Debian y Ubuntu lo vamos a descargar a mano e instalar algunas dependencias: ``` sudo apt install jq fzf curl -sL "https://raw.githubusercontent.com/pystardust/ytfzf/master/ytfzf" | sudo tee /usr/bin/ytfzf >/dev/null && sudo chmod 755 /usr/bin/ytfzf ``` ## Update del 2021-09-25 El compañero ~crazyjane estuvo experimentando con [AntiX](https://antixlinux.com) corriendo en una Asus EEE PC del 2008, siguiendo este tutorial para poder ver vídeos de Twitch. Durante esa experiencia nos topamos con que la opción `"bestvideo[height<=480]+bestaudio"` no estaba funcionando. Con la que sí podíamos ver el video en 480 era sencillamente con `"best[height<=480]"`. En conclusión, si tenés problema con los comandos de este tutorial, probá correr `mpv` de la siguiente forma: ``` mpv --ytdl-format="best[height<=480]" https://www.youtube.com/watch?v=WhWc3b3KhnY ``` O bien, configurá el archivo `~/.config/mpv/config` con la siguiente línea: ``` ytdl-format="best[height<=480]" ``` > Si quieren leer el review que escribió ~crazyjane sobre AntiX corriendo en la > Asus EEE PC, pueden encontrarlo en su gopher o bien en la > [entrada del foro de cybercirujas](https://cybercirujas.rebelion.digital/foro/viewtopic.php?f=7&t=107&sid=34ba722a320131687d73225f3f33ca9e) ## Comentarios Si encontraste algún error, creés que se puede mejorar algo del texto o que vale la pena agregar algo, no dudes en escribirme a santisoler arroba texto-plano.xyz