; Vince y el mundo del software: youtube
Mostrando entradas con la etiqueta youtube. Mostrar todas las entradas
Mostrando entradas con la etiqueta youtube. Mostrar todas las entradas

sábado, 21 de diciembre de 2013

Descargar videos de edx y más

Alerta: El script de edx-downloader ha sido actualizado y no es compatible con la versión mostrada acá, por lo que la versión de acá no funciona ahora. Este post tiene sólo fines históricos. No me he dado el tiempo de modificar el script nuevo, y nada presagia que lo haga, al menos en el futuro cercano.

Hola, dejé botado este blog un tiempo, y es que no había mucho que contar. Pero acá estoy de vuelta.
El tema de ahora es simple: Resulta que soy un ávido seguidor de los moocs (Cuando me queda tiempo libre), dígase coursera, udacity, edx, y en español, miríadax.
En Coursera se puede descargar el material fácilmente, lo cual me sirve para verlo en mi tablet mientras viajo, o cuando no tengo internet o lo estoy usando para otra cosa. Sin embargo, el resto de páginas no tiene una forma fácil de descargar el material, al menos no a simple vista. Eso hasta que me encontré con el edx-dl.py, un script en python para descargar vídeos con sus subtitulos respectivos, de los cursos que uno está inscrito, y las semanas que uno escoga (Poniéndole números consecutivos de dos dígitos). Dejo el script en Este Link, y como respaldo, Acá también en pastebin; aunque recomiendo usar el link original para darle más descargas al autor. Para descargarlo de la web del autor deben hacer un clone al git del autor, para ello, pon en la consola (en linux):
git clone https://github.com/shk3/edx-downloader.git
Debes tener instalado git.
El script es muy bueno, pero le encontré cosas que no me gustaron:
Cuando uno está descargando, y de repente falla, se apaga el pc, se corta la conexión, etc, hay que empezar de nuevo el script, poniendo el usuario, contraseña, y esperar que cargue toda la información (si son muchas lecciones puede tardar varios minutos). Claro que los vídeos y subtítulos descargados no los descarga nuevamente, pero sí que los revisa uno por uno (al igual que mi script).
¿Mi solución? Pues estuve metiéndole mano al script y logré lo siguiente:
-Un script para descargar los subtítulos solamente, ya sea de youtube como de edx, con los números consecutivos de 3 dígitos. Además muestra en consola todos los links de youtube.
-Otro script que toma un archivo con los links de youtube y los descarga con las opciones que uno le especifique, y con los correspondientes números consecutivos de 3 dígitos.
Dejo En Este Link el script para los subtitulos con los números consecutivos.
Y En Este Otro Link el otro script para descargar de youtube los videos con los números consecutivos.
Para ejecutar cualquiera, deben tipear en la consola:
python "nombre del script"
En "nombre del script" basta arrastrar el script si es que usan un emulador de consola que permita el drag and drop.
Espero les sirva, saludos!

jueves, 2 de mayo de 2013

Descargar fácilmente una lista de reproducción de youtube

¿No les ha pasado que quieres guardar una lista de reproducción para verla más tarde? Personalmente me gusta descargar videotutoriales para luego verlos en el tiempo libre o mientras viajo, por lo que necesito tenerlos descargados (rara vez tienen internet en el bus).
Para ello en Linux (y windows) hay una forma muy sencilla de hacerlo en la línea de comandos. Esto hace que sólo basta un comando para tener la lista de youtube descargada íntegramente -no sólo sirve con listas de reproducción, sino también con videos.
El comando en cuestión es:
youtube-dl
Lo instalan desde su repo favorito, o para usuarios de windows lo descargan de su página:
http://rg3.github.io/youtube-dl/download.html
Recuerda que en cualquier caso hay que tener el intérprete de Python compatible. Simplemente van a la página de python y descargan el que sea compatible según lo que dice la página de youtube-dl.
Acá la página de Python

Acá la explicación de cómo se usa:
youtube-dl OPCIONES <url>
Y las opciones más usadas son:

-f FMT
donde "FMT" es el formato que queremos descargar, una pequeña lista sería (sacada de manpages.ubuntu.com):
WebM video at 480p: 43
WebM video at 720p: 45 
H264 video in MP4 container at 480p: 18 
H264 video in MP4 container at 720p: 22 
H264 video in MP4 container at 1080p: 37 
H264 video in FLV container at 360p: 34 
H264 video in FLV container at 480p: 35 
H263 video at 240p: 5
3GP video: 17

Nota importante: en caso que no esté el formato requerido, el programa parará y no seguirá descargando; al contrario de la opción --max-quality

-t
esto es para que el título del video quede en el nombre del archivo descagado.

--max-quality webm
--max-quality mp4
Si quieres descargar en la resolución máxima simplemente, pones uno de estos dos (según el formato que prefieras) y listo.
Nota importante: esta opción te descargará SIEMPRE en la mejor calidad, y en caso que no esté el archivo de mayor calidad en el formato puesto, lo descargará en el otro formato.

--playlist-start=N
Donde empieza a descargar los videos. Si no lo pones empieza del primero (el 1).

--playlist-end=N
Donde termina de descargar los videos, si no lo pones termina en el último (el -1)

-R R
Donde R es el número de reintentos para descargar un video

-r L
Donde L es la velocidad máxima, va con sufijo de la unidad por ejemplo: 50k o 2m

-u UN
Donde UN es tu nombre de usuario
-p PW
Donde PW es tu contraseña, útil si es un video con restricción de edad o cosas así.

Personalmente lo uso algo así:
$ youtube-dl -f 45 -t http://www.youtube.com/playlist?list=PLfHn....

Fuente y para más información (en inglés), acá.