Skip to content

Instantly share code, notes, and snippets.

@hunderslash
Last active September 3, 2025 00:58
Show Gist options
  • Select an option

  • Save hunderslash/664ee2b8773699527683380abf8f7603 to your computer and use it in GitHub Desktop.

Select an option

Save hunderslash/664ee2b8773699527683380abf8f7603 to your computer and use it in GitHub Desktop.
twitch.tv direct clip URLs
Note:
The Stream ID is typically 11-12 digits long, and is divisible by 16.
It can be found fairly easily using sites like sullygnome.com (better for 2015-2017 streams), and twitchtracker.com.
The VOD ID is 8-10 digits long, and sometimes shows up in clips-media-assets2.twitch.tv urls.
The Streamer ID is a numerical identifier for the streamer in question.
Format 1:
https://clips-media-assets2.twitch.tv/[Stream ID]-index-0000000000.mp4
These clips were created from May/June to August 2016.
The clip URLs increment with padding, so something like
https://clips-media-assets2.twitch.tv/[Stream ID]-index-0000193842.mp4
would also be valid.
Format 2:
https://clips-media-assets2.twitch.tv/[Stream ID]-offset-0.mp4
This format was used from August/September 2016 onward.
The url does not use padding, so
https://clips-media-assets2.twitch.tv/[Stream ID]-offset-999.mp4
is a valid url, where
https://clips-media-assets2.twitch.tv/[Stream ID]-offset-0999.mp4
is invalid.
Format 3:
https://clips-media-assets2.twitch.tv/vod-[VOD ID]-offset-0.mp4
This format was introduced mid-August 2016, when clipping from past broadcasts
became available. These clips will have a modify date up to 60 days from the initial broadcast,
since that is the maximum amount of time a VOD stays accessible on site.
I have found clips of this format as old as August 16th, 2016, meaning the earliest clips from
a stream using this format would have aired June 17th, 2016.
Note that this format is very handy for finding the VOD IDs of a twitch stream, since there are
not many reliable ways to do so.
The number syntax for this format is the same as format 2.
Format 4:
https://clips-media-assets2.twitch.tv/[Streamer ID]-offset-0.mp4
This format uses the Streamer ID in place of the Stream ID, and results in
seemingly random clips from between September 2016 and November 2019.
The offset for the resulting clips is the same as in the initial stream, except there is
no identifier to pair with it, apart from file modify date.
The number syntax for this format is the same as format 2.
Format 5:
https://clips-media-assets2.twitch.tv/AT-cm|[UUID, 9 digits?].mp4
I am not sure how this ID is generated, but I have only seen it so far in streams from 2020.
I downloaded a sample range of the clips and it appears the number increments with time, with a
higher number being a later date. It would be possible to get all clips from a specific livestream
in this format by finding the range of time a stream aired, and downloading all clips between two
timestamps. It would take more manual filtering though.
Currently twitch is changing a few things with clip urls, so newer clips are formatted a bit differently
and it's harder to brute force clips from a specific stream. These url formats are still useful for older
stream clips though.
Also note, replace .mp4 with -preview.jpg for most of these urls to get the preview image for the clip.
I recommend this method if you want to check all vod clip urls but don't want to download tons of mp4 files.
Make sure you use wget --trust-server-names --timestamping so you aren't downloading the same 404 image a million times.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment