Exporting Twitch VODs with Chat
Twitch is being a bunch of meanie-poops and almost all VODs on Twitch will be deleted: https://help.twitch.tv/s/article/video-on-demand?language=en_US#storage
On April 19th of 2025, all highlights will be deleted from a Twitch user's account until they only have 100 hours of VODs left. For most streamers, this means the vast majority of VODs will be deleted. For instance, I have more than 4000 hours worth of VODs, so only 2.5% of my VODs will remain.
Now then, it's not too difficult to download VODs and upload them as-is to Youtube, but I have two issues with that: most of my VODs are 720p at a high bitrate which end up getting their quality destroyed when uploaded to Youtube, and I really would love to keep the chat.
So, I ended up getting this workflow where I upscale each video so they can retain more of their quality and get chat included.
Basic instructions:
Download this batch file and place it where ever you want Twitch VODs to be stored (you'll want to ensure you have plenty of space free -- 100gb or more is ideal).
Download Twitch Downloader and place it anywhere. Make sure you're downloading the CLI Windows build.
Download FFmpeg and install it anywhere. I suggest downloading the latest full release.
Open the batch file in a text editor and modify these two lines:
set TwitchDownloader=C:\PathTo\TwitchDownloader.exe
set FFmpeg=C:\PathTo\FFmpeg.exe
You guessed it, you'll need to update those two lines to point to where you have Twitch Downloader and FFmpeg installed.
Double click the batch file and input the id for the VOD (the VOD is the final part of the web address when you watch a Twitch VOD).
But, before you start processing your Twitch VODs, there are some things to consider:
Twitch Downloader will always show the last X amount of chat messages. This is fine for very active VODs where chat is going off all the time, but if you're a smaller streamer then old chat messages can end up lingering for a long time which feels unnecessary. Thanks to Fakepostman, I've got a build of TwitchDownloader where chat messages will disappear after 18 seconds. You can download this build here.
My batch file is configured to upscale videos to 2560x1440 and encode with a very strong quality setting. For instance, a 6-hour-long video with my settings can become 30gb or even larger, depending on the game.
Change "-cq 21" to a higher value if you want a smaller filesize. You can try 23, for instance, and see if that quality/file size works out well.
If you want 1920x1080 instead of 2560x1440 then go through the batch file and replace any mentions of 2560 with 1920, and 1440 with 1080. You'll also want to reduce the size of the chat. You can replace 526 with 395, replace 900 with 675, and update the font size definition from 24 to 18.
If you have a AMD GPU rather than an Nvidia GPU, then replace the two mentions of "hevc_nvenc" with "libx265" for CPU encoding. This will be MUCH slower, though.
I highly recommend testing this workflow with a short VOD. Just find the shortest highlight on your channel (a clip might work too, actually) and do some tests on it to figure out what settings work best for you.
Note that this workflow is slow. In particular, rendering the chat and making the final video are steps that take the most time. I've got rather good PC specs, and a 6-hour video takes close to 3 hours to process (73 minutes for rendering the chat and 90 minutes for the final video).
The image at the top of this article shows an example of one frame looks like. You can also look at my exported videos for full examples: https://www.youtube.com/playlist?list=PLMyoprrqVo6AajjorK9mhlCDksGHzB30x
Thanks to Karbal and Fakepostman for helping out making this batch script. And thanks to lay295 for creating TwitchDownloader.
If I've got any of my Youtube or Twitch viewers following me here on Patreon, then feel free to suggest VODs I should be saving. I'm trying to save as many ones as possible, but saving them all isn't practical, so I'm eager to hear what I should prioritize. My Twitch VODs can be seen here: https://www.twitch.tv/fluffyquack/videos?filter=highlights&sort=time
