yt-dlp は、数千のサイトをサポートする機能豊富なコマンドラインのオーディオ/ビデオ ダウンローダーです。このプロジェクトは、現在は非アクティブになっている youtube-dlc をベースにした youtube-dl のフォークです。
設置
詳細な手順
リリースファイル
アップデート
依存関係
コンパイル
使用法とオプション
一般的なオプション
ネットワークオプション
地域制限
ビデオの選択
ダウンロードオプション
ファイルシステムのオプション
サムネイルのオプション
インターネット ショートカット オプション
詳細性とシミュレーションのオプション
回避策
ビデオ形式のオプション
字幕オプション
認証オプション
後処理オプション
スポンサーブロックのオプション
抽出オプション
構成
設定ファイルのエンコーディング
netrcによる認証
環境変数に関する注意事項
出力テンプレート
出力テンプレートの例
フォーマットの選択
フィルタリングフォーマット
並べ替え形式
フォーマット選択例
メタデータの変更
メタデータの変更例
エクストラクターの引数
プラグイン
プラグインのインストール
プラグインの開発
YT-DLP の埋め込み
埋め込みの例
YouTube-DL からの変更点
新機能
デフォルトの動作の違い
非推奨のオプション
貢献する
問題を開く
開発者向けの指示
ウィキ
よくある質問
yt-dlp は、バイナリ、pip、またはサードパーティのパッケージ マネージャーを使用してインストールできます。詳細な手順については wiki を参照してください
ファイル | 説明 |
---|---|
yt-dlp | プラットフォームに依存しない zipimport バイナリ。 Python が必要 ( Linux/BSDに推奨) |
yt-dlp.exe | Windows (Win8+) スタンドアロン x64 バイナリ ( Windowsに推奨) |
yt-dlp_macos | ユニバーサル MacOS (10.15+) スタンドアロン実行可能ファイル ( MacOSに推奨) |
ファイル | 説明 |
---|---|
yt-dlp_x86.exe | Windows (Win8+) スタンドアロン x86 (32 ビット) バイナリ |
yt-dlp_linux | Linux スタンドアロン x64 バイナリ |
yt-dlp_linux_armv7l | Linux スタンドアロン armv7l (32 ビット) バイナリ |
yt-dlp_linux_aarch64 | Linux スタンドアロン aarch64 (64 ビット) バイナリ |
yt-dlp_win.zip | パッケージ化されていない Windows 実行可能ファイル (自動更新なし) |
yt-dlp_macos.zip | パッケージ化されていない MacOS (10.15 以降) 実行可能ファイル (自動更新なし) |
yt-dlp_macos_legacy | MacOS (10.9+) スタンドアロン x64 実行可能ファイル |
ファイル | 説明 |
---|---|
yt-dlp.tar.gz | ソース tarball |
SHA2-512SUMS | GNU スタイルの SHA512 合計 |
SHA2-512SUMS.sig | SHA512 合計の GPG 署名ファイル |
SHA2-256SUMS | GNU スタイルの SHA256 合計 |
SHA2-256SUMS.sig | SHA256 合計の GPG 署名ファイル |
GPG 署名の検証に使用できる公開キーは、ここで入手できます。使用例:
curl -L https://github.com/yt-dlp/yt-dlp/raw/master/public.key | gpg --import gpg --verify SHA2-256SUMS.sig SHA2-256SUMS gpg --verify SHA2-512SUMS.sig SHA2-512SUMS
注: マンページ、シェル補完 (オートコンプリート) ファイルなどは、ソース tarball 内で利用できます。
リリースバイナリを使用している場合は、 yt-dlp -U
使用して更新できます
pip を使用してインストールした場合は、プログラムのインストールに使用したのと同じコマンドを再実行します。
他のサードパーティのパッケージ マネージャーについては、Wiki またはそのドキュメントを参照してください。
現在、バイナリには 3 つのリリース チャネルがあります: stable
、 nightly
、 master
です。
stable
はデフォルトのチャンネルであり、その変更の多くはnightly
チャンネルとmaster
チャンネルのユーザーによってテストされています。
nightly
チャネルでは、プロジェクトの新しいパッチと変更のスナップショットとして、UTC の毎日午前 0 時頃にリリースがビルドされるようにスケジュールされています。 yt-dlp の定期ユーザーにおすすめのチャンネルです。 nightly
リリースは、yt-dlp/yt-dlp-nightly-builds から、またはyt-dlp
PyPI パッケージ (pip の--pre
フラグを使用してインストールできます) の開発リリースとして入手できます。
master
チャネルには、マスター ブランチにプッシュされるたびにビルドされるリリースがあり、これらには最新の修正と追加が含まれますが、リグレッションが発生しやすい可能性もあります。これらは yt-dlp/yt-dlp-master-builds から入手できます。
--update
/ -U
を使用すると、リリース バイナリは現在のチャネルにのみ更新されます。 --update-to CHANNEL
使用すると、新しいバージョンが利用可能なときに別のチャネルに切り替えることができます。 --update-to [CHANNEL@]TAG
使用して、チャネルから特定のタグにアップグレードまたはダウングレードすることもできます。
--update-to
(
) を使用して、まったく別のリポジトリ上のチャネルに更新することもできます。ただし、更新先のリポジトリには注意してください。異なるリポジトリのバイナリについては検証が行われません。
使用例:
yt-dlp --update-to master
master
チャンネルに切り替えて最新リリースに更新します
yt-dlp --update-to [email protected]
stable
タグ2023.07.06
へのリリースへのアップグレード/ダウングレード
yt-dlp --update-to 2023.10.07
現在のチャネルに存在する場合、タグ2023.10.07
にアップグレード/ダウングレードします
yt-dlp --update-to example/[email protected]
example/yt-dlp
リポジトリからのリリースへのアップグレード/ダウングレード、タグ2023.09.24
重要: stable
リリースで問題が発生しているユーザーは、バグ レポートを送信する前に、ナイトリー リリースをインストールするか、 nightly
リリースに更新する必要があります。
# To update to nightly from stable executable/binary: yt-dlp --update-to nightly # To install nightly with pip: python3 -m pip install -U --pre "yt-dlp[default]"
Python バージョン 3.9 以降 (CPython) および 3.10 以降 (PyPy) がサポートされています。他のバージョンおよび実装は、正しく動作する場合と動作しない場合があります。
他の依存関係はすべてオプションですが、 ffmpeg
とffprobe
強くお勧めします。
ffmpegおよびffprobe - 別々のビデオ ファイルとオーディオ ファイルを結合したり、さまざまな後処理タスクに必要です。ライセンスはビルドによって異なります
ffmpeg にはバグがあり、yt-dlp と一緒に使用するとさまざまな問題が発生します。 ffmpeg は非常に重要な依存関係であるため、これらの問題の一部に対するパッチを含むカスタム ビルドを yt-dlp/FFmpeg-Builds で提供しています。これらのビルドによって解決される特定の問題の詳細については、Readme を参照してください。
重要: 必要なのは ffmpegバイナリであり、同じ名前の Python パッケージではありません
certifi * - Mozilla のルート証明書バンドルを提供します。 MPLv2に基づいてライセンスされています
brotli * またはbrotlicffi - Brotli コンテンツ エンコーディングのサポート。どちらも MIT 1 2に基づいてライセンスを取得しています
websockets * - Websocket 経由でダウンロードします。 BSD-3条項に基づいてライセンスされています
リクエスト* - HTTP ライブラリ。 HTTPS プロキシと永続的な接続のサポート。 Apache-2.0に基づいてライセンスされています
以下はブラウザリクエストの偽装をサポートします。これは、TLS フィンガープリントを使用する一部のサイトで必要になる場合があります。
curl_cffi (推奨) -curl-impersonate の Python バインディング。 Chrome、Edge、Safari の偽装ターゲットを提供します。 MITのもとでライセンスを取得
curl-cffi
グループを使用してインストールできます (例: pip install "yt-dlp[default,curl-cffi]"
現在、 yt-dlp.exe
、 yt-dlp_linux
、およびyt-dlp_macos
ビルドに含まれています
mutagen * - 特定の形式の--embed-thumbnail
用。 GPLv2+に基づいてライセンスされています
AtomicParsley - mutagen
/ ffmpeg
ができない場合のmp4
/ m4a
ファイルの--embed-thumbnail
用。 GPLv2+に基づいてライセンスされています
xattr 、 pyxattrまたはsetfattr - MacおよびBSDでの xattr メタデータ ( --xattr
) の書き込み用。それぞれ MIT、LGPL2.1、GPLv2+ に基づいてライセンスを取得
pycryptodomex * - AES-128 HLS ストリームおよびその他のさまざまなデータを復号化します。 BSD-2条項に基づいてライセンスされています
phantomjs - JavaScript を実行する必要があるエクストラクターで使用されます。 BSD-3条項に基づいてライセンスされています
Secretstorage * - Linux上のChromiumベースのブラウザの Cookie を復号化する際に、 Gnomeキーリングにアクセスするための--cookies-from-browser
用。 BSD-3条項に基づいてライセンスされています
--downloader
とともに使用する外部ダウンローダー
avconvおよびavprobe - ffmpeg の代替として非推奨になりました。ライセンスはビルドによって異なります
sponskrub - 現在は非推奨となっているsponskrub オプションを使用します。 GPLv3+に基づいてライセンスされています
rtmpdump - rtmp
ストリームのダウンロード用。代わりに ffmpeg を--downloader ffmpeg
とともに使用できます。 GPLv2+に基づいてライセンスされています
mplayerまたはmpv - rstp
/ mms
ストリームのダウンロード用。代わりに ffmpeg を--downloader ffmpeg
とともに使用できます。 GPLv2+に基づいてライセンスされています
依存関係を使用または再配布するには、それぞれのライセンス条項に同意する必要があります。
スタンドアロン リリース バイナリは、Python インタープリターを使用して構築されており、 *のマークが付いているパッケージが含まれています。
実行しようとしているタスクに必要な依存関係がない場合は、yt-dlp が警告します。現在利用可能な依存関係はすべて--verbose
出力の上部に表示されます。
スタンドアロンの実行可能ファイルをビルドするには、Python とpyinstaller
(さらに必要に応じて yt-dlp のオプションの依存関係) が必要です。実行可能ファイルは、使用される Python と同じ CPU アーキテクチャ向けにビルドされます。
次のコマンドを実行できます。
python3 devscripts/install_deps.py --include pyinstaller python3 devscripts/make_lazy_extractors.py python3 -m bundle.pyinstaller
一部のシステムでは、 python3
代わりにpy
またはpython
使用する必要がある場合があります。
python -m bundle.pyinstaller
--onefile/-F
や--onedir/-D
など、 pyinstaller
に渡すことができる引数をすべて受け入れます。これについては、こちらで詳しく説明します。
注: 4.4 より前のバージョンの Pyinstaller は、仮想環境を使用せずに Windows ストアからインストールされた Python をサポートしていません。
重要: python -m bundle.pyinstaller
を使用する代わりにpyinstaller
を直接実行することは、公式にはサポートされていません。これは正しく動作する場合もあれば、正しく動作しない場合もあります。
ビルド ツールpython
(3.9 以降)、 zip
、 make
(GNU)、 pandoc
*、およびpytest
* が必要です。
これらをインストールしたら、 make
実行するだけです。
代わりにmake yt-dlp
実行して、追加のファイルを更新せずにバイナリのみをコンパイルすることもできます。 ( *の付いたビルド ツールはこれには必要ありません)
devscripts/install_deps.py
- yt-dlp の依存関係をインストールします。
devscripts/update-version.py
- 現在の日付に基づいてバージョン番号を更新します。
devscripts/set-variant.py
- 実行可能ファイルのビルド バリアントを設定します。
devscripts/make_changelog.py
- 短いコミットメッセージを使用してマークダウン変更ログを作成し、 CONTRIBUTORS
ファイルを更新します。
devscripts/make_lazy_extractors.py
- 遅延エクストラクターを作成します。バイナリ (あらゆるバリアント) をビルドする前にこれを実行すると、起動パフォーマンスが向上します。環境変数YTDLP_NO_LAZY_EXTRACTORS
を空でない値に設定して、遅延エクストラクターの読み込みを強制的に無効にします。
注: 詳細については、 --help
help を参照してください。
GitHub でプロジェクトをフォークする場合は、フォークのビルド ワークフローを実行して、選択したバージョンをアーティファクトとして自動的にビルドできます。あるいは、リリース ワークフローを実行するか、夜間ワークフローを有効にして完全な (プレ) リリースを作成することもできます。
yt-dlp [OPTIONS] [--] URL [URL...]
Ctrl+F
あなたの友達です :D
-h, --help Print this help text and exit --version Print program version and exit -U, --update Update this program to the latest version --no-update Do not check for updates (default) --update-to [CHANNEL]@[TAG] Upgrade/downgrade to a specific version. CHANNEL can be a repository as well. CHANNEL and TAG default to "stable" and "latest" respectively if omitted; See "UPDATE" for details. Supported channels: stable, nightly, master -i, --ignore-errors Ignore download and postprocessing errors. The download will be considered successful even if the postprocessing fails --no-abort-on-error Continue with next video on download errors; e.g. to skip unavailable videos in a playlist (default) --abort-on-error Abort downloading of further videos if an error occurs (Alias: --no-ignore-errors) --dump-user-agent Display the current user-agent and exit --list-extractors List all supported extractors and exit --extractor-descriptions Output descriptions of all supported extractors and exit --use-extractors NAMES Extractor names to use separated by commas. You can also use regexes, "all", "default" and "end" (end URL matching); e.g. --ies "holodex.*,end,youtube". Prefix the name with a "-" to exclude it, e.g. --ies default,-generic. Use --list-extractors for a list of extractor names. (Alias: --ies) --default-search PREFIX Use this prefix for unqualified URLs. E.g. "gvsearch2:python" downloads two videos from google videos for the search term "python". Use the value "auto" to let yt-dlp guess ("auto_warning" to emit a warning when guessing). "error" just throws an error. The default value "fixup_error" repairs broken URLs, but emits an error if this is not possible instead of searching --ignore-config Don't load any more configuration files except those given to --config-locations. For backward compatibility, if this option is found inside the system configuration file, the user configuration is not loaded. (Alias: --no-config) --no-config-locations Do not load any custom configuration files (default). When given inside a configuration file, ignore all previous --config-locations defined in the current file --config-locations PATH Location of the main configuration file; either the path to the config or its containing directory ("-" for stdin). Can be used multiple times and inside other configuration files --plugin-dirs PATH Path to an additional directory to search for plugins. This option can be used multiple times to add multiple directories. Note that this currently only works for extractor plugins; postprocessor plugins can only be loaded from the default plugin directories --flat-playlist Do not extract the videos of a playlist, only list them --no-flat-playlist Fully extract the videos of a playlist (default) --live-from-start Download livestreams from the start. Currently only supported for YouTube (Experimental) --no-live-from-start Download livestreams from the current time (default) --wait-for-video MIN[-MAX] Wait for scheduled streams to become available. Pass the minimum number of seconds (or range) to wait between retries --no-wait-for-video Do not wait for scheduled streams (default) --mark-watched Mark videos watched (even with --simulate) --no-mark-watched Do not mark videos watched (default) --color [STREAM:]POLICY Whether to emit color codes in output, optionally prefixed by the STREAM (stdout or stderr) to apply the setting to. Can be one of "always", "auto" (default), "never", or "no_color" (use non color terminal sequences). Use "auto-tty" or "no_color-tty" to decide based on terminal support only. Can be used multiple times --compat-options OPTS Options that can help keep compatibility with youtube-dl or youtube-dlc configurations by reverting some of the changes made in yt-dlp. See "Differences in default behavior" for details --alias ALIASES OPTIONS Create aliases for an option string. Unless an alias starts with a dash "-", it is prefixed with "--". Arguments are parsed according to the Python string formatting mini-language. E.g. --alias get-audio,-X "-S=aext:{0},abr -x --audio-format {0}" creates options "--get-audio" and "-X" that takes an argument (ARG0) and expands to "-S=aext:ARG0,abr -x --audio-format ARG0". All defined aliases are listed in the --help output. Alias options can trigger more aliases; so be careful to avoid defining recursive options. As a safety measure, each alias may be triggered a maximum of 100 times. This option can be used multiple times
--proxy URL Use the specified HTTP/HTTPS/SOCKS proxy. To enable SOCKS proxy, specify a proper scheme, e.g. socks5://user:[email protected]:1080/. Pass in an empty string (--proxy "") for direct connection --socket-timeout SECONDS Time to wait before giving up, in seconds --source-address IP Client-side IP address to bind to --impersonate CLIENT[:OS] Client to impersonate for requests. E.g. chrome, chrome-110, chrome:windows-10. Pass --impersonate="" to impersonate any client. Note that forcing impersonation for all requests may have a detrimental impact on download speed and stability --list-impersonate-targets List available clients to impersonate. -4, --force-ipv4 Make all connections via IPv4 -6, --force-ipv6 Make all connections via IPv6 --enable-file-urls Enable file:// URLs. This is disabled by default for security reasons.
--geo-verification-proxy URL Use this proxy to verify the IP address for some geo-restricted sites. The default proxy specified by --proxy (or none, if the option is not present) is used for the actual downloading --xff VALUE How to fake X-Forwarded-For HTTP header to try bypassing geographic restriction. One of "default" (only when known to be useful), "never", an IP block in CIDR notation, or a two-letter ISO 3166-2 country code
-I, --playlist-items ITEM_SPEC Comma separated playlist_index of the items to download. You can specify a range using "[START]:[STOP][:STEP]". For backward compatibility, START-STOP is also supported. Use negative indices to count from the right and negative STEP to download in reverse order. E.g. "-I 1:3,7,-5::2" used on a playlist of size 15 will download the items at index 1,2,3,7,11,13,15 --min-filesize SIZE Abort download if filesize is smaller than SIZE, e.g. 50k or 44.6M --max-filesize SIZE Abort download if filesize is larger than SIZE, e.g. 50k or 44.6M --date DATE Download only videos uploaded on this date. The date can be "YYYYMMDD" or in the format [now|today|yesterday][-N[day|week|month|year]]. E.g. "--date today-2weeks" downloads only videos uploaded on the same day two weeks ago --datebefore DATE Download only videos uploaded on or before this date. The date formats accepted are the same as --date --dateafter DATE Download only videos uploaded on or after this date. The date formats accepted are the same as --date --match-filters FILTER Generic video filter. Any "OUTPUT TEMPLATE" field can be compared with a number or a string using the operators defined in "Filtering Formats". You can also simply specify a field to match if the field is present, use "!field" to check if the field is not present, and "&" to check multiple conditions. Use a "" to escape "&" or quotes if needed. If used multiple times, the filter matches if at least one of the conditions is met. E.g. --match-filters !is_live --match-filters "like_count>?100 & description~='(?i)bcats & dogsb'" matches only videos that are not live OR those that have a like count more than 100 (or the like field is not available) and also has a description that contains the phrase "cats & dogs" (caseless). Use "--match-filters -" to interactively ask whether to download each video --no-match-filters Do not use any --match-filters (default) --break-match-filters FILTER Same as "--match-filters" but stops the download process when a video is rejected --no-break-match-filters Do not use any --break-match-filters (default) --no-playlist Download only the video, if the URL refers to a video and a playlist --yes-playlist Download the playlist, if the URL refers to a video and a playlist --age-limit YEARS Download only videos suitable for the given age --download-archive FILE Download only videos not listed in the archive file. Record the IDs of all downloaded videos in it --no-download-archive Do not use archive file (default) --max-downloads NUMBER Abort after downloading NUMBER files --break-on-existing Stop the download process when encountering a file that is in the archive --no-break-on-existing Do not stop the download process when encountering a file that is in the archive (default) --break-per-input Alters --max-downloads, --break-on-existing, --break-match-filters, and autonumber to reset per input URL --no-break-per-input --break-on-existing and similar options terminates the entire download queue --skip-playlist-after-errors N Number of allowed failures until the rest of the playlist is skipped
-N, --concurrent-fragments N Number of fragments of a dash/hlsnative video that should be downloaded concurrently (default is 1) -r,&n