yt-dlp Command Generator for Twitch
Build a yt-dlp command for Twitch VODs, clips and live streams, with the options that make long recordings survivable.
VODs, clips and live
Twitch VODs are long, so parallel fragments make a real difference, and a section range is usually better than downloading eight hours to keep five minutes.
For live streams, record-from-the-start captures from the beginning where Twitch still has it. Prefer MKV: an interrupted MKV is normally still playable, where an MP4 cut off mid-write often is not.
Twitch serves VODs as HLS segments, and its CDN is generous — the practical limit is your connection, which is why parallel fragments genuinely help here where they hurt on Instagram. Subscribers-only VODs need cookies from an account subscribed to the channel; a session that cannot watch cannot download. Highlights are separate entries, not sub-playlists of the VOD — fetch them by their own URLs.
Clips are their own extractor with their own ceiling — a clip tops out at the source quality it was cut from, often 1080p60, and the clip URL will not give you the full VOD it came from. To keep a segment of a VOD, download the VOD and cut locally, or use the section range: --download-sections takes a timestamp window without fetching eight hours to keep five minutes, and it pairs naturally with the chapter metadata.
Ads used to be baked into Twitch VOD segments — yt-dlp's Twitch extractor now splices them out, but only in recent versions, so an old binary yields a recording with ad breaks. Update if a VOD has unexplained cuts. The unsubscribe wall is the other boundary: no option reaches a subscribers-only VOD without the session, and there is no way to fake one.
For chat: Twitch stores chat as a separate artifact, and yt-dlp saves it as JSON with --write-subs mapped to it — the file is not a subtitle format, and tools that render chat into video are a separate step. Everything else follows the shape you expect: the archive file for ongoing channel sync, MKV for live, MP4 for VODs, and the playlist index only when a multi-part item makes it meaningful.