What Twitch is actually serving
A Twitch VoD is HLS: a playlist of 5–10 second `.ts` segments served from Twitch's CDN. Downloading a VoD means downloading every segment and concatenating. For a four-hour stream at 6 Mbps that is around 2,000 segments.
Each segment is a separate HTTP request. A serial fetch (one at a time) is bottlenecked by per-request overhead far more than by your link bandwidth.
Parallel fragment fetch is the main lever
yt-dlp and TwitchDownloader both support parallel segment fetching. yt-dlp's `--concurrent-fragments 8` (or higher; 16 is usually safe) typically doubles or triples real wall-clock throughput on a residential gigabit line. The default of 1 leaves most of your bandwidth idle.
Twitch does not heavily ratecap parallel HLS segment pulls from a single IP in 2026 (this was different in 2022). Going above 32 sometimes triggers throttling.
CDN geography matters
Twitch routes VoD CDN requests to a nearby edge. Europe-to-Europe is fast (200+ Mb/s easily). Europe-to-US-East is slower. Editors in Asia hitting a US-recorded VoD will see the worst case, typically 30–60 Mb/s.
There is no public way to force a different edge. A nearby VPS proxy works if you control one but adds complexity for a one-off download.
Cloud ingest as the alternative
A cloud editor that ingests directly from Twitch to its own storage skips the residential-bandwidth problem entirely. Datacenter-to-datacenter inside the same continent runs at hundreds of Mb/s consistently. Once the source is in cloud storage, you stream only the segments you watch. No full-VoD transfer to your laptop, ever.
For editors who do this work full-time, the bandwidth savings alone can justify a cloud editing tool over a local-download workflow. For occasional editors, a local tool with `--concurrent-fragments` tuned is fine.
Diagnosing a slow download
Start with `yt-dlp -v --concurrent-fragments 1` and watch the per-segment timing. If each segment takes 200ms+ the bottleneck is round-trip latency to the edge. Raising concurrency fixes this.
If individual segments are fast but throughput is still low, the issue is Twitch-side ratecapping. Drop concurrency, wait an hour, retry. There is no escalation path beyond patience.