Carga retrasada de youtube

De vez en cuando me ponía algún sketch del espacio que Stephen Fry y Hugh Laurie tenían en la televisión inglesa, A bit of Fry and Laurie, pero el otro día y en vista del inminente desembarco PP-deportivo-orgullo-nacional en RTVE me puse a descargar una generosa lista de vídeos para visionarlos tranquilamente en TV. La verdad es que nos estuvimos riendo como hacía tiempo que no lo haciamos con el humor ácido y a ratos surrealista esta pareja de cómicos, tanto que me puse a a terminar de descargar los casi 180 vídeos que youtube dice que hay de “Fry Laurie Subtitulado“.
A continuación un método para descargar cómodamente los 180 vídeos de youtube (o cualquier otro listado de vídeos) en formato mp4 (o flv si no está disponible)>/p>

Descargador: youtube-dl

Youtube-dl es un script en python que al pasarle una url de youtube descarga el archivo de vídeo de más calidad disponible. Tiene muchas opciones, la única que suelo usar es -l (usar el título como nombre de archivo). Asi es que descargamos la aplicación youtube-dl se instala (no tiene ni instalador, simplemente guardar, copiar a ~/bin/youtube-dl.py y hacer ejecutable chmod +x ~/bin/youtube-dl.py).
A continuación, para ahorrarme trabajo (esto es más por capricho que otra cosa) hago un alias que acorte la orden:
echo "alias youtube='youtube-dl.py -l'" >> ~/.alias

Para descargar un archivo de youtube bastaría con abrir una consola, escribir youtube y arrastrar a continuación la url desde el navegador. Así, la linea youtube https://www.youtube.com/watch?v=fasVKdGNzrU&feature=youtube_gdata daría:
[youtube] Setting language
[youtube] fasVKdGNzrU: Downloading video webpage
[youtube] fasVKdGNzrU: Downloading video info webpage
[youtube] fasVKdGNzrU: Extracting video information
[download] Destination: A Bit of Fry and Laurie - Entrenador de futbol (subtitulado)-fasVKdGNzrU.flv
[download] 100.0% of 8.75M at 78.63k/s ETA 00:00

Lista de urls

Ahora ya solo necesitamos la lista de archivos a descargar que la podemos obtener usando la API de Youtube. Para ello he preparado un sencillo HTML: publicar/youtube.html

Navegador de youtubeNavegador de youtube

Desde esta página podemos hacer búsquedas (click sobre el título), navegar (abajo, siguiente página y página anterior ) y visualizar (click sobre el thumbnail). Al pie se listan las urls dentro un textarea.

Youtube limita a 50 el número de resultados por página, asi es que iremos navegando con el html hacia adelante, recolectando las url y pegandolas en un archivo de texto TXT.
Una vez toda la lista completa, procedemos a descargarla haciendo en una consolawhile read linea; do youtube "$linea"; done < lista.txt

Se podría acelerar descargando 3,4,...10 vídeos al mismo tiempo, pero bueno, se va a descargar durante la noche, lo mismo me dá la velocidad a que lo haga.