本文へスキップ
yt-dlp

Twitch 用 yt-dlp コマンドジェネレーター

Twitch の VOD・クリップ・ライブ配信向けに yt-dlp コマンドを組み立てます。長時間の録画が破綻しないためのオプションも付けます。

任意です。空のままにするとコマンドは URL で終わるので、あとから自分で埋められます。

あなたのコマンド

yt-dlp --merge-output-format mp4 -o '%(uploader)s - %(title)s.%(ext)s' -N 4 --live-from-start https://www.twitch.tv/videos/1234567890
基本

音声のみを選ぶと音声トラックを取り出し、映像は捨てます。

動画と画質

高さの上限を決めます。yt-dlp はその上限以下で最良のストリームを選びます。

分かれている映像と音声のストリームを結合して入れるファイル形式です。

詳細オプション(3)

画質のプルダウンを上書きします。format の書き方をすでに知っている人向けです。

再エンコードせず入れ直すだけです。速く、劣化もありません。

映像を再エンコードします。遅く、劣化もします —— remux で足りないときだけ使ってください。

音声

音声を変換する先のファイル形式です。

VBR はサイズと品質の比がいちばん良く、固定 bitrate はサイズが読みやすいです。

字幕

埋め込みは字幕を動画の中に入れ、保存は隣に別の .srt ファイルを書き出します。

カンマ区切りで指定します。利用できる全言語が欲しいときは all と書きます。

再生リストとチャンネル

URL が動画と再生リストの両方に属している場合の動作です。

範囲もリストも使えます。たとえば 1-10,15、あるいは末尾から 1 つ飛ばしで取る -5::2 など。

詳細オプション(1)

ダウンロード済みの項目を記録するので、再実行時にはそれらを飛ばします。チャンネルを同期させ続ける方法がこれです。

区間とチャプター
詳細オプション(2)

*00:01:30-00:03:00 のような時間範囲、またはチャプター名です。先頭のアスタリスクは時刻であることを示します。

メタデータとカバー画像
詳細オプション(3)
SponsorBlock

SponsorBlock のデータをもとに、コミュニティが印を付けた区間をファイルから切り取ります。

詳細オプション(1)

区間は残したまま印を付けるので、自分で飛ばせます。

ファイルとフォルダ

フィールド名は %(...)s の中に書きます。スラッシュはフォルダを作ります。

詳細オプション(4)

ファイルを書き出す場所です。上のテンプレートと組み合わせるとサブフォルダも作れます。

ファイル名の最大長(文字数)です。

フィルタ
詳細オプション(5)

YYYYMMDD、または now-1month のような相対日付です。

YYYYMMDD、または相対日付です。

これより小さいものは飛ばします。5M、500K などが使えます。

これより大きいものは飛ばします。

停止するまでにダウンロードするファイル数です。

ネットワーク

たとえば 2M や 500K。残りの帯域を他のことに使いたいときに役立ちます。

詳細オプション(5)

分割されたストリームを速くします。まずは 4 くらいが妥当です。

失敗した部分を何回やり直すか。infinite も指定できます。

HTTP・HTTPS・SOCKS proxy の URL です。

リクエストを実際のブラウザからのものに見せます。突然 403 が出たときの定番の対処です。

ログインと cookies

ログイン中のセッションを直接読みます。非公開・年齢制限・メンバー限定のコンテンツには必要です。

詳細オプション(1)

ブラウザから書き出した Netscape 形式の cookies.txt です。

ライブ配信
詳細オプション(2)

予定されている配信が始まるまで問い合わせ続けます。MIN-MAX は確認の間隔(秒)です。

回避策
詳細オプション(3)

非推奨で、--add-headers に置き換わりました。古い解説記事がまだ多く使っているので残してあります。

非推奨で、--add-headers に置き換わりました。

サイトごとの専用オプションです。たとえば youtube:player_client=web。

出力とデバッグ
詳細オプション(2)
リセット

VOD、クリップ、ライブ

Twitch の VOD は長いので、並列 fragment の効果は実際に大きく出ます。また 5 分だけ残すために 8 時間ダウンロードするより、時間範囲を指定したほうがまともです。

ライブ配信では、Twitch が前半をまだ保持している限り「最初から録画」がそれを取り戻します。MKV を選んでください:中断された MKV はたいてい再生できますが、書き込み途中で切れた MP4 はしばしば再生できません。

Twitch は VOD を HLS のセグメントで配信し、CDN は太っ腹です —— 実効的な上限はあなたの回線のほうで、だからこそ Instagram では害になる並列 fragment が、ここでは本当に効きます。加入者限定の VOD には、そのチャンネルに加入しているアカウントの cookies が要ります。見られないセッションはダウンロードもできません。ハイライトは VOD の下位再生リストではなく別の項目です —— それぞれの URL で取ってください。

クリップは専用の extractor を持つ別物で、天井も別です —— クリップは切り出し元のソース品質どまりで、しばしば 1080p60 であり、クリップの URL から完全な VOD は出てきません。VOD の一部を残したいなら、VOD を落として手元で切るか、時間範囲を使います:--download-sections はタイムスタンプの窓を受け取り、8 時間を取って 5 分を残すことをせずに済ませ、チャプターのメタデータとも自然に組み合わさります。

かつて広告は Twitch の VOD のセグメントに焼き込まれていました —— yt-dlp の Twitch extractor は今ではそれを切り取りますが、最近の版だけです。古いバイナリは広告の切れ目入りの録画を生み出します。VOD に説明のつかない切れ目があったら更新してください。加入壁はもう一つの境界です:セッションなしではどんなオプションも加入者限定の VOD に届かず、偽装する方法もありません。

チャットについて。Twitch はチャットを別の成果物として保存しており、yt-dlp は --write-subs をそれに割り当てて JSON として保存します —— このファイルは字幕形式ではなく、チャットを映像に描画するツールは別工程です。ほかは期待どおりの形に従います:継続中のチャンネル同期には記録ファイル、ライブには MKV、VOD には MP4、再生リスト番号は複数パートの項目が意味を与えるときだけ。

よくある質問

Twitch の VOD をダウンロードするには?
VOD の URL を渡します。長いので並列 fragment を増やして速くし、一部だけ欲しいときは時間範囲を使ってください。
Twitch のライブ配信を録画できますか?
できます。配信が許す場合、「最初から録画」は現在の時点ではなく冒頭から取り込みます。中断された録画には MP4 より MKV のほうが強いです。
クリップは動きますか?
動きます。クリップの URL はそのまま使え、特別なオプションは要りません。
サブスクライバー限定の VOD はどうですか?
サブスクライブ済みのセッションが必要です:そのサブスクを持つアカウントで --cookies-from-browser を使ってください。