6 ポイント 投稿者 GN⁺ 2023-08-15 | 1件のコメント | WhatsAppで共有
  • 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-dlpyoutube-dl のフォーク)だが、これは n パラメータを変換するための独自のカスタムJavaScriptインタープリタを含んでいる
  • 記事ではこのプロセスを説明し、コードスニペットも提供しており、初級ソフトウェアエンジニアでも取り組みやすい内容になっている

1件のコメント

 
GN⁺ 2023-08-15
Hacker Newsの意見
  • YouTubeの動画ダウンロード制限を回避する方法に関する記事: HTTP Rangeヘッダーを使ってダウンロードを小さな部分に分割
  • HTTP Rangeヘッダー: リクエストのたびに、ダウンロードしたいファイルのどの部分かを指定できる
  • 一部のユーザー: 範囲クエリパラメータを追加することで制限を回避し、転送速度を回復できる
  • YouTubeの制限解除の報告: 一部のユーザーはいまだに制限の問題を経験している
  • YouTubeの小さな変更: プラットフォームでMP4ファイルをダウンロードしなければならないツールに問題を引き起こす
  • 一部ユーザーが動画品質の違いを発見: YouTubeが圧縮アーティファクトを滑らかにする微妙なフィルターを適用している可能性を示唆
  • YouTubeの動画配信: インターネット接続が悪い地域でもその滑らかさが評価されている
  • YouTubeの制限回避に関する倫理的含意についての議論: 通常のブラウザ速度を最適化するのは妥当だと主張する人もいれば、YouTubeのリソースをより多く使うのは不公平だと感じる人もいる
  • 記事で言及されたyt-dlp: youtube-dlのPythonベースのフォークで、パラメータ変換のためのカスタムJavaScriptインタープリターを含む