- Article sur une méthode pour contourner la limitation de la vitesse de téléchargement des vidéos sur YouTube
- YouTube génère des revenus à partir des vues publicitaires et met en place des mesures de restriction pour empêcher le visionnage ou le téléchargement des vidéos via des clients non officiels
- La première étape du contournement consiste à communiquer avec l'API YouTube afin de trouver l'URL réelle contenant le fichier vidéo
- YouTube utilise un paramètre spécifique appelé
n dans la plupart des URL de fichiers, qui doit être transformé à l'aide d'un algorithme JavaScript situé dans le fichier base.js. Ce paramètre sert de défi pour vérifier si le téléchargement a été initié depuis un client « officiel »
- Comme l'algorithme JavaScript est obfusqué et change fréquemment, tenter de le comprendre par rétro-ingénierie est peu réaliste. La solution consiste à télécharger le fichier JavaScript, à extraire le code de l'algorithme, puis à l'exécuter en lui passant le paramètre
n
- YouTube applique toujours des règles variables de limitation de vitesse de téléchargement basées sur la taille et la durée de la vidéo. Pour contourner cette limitation, le téléchargement peut être découpé en plusieurs petites parties à l'aide de l'en-tête HTTP Range
- YouTube distribue les canaux vidéo et audio dans deux fichiers séparés. La dernière étape consiste à fusionner ces deux flux en un seul fichier, ce qui peut être fait avec
ffmpeg
- De nombreux projets utilisent actuellement ces techniques pour contourner les restrictions mises en place afin d'empêcher le téléchargement de vidéos YouTube. Le plus populaire est
yt-dlp (un fork de youtube-dl) programmé en Python, mais il inclut son propre interpréteur JavaScript personnalisé pour transformer le paramètre n
- L'article explique le processus et fournit des extraits de code, ce qui le rend accessible aux ingénieurs logiciel débutants
1 commentaires
Discussion Hacker News