- YouTubeの動画ダウンロード速度制限を回避する方法に関する記事
- YouTubeは広告視聴数から収益を得ており、非公式クライアントで動画を視聴したりダウンロードしたりすることを防ぐために制限措置を講じている
- 速度制限回避の最初のステップは、YouTube APIと通信して動画ファイルを含む実際のURLを見つけること
- YouTubeは多くのファイルURLで
n という特定のパラメータを使用しており、これは base.js ファイル内にあるJavaScriptアルゴリズムで変換する必要がある。このパラメータは、ダウンロードが「公式」クライアントから開始されたかを確認するためのチャレンジとして機能する
- JavaScriptアルゴリズムは難読化されており頻繁に変更されるため、これを理解するためにリバースエンジニアリングを試みるのは現実的ではない。解決策はJavaScriptファイルをダウンロードし、アルゴリズムのコードを抽出して、
n パラメータを渡して実行すること
- YouTubeは依然として、動画のサイズと長さに基づく可変ダウンロード速度制限ルールを適用している。この制限を回避するために、ダウンロードはHTTP
Range ヘッダーを使って複数の小さな部分に分割できる
- YouTubeは映像と音声のチャンネルを2つの別ファイルとして配信している。最後のステップはこの2つのチャンネルを1つのファイルに結合することで、これは
ffmpeg を使って実行できる
- 現在、多くのプロジェクトがYouTubeの動画ダウンロード防止のために設定された制限を回避するため、これらの手法を利用している。最も人気があるのはPythonで書かれた
yt-dlp(youtube-dl のフォーク)だが、これは n パラメータを変換するための独自のカスタムJavaScriptインタープリタを含んでいる
- 記事ではこのプロセスを説明し、コードスニペットも提供しており、初級ソフトウェアエンジニアでも取り組みやすい内容になっている
1件のコメント
Hacker Newsの意見