Down, mi script de descarga de audio de YouTube con la máxima calidad posible

Publicado por el jueves 24 de octubre de 2013 en La web, lossless, Música, Software, Software libre, Útil | 0 comentarios


youtube-dl

Historial del artículo

2015-04-08

En vistas de que es el artículo de mi blog con más visitas explico lo último que he observé.

Para gente atrevida (depende la configuración de mi ordenador) incorporo mi script que automatiza lo que describo en este artículo.

Supongo que por el surgimiento del servicio de YouTube de pago que elimina la publicidad y creo tiene algún contenido exclusivo, la calidad ha vuelto a aumentar, pero para la versión gratuita también, con hasta los 256 kbps del audio independiente AAC. La utilidad youtube-dl sigue funcionando perfectamente con la versión gratuita y probablemente la de pago.

Google, al igual que Apple, está ya haciendo pasar a la historia el veterano plugin de los navegadores web Adobe Flash, para adoptar el estándar recientemente aprobado oficialmente HTML5. El navegador web Google Chrome hace tiempo que es capaz de mostrar todas las calidades que ofrece YouTube. Naturalmente, YouTube pertenece a Google. No así Mozilla Firefox, que necesita Flash para mostrar las resoluciones más altas que emplean el formato de audio y video separado, DASH, 1080px, por ejemplo. Leí que la próxima versión lo solucionará.

2013-12-10:

Hoy YouTube ha dejado de ofrecer el fichero de audio independiente AAC. El de máxima calidad ahora mismo es OGG Vorbis a 192 Kbps dentro del contenedor WebM. A igualdad de bitrate, según veo tras una búsqueda rápida, parece que OGG es inferior a AAC (aun así es mejor que MP3), lo que unido a la bajada de cantidad de información transmitida por segundo habría bajado la calidad del sonido considerablemente en el fichero de audio independiente (siempre suponiendo que seas capaz de apreciarlo).

Se da ahora la curiosa situación de que si quieres descargarte un vídeo en 1080p con la más alta calidad de sonido deberás descargarte el que es solo vídeo en 1080 y el vídeo completo a 720p con audio incluido para extraerle el audio que se encuentra en AAC 192 Kbps y encasquetárselo al 1080 (con el comando del final de este artículo). La extracción del audio se hace con el kit de utilidades FFMPEG:

avconv -i video_con_audio -vn -acodec copy audio.aac

Aunque es posible que YouTube internamente esté usando más calidad de audio al reproducir FullHD y youtube-dl no esté aun actualizado.

Cuando acabe este culebrón ordenaré todos los pasos xD.

Nota: Ahora incluye la manera de unir los streams de audio y vídeo para obtener un solo fichero de 1080px.

Explicación

Desde hace algún tiempo YouTube ha cambiado la forma de almacenar. Antes cada vídeo se encontraba en los discos duros de Google en un fichero por resolución (240, 360, 480, 720, 1080 o más píxeles de alto, sin entrar en las diferentes variantes de visión 3D) y, a su vez, en cuatro formatos diferentes, los propietarios 3GP, FLV y MPEG4 con audio AAC, y el nuevo de especificación liberada por Google, WebM con audio OGG Vorbis. Ahora, además, para ahorrar espacio en disco, ancho de banda (transferencia de información) y adaptarse mejor al ancho de banda disponible del "espectador", las aplicaciones de YouTube tienen la posibilidad de descargar el vídeo y el audio por separado mediante el sistema MPEG DASH. Este formato también es culpable de que los vídeos ya no se precarguen enteros, aunque se puede solucionar. Supongo que Google tiene pensado eliminar progresivamente los formatos antiguos de sus data centers. Arriba tenéis la captura de un vídeo en el que la utilidad libre youtube-dl (escrita en lenguaje Python, así que se puede usar en Windows, GNU/Linux, Android, MacOS y más seguramente) muestra todos los ficheros que lo componen. Mediante el siguiente comando se descargaría el formato número 141 (primera columna), correspondiente a un fichero MP4 con audio AAC en su interior a 256 kbps de bitrate, bastante más calidad de sonido que anteriormente:

youtube-dl --output="%(title)s [youtu.be-%(id)s].%(ext)s" --format 141 http://www.youtube.com/watch?v=9Tg_zvDg3Xo

Cambiando el 141 por 172 descargaríamos un WebM con audio OGG Vorbis en su interior a 192 kbps, aunque la descripción pone 256. Este sistema tiene la ventaja adicional de que al no tener que descargar el vídeo, solamente el audio, tarda mucho menos, apenas unos segundos, pero como ya digo a la máxima calidad posible, mucho mejor que servicios que existen vía web, como MP3ify o PwnYoutube, que son cómodos, pero no usan el formato DASH y además te rebajan el bitrate para ahorrarse ancho de banda. El parámetro –output="%(title)s [youtu.be-%(id)s].%(ext)s" no es realmente necesario, lo utilizo para que el nombre del fichero que descarga quede de esta forma:

Pet Shop Boys - Thursday ft. Example [youtu.be-9Tg_zvDg3Xo].ogg

Si os fijáis, el vídeo con mejor calidad (1080 píxeles) ya no está disponible como un solo fichero, si lo quieres descargar tiene que ser cada "stream" por separado para luego en tu ordenador unirlo con alguna aplicación. Con el comando MP4Box no se hace una conversión (que probablemente tendría menos calidad de imagen y sonido), sino que simplemente "une" los ficheros:

MP4Box -new -add "streamaudio256kbps.m4a" -add "streamvideo1080.mp4" "video1080.mp4"

Mi script

Down le añade las siguientes funcionalidades al programa de descarga de ficheros de YouTube (y más servicios) youtube-dl:

  1. Elige automáticamente la calidad óptima, y guarda el audio o vídeo exactamente como YouTube lo tiene almacenado, a diferencia de otros servicios on-line como MP3ify.
  2. Vídeo en alta resolución 1080px o más con audio incluido sin recodificar (ver punto 1).
  3. Guarda el resultado con la metainformación del artista y título de la obra extraída del título del vídeo.
  4. Opción de conversión a MP3.

		

Publica un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *