summaryrefslogtreecommitdiffstats
path: root/_posts/2021-04-15-mpv.md
blob: f72155225e694f3d5bf1b94d936a23ca1f960152 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
---
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
Un proyecto texto-plano.xyz