vídeos

Descargar videos de Youtube (y otros sitios) desde una terminal

Bueno, vamos con una nueva entrada. Esta vez vamos a ver cómo hacer para bajar videos desde una terminal. Si lo que quremos es bajar los videos de Youtube, lo más cómodo va a ser instalarse “youtube-dl”, asi que como ya es costumbre, Linux nos lo pone fácil. En Debian/Ubuntu será:

$ sudp apt-get install youtube-dl

En caso de que de esta manera no instalemos la última versión porque nuestros repositorios no sean los más actualizados, tendremos que actualizar a mano la versión de youtube-dl

 $ sudo youtube-dl -U

Ahora copiamos la URL del vídeo que nos queramos descargar y la pegamos detrás de la orden :

$ youtube-dl http://www.youtube.com/watch?v=R4rs8FGb86A

(Por cierto, no he visto el video de arriba, pero parece interesante).

Si queremos usar wget, podríamos usar:

$ wget -O output_file.extension $(youtube-dl -g http://www.youtube.com/watch?v=R4rs8FGb86A)

ya que $(  ) usará como variable lo que se obtenga de lo que se ejecute dentro de los paréntesis. La opción -g nos da sólo la url de descarga  video, pero sin bajárselo, entonces lo que hacemos es conseguir la URL del video con youtube-dl y la usamos para  wget.

Alguien podrá decir, “bueno, yo uso dirpy.com para bajarme los videos, que tiene muchas opciones”. Pues youtube-dl también las tiene, solo hay que mirar el su página del man.

Además podríamos crear un fichero de texto plano con todas las URLs de los videos que queramos bajarnos (una por línea), y con un bucle, nos podemos bajar todos. No lo he probado, pero esto debería funcionar:

 $ for i in $(cat urls.txt); do youtube-dl $i; done

Se podría elaborar más y currárselo para que se pueda ir poniendo nombres a los videos a medida que nos lo vamos bajando, si lo combinamos con wget.

¿Qué pasa si lo que queremos no es de youtube, sino de una web cualquiera que requiere login, por ejemplo los  videos de cursos de coursera?

Pues aquí entra en juego el poder de wget. También vamos a necesitar las famosas Cookies en el formato de Netscape:

-Para ello yo he usado Chrome ( o Chromium) y desde la Chrome Web Store instalamos la EXTENSION “cookies.txt export”.

– Vamos a la página en cuestión y nos logeamos con nuestro nombre de usuario y contraseña.

– Vamos a la página donde estén los videos y ahí hacemos uso de la extensión (arriba  a la derecha saldrá el iconito de la extensión cookies.txt).

– Pinchamos sobre ella y nos saldrá una ventanita con información de las cookies para esa página. Copiamos ese texto en un fichero que creemos como cookies.txt . Este será el fichero que usarmeos para wget.

– Ahora necesitmos los links a los videos. A mi se me ocurre que estando en la página de descarga de los videos, presionamos “Ctrl +  U” para obtener el código fuente de la página, lo copiamos a un fichero de texto temp.txt y extraemos los links con grep:

$ grep '.mp4' temp.txt > urls.txt

y lo editamos para que sólo nos quede en cada linea  algo parecido a “https://resto/de_la/direccion/del_video/id=#” ( ¡sin las comilllas! )

$ wget --load-cokies cookies.txt -i urls.txt

Para el nombre de los archivos como ya he dicho antes,  habría que hacer algo un poco mas elaborado, pero seguro que trasteando un poco se puede conseguir.

Pues gracias por leer hasta aquí, y espero que sea útil. Cualquier mejora, comentario,  idea o lo que sea, será censurad….digo bienvenida!