発生日:2025年11月12日。
Yt-dlpでYouTubeからダウンロードする際、完全なサポートを得るには外部JavaScriptランタイムが必要になり、メンテナーが以前発表していた変更が正式に実施された。このランタイムがなくても一部の動作は引き続き可能だが、プロジェクトはその利用経路を非推奨に分類しており、利用可能なメディア形式が今後ますます制限されると見込んでいる。
Denoが推奨ランタイムであり、デフォルトで有効化されている唯一の選択肢だ。Yt-dlpはNode.js、QuickJS、Bunにも対応しているが、セキュリティ上の理由から、これらは当初無効になっている。別のランタイムを選ぶユーザーは明示的に設定する必要がある。プロジェクトは、セットアップとセキュリティーの詳細について、外部JavaScriptに関する文書を参照するよう案内している。
2つ目のコンポーネントであるyt-dlp-ejsは、yt-dlpを選択したランタイムに接続する。公式のyt-dlp実行ファイルにはすでにこれが含まれている。yt-dlp[default]と表記される標準のオプション依存関係セットを使ってインストールまたは更新するPythonユーザーにも、このコンポーネントが提供される。ほかのインストール方法では別のパッケージが必要になる場合があるため、動作はダウンローダーをどのように入手したかによって異なる。
JavaScriptを実行できなくても、状況によってはYouTubeからのダウンロードが成功する場合がある。選択できる形式は大幅に減る可能性があり、特にログイン済みのユーザーで顕著となる。メンテナーは、今後利用可能性が低下してもソフトウェアの不具合ではなく、予期された結果として扱うと述べ、ランタイムなしでは最終的にyt-dlpを通じてYouTubeを利用できなくなる可能性があると予測した。
パッケージングの変更は、下流の配布者にライセンス上の影響をもたらす。yt-dlpのメインリポジトリ、ソースアーカイブ、Pythonディストリビューションは引き続きThe Unlicenseの下に置かれる。yt-dlp-ejsのビルド版にはISCおよびMITの条件が適用されるコードが含まれており、このため同コンポーネントは別個のリポジトリとPythonパッケージに置かれている。yt-dlpをPythonソフトウェアとしてパッケージ化するディストリビューションには、yt-dlp-ejsを別にパッケージ化することが推奨されている。
互換性は意図的に厳格に設定されている。yt-dlpの各リリースは、特定の1つのyt-dlp-ejsバージョンを指定し、それ以外を拒否する。メンテナーは、パッケージ作成者に対し、その組み合わせをpyproject.tomlで確認するよう助言している。zipimportバイナリーを提供するプロジェクトは、ビルド時に該当するパッケージファイルを見つけられることを条件に、yt-dlp-extraという名前のmakeターゲットを使って、必要なコンポーネントを含む実行ファイルを作成できる。
ランタイムがない状態でのYouTube利用は非推奨となったものの、ディストリビューションの水準ではランタイムパッケージをオプションの依存関係として維持すべきだ。JavaScriptの仕組みが当初適用されるのはYouTubeだけだが、メンテナーは今後、ほかのサイトにも用途が拡大する可能性があると述べた。
公式バイナリーのユーザーについては、移行に必要なものの多くがすでに同梱されており、外部で必要となる主な手順はDenoのインストールだ。インテグレーターとLinuxディストリビューションのメンテナーは、バージョンの対応関係、ライセンスの分離、安全なランタイムのデフォルト設定を維持すると同時に、ランタイムを使わない従来のYouTube利用経路で完全なサポートが得られるとの誤解を避けなければならないため、より多くの選択を迫られる。
この違いは、自動化された展開と再現可能なパッケージビルドにとって特に重要だ。



