- Un artículo sobre cómo eludir la limitación de velocidad de descarga de videos de YouTube
- YouTube monetiza a partir de las visualizaciones de anuncios y aplica medidas de restricción para impedir ver o descargar videos desde clientes no oficiales
- El primer paso para eludir la limitación de velocidad de descarga es comunicarse con la API de YouTube para encontrar la URL real que contiene el archivo de video
- YouTube usa un parámetro específico llamado
n en la mayoría de las URL de archivo, y este debe transformarse usando un algoritmo de JavaScript ubicado en el archivo base.js. Este parámetro funciona como un desafío para verificar si la descarga fue iniciada desde un cliente "oficial"
- Como el algoritmo de JavaScript está ofuscado y cambia con frecuencia, intentar hacer ingeniería inversa para entenderlo no es realista. La solución es descargar el archivo JavaScript, extraer el código del algoritmo y ejecutarlo pasándole el parámetro
n
- YouTube sigue aplicando reglas variables de limitación de velocidad de descarga basadas en el tamaño y la duración del video. Para eludir esta limitación, la descarga puede dividirse en varias partes pequeñas usando el encabezado HTTP Range
- YouTube distribuye los canales de video y audio en dos archivos separados. El último paso es combinar ambos canales en un solo archivo, lo cual puede hacerse con
ffmpeg
- Actualmente muchos proyectos usan estas técnicas para eludir las restricciones configuradas para impedir la descarga de videos de YouTube. El más popular es
yt-dlp (un fork de youtube-dl) programado en Python, aunque este incluye su propio intérprete personalizado de JavaScript para transformar el parámetro n
- El artículo explica el proceso y proporciona fragmentos de código, haciéndolo accesible para ingenieros de software principiantes
1 comentarios
Opiniones de Hacker News
yt-dlpmencionado en el artículo: un fork basado en Python deyoutube-dl, que incluye un intérprete personalizado de JavaScript para transformar parámetros