Escribí un bookmarklet para descargar videos con youtube-dl en NoCap Shows
Publicado el Martes, 8 de junio de 2021Estos últimos tiempos he empezado a comprar entradas a conciertos virtuales. Obviamente la experiencia no es la misma, y de lo que más extraño de la vida antes de la pandemia era poder ir a ver a mis bandas favoritas en un recital. Pero por lo menos gracias a la tecnología tenemos la oportunidad de ver a nuestras artistas preferidas tocando música "en vivo" a pesar de la falta de conciertos en persona.
Recientemente se publicó la segunda temporada de una serie de conciertos de la mejor banda del universo donde recorren sus más de 40 años de trayectoria a través de las distintas décadas. Si bien está muy bueno poder estar frente al televisor en el momento "en vivo" en que se liberan los shows, hay veces que no podemos verlo en ese momento o queremos tenerlo guardado para verlo después. Además si pagamos por ver un video, deberíamos tener derecho a descargarlo, tener un respaldo para cuando el servicio online desaparezca o decida quitarnos el acceso, o no tengamos conexión a internet y queramos verlo.
Los videos de Bad Religion que comento están siendo publicados en NoCap Shows. Al pagar la "entrada", nos dan un código de acceso que nos permite ir viendo a medida que van publicando los videos todos los sábados. Por suerte, con youtube-dl
podemos descargarlos, sólo necesitamos algo de información de la página donde lo estamos mirando. El sistema usa Vimeo, y el video es un iframe embebido con un id. Si inspeccionamos la página con nuestro navegador, vamos a ver que en src
del iframe está el ID del video en Vimeo. Usando ese id y la página donde estamos viendo el video como referido, podemos descargarlo con:
youtube-dl --add-header Referer:"$URL" https://player.vimeo.com/video/$VIDEO_ID
Como soy programador, y perezoso, me programé un script en JavaScript para generar este comando automáticamente cada vez que estoy mirando uno de estos videos. Al momento de escribir esto, el script es bastante sencillo:
// Obtiene el id de video del iframe var frame = document.getElementsByTagName('iframe'); var url = frame[0].src re = /video\/([0-9]+)/ video_id = re.exec(url)[1] // Obtiene la URL de referer: url = window.location.href // Crea un elemento para setearle el texto, copiarlo y después eliminarlo de la página var text = document.createElement("input"); ytdl_command = `youtube-dl --add-header Referer:"${url}" https://player.vimeo.com/video/${video_id}` text.value = ytdl_command document.body.appendChild(text) text.focus() text.select() document.execCommand('copy') document.body.removeChild(text) console.log(ytdl_command) |
Para tenerlo a mano, lo publiqué como un Bookmarklet en GitHub Pages: picandocodigo.github.io/nocap-downloader. Para usarlo, tengo que entrar a ese sitio, arrastrar el enlace a mi barra de bookmarks (o favoritos) y listo. Al estar mirando un video en NoCap, al hacer clic en el bookmarklet se va a copiar al portapapeles (e imprimir en la consola JavaScript) el comando de youtube-dl
que necesito para descargar el video. Lo pego en mi terminal, y lo descargo para agregar a mi colección digital y mirar sin usar ancho de banda las veces que quiera.
El código fuente está disponible en GitHub, publicado bajo GPLv3.
Apoyen a los artistas independientes siempre que puedan 🤘
Aprovecho para comentar que escuchar a tu artista o banda preferida en Spotify está lejos de "apoyarlos". Spotify tiene un modelo de negocios totalmente injusto y la mayoría de los artistas independientes terminan pagando para poder estar en su plataforma y lograr algo de exposición. Bandcamp tiene un modelo de negocios más justo, donde se puede comprar no sólo el material para descarga, muchas veces también ediciones físicas, camisetas y demás artículos de las bandas y artistas. Y bueno, no hay nada mejor que comprarle a los artistas directamente.
No hay comentarios en este post
Feed de comentariosDejar un comentario