I’m a developer looking to build a personal tool that automatically archives my own Twitch VODs to my own YouTube channel after each stream ends.
Before posting, I reviewed several related threads on this forum — including #28490 (“Download VODs via API or other means”), #40537 (“Download your own VODs”), and most recently #64561 (“Official API endpoint to download or export Twitch VODs”) — all of which are now closed. I’d like to open a fresh discussion to get an up-to-date official response, as the situation may have evolved since those threads were active.
I also share the concerns raised by matthieu in #64561: the demand for a compliant VOD export solution is real, persistent, and still unmet as of today.
Here’s how the tool works:
Authenticate with my own Twitch account via OAuth (requesting only the necessary scopes)
Detect when my stream ends using the EventSub API (stream.offline event)
Download the VOD file from Twitch’s CDN — this is the part I’d like clarification on
Upload it to my own YouTube channel via YouTube Data API v3
The key point is that this tool only ever accesses my own content, with my own explicit authorization.
My questions:
Is accessing my own VOD files from Twitch’s CDN (using my own OAuth token) considered a violation of the Terms of Service — specifically Section 10(xi) regarding automated access, or Section 7(e) regarding downloading?
Is there an official or recommended method to programmatically download VOD files for my own content? I’m aware the Helix API provides metadata via GET /helix/videos, but no direct download endpoint for VOD files seems to exist.
Would this type of tool require any special agreement or permission from Twitch beyond the standard Developer Services Agreement?
I want to build this in full compliance with Twitch’s policies. Any official guidance would be greatly appreciated.
Yes, as there is no documented/supported way to do so.
No, not automatically, just manually from the dashboard.
It’s not possible to get special permission as automatic download of VOD’s is not supported.
You cannot auth the “relevant scopes” because there are none.
The optimal solution is to local record, as you can also record as a different quality (if you wish) than uising the post transcoded recording.
Or to multistream to YouTube (hidden or public) and publish that YouTube stream (after the fact)
Or after the stream ends go to your Video Manager and utilise Twitch’s provided “upload to youtube” feature, but that has to be done manually. Then you don’t have to download or upload yourself.
In summary, nothing has changed.
There is no official way to programatically download your own vods (or anyones) from Twitch.
The optimal solution is to local record instead. Which will also not have any muting from music “strikes” on the vod.
Or since your goal is to upload to YouTube, use the in built YouTube uploader that the Video Producer provides (under […] → export) related help article Twitch Help Portal
Thank you for the clear and detailed response! The local recording approach and the multistream option make a lot of sense. I really appreciate you taking the time to clarify this — it’s very helpful for understanding the right direction to take.