Youtube Format IDs
发布时间:2026-09-17 | 浏览:1
Instantly share code, notes, and snippets.
Star 312 ( 312 ) You must be signed in to star a gist
Fork 27 ( 27 ) You must be signed in to fork a gist
Embed Select an option Embed Embed this gist in your website. Share Copy sharable link for this gist. Clone via HTTPS Clone using the web URL. No results found Learn more about clone URLs Clone this repository at <script src="https://gist.github.com/MartinEesmaa/2f4b261cb90a47e9c41ba115a011a4aa.js"></script>
Embed Embed this gist in your website.
Share Copy sharable link for this gist.
Clone via HTTPS Clone using the web URL.
No results found
Save MartinEesmaa/2f4b261cb90a47e9c41ba115a011a4aa to your computer and use it in GitHub Desktop.
Embed Embed this gist in your website.
Share Copy sharable link for this gist.
Clone via HTTPS Clone using the web URL.
No results found
Note: This is all almost full YouTube ID informations. Original owner goes to AgentOak, modified version by Martin Eesmaa.
See the credits and also special thanks in below.
Before this gist has been forked, AgentOak made original gist on November 13 2019 and it was last updated on May 5 2021.
From now on, this forked gist is maintained by Martin Eesmaa since 17 September 2022. I joined to yt-dlp Discord server on 3rd April 2026 with my Discord username: martineesmaa.
Last updated: 20 August 2026
Also known as itag or format codes and way back they could be specified with the fmt parameter (e.g. &fmt=22 ) used to be on website address bar after YouTube Video ID, (deprecated?). Depending on the age and/or popularity of the video, not all formats will be available.
HFR stands for "High Framerate", which means up to 60 FPS, whereas non-HFR is limited to 30 FPS
Non-HFR 1080p+ H.264 and VP9 variants are not provided for HFR videos anymore
Same IDs are reused for 360° videos
1440p+ H.264 variants are only provided for 360° videos anymore
At the moment, AV1 variants are only provided for popular videos
All AV1 variants can be HDR (no separate non-HDR AV1 variants are offered)
AV1 HFR High : High refers to the bitrate. These variants have ~3-4 times the bitrate of their normal counterparts. Additional side effect is providing AV1 HFR variants for low resolutions (<=480p). These variants are rare even among videos with AV1 variants. Found on this video .
AV1 HFR 4320p : Format 571 has roughly 50% higher bitrate than 402. Sometimes only one of them is offered, sometimes both. Can be seen on this video .
VP8 can be found this video .
At format 356 & 712 , it is the only YouTube premium video format and requires your YouTube account subscribed with Premium subscription to pass cookies file. Format 356 is connected to format 616 (available on yt-dlp, not 356) of M3U8.
At format 214 , some rare videos were encoded and it is linked from format 379 (available on yt-dlp, not 214) of M3U8 can be found this video
For some marked parenthesis format like (271) means that it may be claimed by someone without video link, was old superseeded format from YouTube or something else. I honestly don't know yet...
Please take note that YouTube started to use AI for use super resolution (announced it in late 2025, Q4) from low quality videos (e.g. old nostalgia videos) into high quality videos for some resolutions selected. For example source video resolution is 240p and it has extended resolutions up to 720p and after format adds suffix -sr . Most videos are not super resolution formats available, some videos may have. Example video
Rare videos of AV1
Some rarely videos may get AV1 video codec for low views or/and upload date less than 24 hours for average 10 minutes duration video.
It could be luck or/and conveniency for YouTube's quiet decision.
Here is sample videos:
https://www.youtube.com/watch?v=BizgNeskJ6o (20 hours ago and at least 50 views, reported on 26.06.2025, later it was deleted it)
https://www.youtube.com/watch?v=r-X4DJxT6gY (4 years ago and unlisted video, got couple months to get AV1)
Duplicate video IDs
Those duplicate video IDs of m3u8 as Apple Native HLS are linked to common numbers, not a rare numbers.
270 (m3u8) == 137 (https) are same video quality, but different protocol.
Thanks, dtlnor for explanation of equalation video IDs.
Also even special thanks, gamer191 to report linked M3U8 codes to common codes.
Graphic table about linked M3U8 codes to common numbers
Examples of two videos:
Extra video formats of 72p & 608p
Formats of 228, 779, 780 and 788 were rarely encoded to some YouTube videos, the video resolution is 1080x608 and always under 30 FPS:
But for format 228 is 72p quality and only 6 FPS.
Sample video link here .
Second sample video link of format 228 here
Third sample video link of format 787 here
Thanks to @GammaBoost for finding three formats (779,780,788)!
Thanks to @aokin1999 for finding a format 228 !
Thanks to @jthievre for finding a format 787 !
Surround audio can be found on some demo videos
YT Music : These formats are offered on Youtube Music. Format 141 is only available to Premium users with High Quality option
Format 327, 338 : These have been found on this Stereo 3D video
Format 325 : You can find out one video link here
Format 773 : IAMF uncompressed audio track is compressed into Opus audio codec and can play with three groups of Stereo, Surround (5.1) and Binaural for up to 18 channels (7.1.4). You can find out video link here
Format 774 at YT Music : Some music have available high quality of Opus up to 256 kbps to Premium users, music link here and also bypassing is no longer possible to download for non premium users unless you're subscribed to YouTube Premium and can download format available by extra arguments of cookies from browser or the authentication.
Format 599, 600 : Since February 2025, YouTube restricted these two formats only limit access to mobile web with POT token, please add this argument from command: --extractor-args "youtube:player_client=mweb;formats=missing_pot" (Thanks, gamer191!)
DRC Optional : Only formats of 139, 140, 249, 250, 251, 599 and 600 were using DRC normalization sound for some videos.
Format 139, 338 : Default yt-dlp without argument when using -F or --list-formats does not show up, so please add this argument to show available formats: --extractor-args "youtube:player_client=all" .
Deprecated note (this is old note):
Since February 2025, YouTube discontinued (see the current top) formats of 599 and 600 due for every video uploaded.
Legacy (non-DASH)
Format 17 : Allows for old mobile phones (eg. cell phones) to watch all videos. The video can have 7.5 & 12 fps only.
Format 18 : Some videos are encoded with audio bitrate of 128 kbps for shorter lengths, most of them are with 96 kbps if most lengths or less views.
Always limited maximum to 30 FPS (frames per second)
GDrive : These formats are offered for Google Drive video previews. Note that the video player on GDrive displays incorrect codecs on rightclick -> stats
Format 22 : Available for most videos, except music and music videos (not limited to official music channels!)
Starting since May 2024, the Format 17 is removed for every mobile YouTube videos uploaded.
Later since 21 June 2024, the Format 22 is also removed for every YouTube HD videos uploaded.
Livestreams (non-DASH)
Non-HFR variants are limited to 30 FPS, HFR to 60 FPS
Non-HFR variants for 720p and 1080p may not be offered if HFR is available
Livestreams are also offered through DASH video (H.264, VP9) and DASH audio (AAC) streams
Both audio codecs of MPEG-TS are limited sample rate to 44.1 Khz for streaming a live broadcast.
Also videos without live broadcasting can play formats for acting user agent Safari Web.
Template youtube-dl formats
For archiving videos: Only choose combinations that fit WebM (VP9+Opus) or MP4 (H.264+AAC)
For archiving audio: Choose any format that's best
AAC Surround 384 / Opus 160 / AAC 192 / AAC Surround 192 / AAC 128 / Opus 70 / AAC 96 / Opus 50 / AAC 48
For streaming videos: Allow any combination
yt-dlp usage example
Complete archive video with audio, comments, subtitles, thumbnail and everything about YouTube ID:
Ensure you have yt-dlp is installed via Python or added to PATH for non-Python installation. Make sure it is up to date:
Update yt-dlp via pip (recommended):
Since late 2025, YouTube has given sleep time delay before downloading videos, this may be delay for pre-download method, even cannot download a video with age-restricted method trying to bypass it...
AgentOak (original owner) made YouTube list formats of video and audio ID especially with tips.
MartinEesmaa (forked owner) updated YouTube list formats for up to date.
Special thanks for finding/fixing by:
qzmtch for finding missing 616 format
dtlnor for little interesting explanation of duplicate formats same
r8420 for finding missing 612 format
Ciancy28 for finding high quality of Opus 256 kbps (format 774) in YT Music
joaquinito2070 for renaming youtube-dl to yt-dlp and fixing incorrect bitrates. Some commits were on it.
mscalindt for finding format 379 that was undocumented before I updated it now. It was linked to format 214 of DASH video.
Manwithpants812 for finding missing format 356 due to undocumented which is related to format 616.
Low-power for claiming the experience finding of format 22 removed since 21 June 2024.
Aokin1999 for finding spot fixes & corrections, also pretty cool with fork gist :)
BriellaBugs for screenshot to show Super Resolution by quality selection menu
MartinEesmaa commented Jul 21, 2025
@MartinEesmaa 241 or 214 ? Btw 214 is listed under VP9 in the table, so I don't get this at all. Correct the info please.
Sorry my apologies. It was linked format to 214, not 241, sorry for misspelled number!
MartinEesmaa commented Jul 21, 2025
Fixed it, moving 214 format from VP9 to H.264, @aokin1999 . Thanks! :)
TEOL85 commented Jul 22, 2025 • edited Loading Uh oh! There was an error while loading. Please reload this page .
There was an error while loading. Please reload this page .
There was an error while loading. Please reload this page .
I think I found something rare on Grover Washington Jr. - Just The Two Of Us a couple of itag codes which has 256kbs audio but for free not pay per listen in m4a format but the picture is totally black screen in my media player and that black picture has an AV1 codec according to YouTube the stats for nerds itself so maybe AV1 doesn't mix well with 256 m4a or maybe my video l=playing sofeware is too out of date to get a picture.
I checked the itags out because I was curious why did my software which uses m3u8 give me a black screen with m4a 256 for free as well on that itag and these are the 2 itags that 256 free had.
616 1080 m3u8 Rare 256 m4a Free Audio Broken Picture Black Screen 290 1080 m3u8 Rare 256 m4a Free Audio Broken Picture Black Screen
And this is what the non formats code scanning gave me on the same video for interesting comparing
251 1080 Sound Code which is normally VBR 128-160 vorbis 399 1080 Picture Code 398 720 Picture Code 397 480 Picture Code 396 360 Picture Code 395 240 Picture Code 394 144 Picture Code
So all the picture codes were all in a row but the sound code lesser bitrate than the in free mode so 256 free m4a is still on m3u8 but not on http.
Very fun that. The video with the black screen was 128 bitrate and the m4a was 256 on the itag but it also had problems even downloading in my software becasue it was so exotic the side panel download wouldn't even trigger but if you clicked hard download from the menu it got that verson out of it's m3u8 itag not like it needs the artwork on the file to listen to the track anyway.
File also had special enhanced audio on YouTube which I can't access but maybe those itags was it but if you have those itags you can get it for free it's one thats not blocked on my test download either way from those 616 and 290 itags.
The weird things you do to find out why you got a 256 file when you shouldn't be getting it for free.
Edit: Interesting 616 and 290 are not in your list of m3u8 formats so there you go it is legitlly exotic this free 256kbs with a blank picture itag but what is the code for free 256 when you convert that from m3u8 to http itag codes as it's probably an itag google never wanted us to learn about and more snaggers use http than m3u8 only the one I use for radio probably even uses it?
We really need the full list of these http to m3u8 conversions as well as m3u8 to http for those 2 codes as you can really analyse it for fun the weirdness of exotic video formats.
I think you guys should rethink making yt-dlp command line only as MSDOS is really out of date now and not everyone knows how to use it anymore we need you to make a GUI 32/64-Bit for your software as well Martin so we can have a play without having to be bothered about using the command line which is out of date and shouldn't really be used for software anymore.
YouTube Video and Audio Downloader (WebEx) by [feller] used to be a GUI available for yt-dlp with FFMPEG features available but available for your Firefox but feller hasn't updated it in years and the codes as well as URL's database is so out of date his GUI doesn't work for us anymore but it shows you how much better if yt-dlp stepped away from command line coding into a safe to use browser GUI yet along Windows GUI, Linux and Mac non browser and the experience is so much better than having to use out of date command lines and dare I say it better than Windows GUI's becasue that type of GUI is in your browser.
Command line mode within the extension as well would be good though for those things you actaully need it for but yeah we need a better experience for those who can't code or too lazy to type it in.
616-96=520 290-96=194
So the other formats flipped to +96 m3u8 might be this
251+96=347 399+96=495 398+96=494 397+96=493 396+96=492 395+96=491 394+96=490
Thats if it's +96 -96 like the rest of the conversions in the smaller m3u8 codes list we have to begin with it really needs to be updated to full though if +96 -96 is all there is to all the conversion like it looks to be if m3u8 was fully updated there wouldn't be so much issue in m3u8 relying software for the speed of the protocol software detecting stuff at the moment.
If going by the rest of the list might be the m3u8 to http conversion so if they are the conversions they are not even on the list neither so it really is new and exotic and so far only encountered on a YouTube Music 80s file becasue of having to mess around for radio and found out that it was exotic.
Edit: Maybe thats not so simple as +96 there are some +300 conversiosn as well in the existing lists. lol
Sorry about that I do yak a lot when nerding out.
https://youtu.be/gelwwYuYGn0?si=3WGyDJflAopbANw8 https://music.youtube.com/watch?v=gelwwYuYGn0&si=0lU_oQgayTItxUPh
General Complete name : C:\Users\User\Desktop\Just the Two of Us.mp4 Format : MPEG-4 Format profile : Base Media Codec ID : isom (isom/iso2/avc1/mp41) File size : 20.5 MiB Duration : 7 min 23 s Overall bit rate mode : Variable Overall bit rate : 388 kb/s Frame rate : 25.000 FPS Writing application : Lavf60.16.100
Video ID : 1 Format : AVC Format/Info : Advanced Video Codec Format profile : High@L3.2 Format settings : CABAC / 3 Ref Frames Format settings, CABAC : Yes Format settings, Reference : 3 frames Codec ID : avc1 Codec ID/Info : Advanced Video Coding Duration : 7 min 23 s Bit rate : 126 kb/s Width : 1 080 pixels Height : 1 080 pixels Display aspect ratio : 1.000 Frame rate mode : Constant Frame rate : 25.000 FPS Color space : YUV Chroma subsampling : 4:2:0 Bit depth : 8 bits Scan type : Progressive Bits/(Pixel*Frame) : 0.004 Stream size : 6.65 MiB (32%) Writing library : x264 core 155 r2901 7d0ff22 Color range : Limited Color primaries : BT.709 Transfer characteristics : BT.709 Matrix coefficients : BT.709 Codec configuration box : avcC
Audio ID : 2 Format : AAC LC Format/Info : Advanced Audio Codec Low Complexity Codec ID : mp4a-40-2 Duration : 7 min 23 s Bit rate mode : Variable Bit rate : 256 kb/s Maximum bit rate : 259 kb/s Channel(s) : 2 channels Channel layout : L R Sampling rate : 44.1 kHz Frame rate : 43.066 FPS (1024 SPF) Compression mode : Lossy Stream size : 13.5 MiB (66%) Default : Yes Alternate group : 1
aokin1999 commented Jul 22, 2025 • edited Loading Uh oh! There was an error while loading. Please reload this page .
There was an error while loading. Please reload this page .
There was an error while loading. Please reload this page .
@TEOL85 🙄 251 is Opus ~128kbps (vorbis used other ids muxed with vp8, and those are deprecated, tho there are still a few standalone vp8 encodes) 616 is m3u8 id for 1080p Premium VP9 (356 https id) thats usually listed on popular 1080p videos (higher resolutions wont have premium formats)
270 (137) and 290 are both H.264/AVC 1080p, m3u8 rates are always artifically higher than https but consistent in a same video so probaly 290 is an higher bitrate variant of 137, so maybe it is 216. All these are video only, including 616(356). Only current format with both audio and video is 18 if i'm not wrong.
All the rest you say I just don't understand it. YT-DLP is commandline, and python, though there are .exe builds for windows. For some reason I can't download the 290 stream (but 270 doesn't give any problem). Maybe I would need to use some specific options but I don't have patience or time now, so, anyone else try to get it (and get the equivalent ID if possible).
Last edit (yeah I did a lot): I realized there are more avc formats, so I dunno, maybe a lot of different encodes (higher quality? tho it's still image so i doesnt make much sense) or just duplications.
hunderslash commented Aug 28, 2025
Allegedly youtube has been experimenting with AI sharpening on certain video formats. (which obviously, is not exactly ideal) I did some testing and found it was only being done to video being encoded with av01. The example video: https://www.youtube.com/watch?v=D8xIpI_5sJs Here's the --list-formats output.
Formats 395, 396, 397, 398, 399, and 788 had obvious evidence of AI sharpening, where everything else seemed untouched.
Low-power commented Sep 3, 2025 • edited Loading Uh oh! There was an error while loading. Please reload this page .
There was an error while loading. Please reload this page .
There was an error while loading. Please reload this page .
Starting since May 2024, the Format 17 and Format 22 is removed for every YouTube videos uploaded.
From my experience, Format 22 is still available until 2024-06-21, at least from the initial player response object of video pages (it got gradually removed from videos I checked that day).
MartinEesmaa commented Sep 25, 2025
Hi, @Low-power ! Thanks for your claim experience of format 22. I will update it with your claim. Thanks! :)
Sorry for late response.
jack980517 commented Sep 28, 2025
I found some other weird edge cases: sR0Yyjs26bE, KmAbbOPx46Y, and many other old videos on the same channel, only has webm for up to 360p, while mp4 is available for 720p and 1080p. This "breaks" your yt-dlp format selection string as it would prefer the 360p webm instead of the 720p/1080p mp4. I can't think of a good way to fix it though; handling such edge cases would probably require writing some Python code with if statements.
annie-things commented Oct 24, 2025
thank you for keeping this updated
MartinEesmaa commented Oct 27, 2025
thank you for keeping this updated
DianaNites commented Nov 5, 2025
What do the parenthesis around certain formats mean? eg (271)
MartinEesmaa commented Nov 5, 2025
Hi, @DianaNites ! For the parenthesis like (271) means that may be claimed by someone without video link, maybe it was old superseeded video format from YouTube or something else... I honestly don't know yet, but I can add documentation about parenthesis formats meaning. Thanks! :)
MartinEesmaa commented Nov 11, 2025
Hi, @jack980517 ! Sorry to forgot reply to you, my apologies! Anyways...
Some YouTube may not transcode for new formats to the same channel for some old videos or maybe the yt-dlp. I'm not kinda sure, but personally maybe YouTube doesn't transcode for not enough too new much views on old channel or other reasons. Thanks! :)
MartinEesmaa commented Nov 11, 2025
Hi, @hunderslash ! I think now YouTube started to use AI to upscale old videos into HD for enhancing.
Source: https://www.forbes.com/sites/anishasircar/2025/11/05/youtube-deploys-ai-to-upscale-old-videos-for-tv-as-living-room-viewing-surges/
Some notes I want take note sometimes texts, faces, textures & others could make little bit mess from very lower quality (e.g. 144p) into higher resolutions (1080p/4K). I will add notice about AI upscaling for the old videos into HD/4K used by YouTube... Thanks! :)
BriellaBugs commented Dec 11, 2025
AI Upscaled videos show "Super resolution" by the quality selection menu
Can be seen here https://www.youtube.com/watch?v=LOY3QH_jOtE
MartinEesmaa commented Dec 11, 2025
Hello, @BriellaBugs ! Thank you and yeah I can verify some old videos were upscaled using AI enhancing to make super resolution. Also after the format number 248, adds end prefix -sr .
I already made documentation just there about AI super resolution on DASH video section of this gist, but I will provide an example video. Thanks! :)
AMTPROD commented Dec 11, 2025 via email
gamer191 commented Dec 12, 2025
To clarify, the -sr suffix is added by yt-dlp (added in yt-dlp/yt-dlp@ 4cb5e19 )
Youtube's actual itags provide no indication of whether the video is AI. This can be verified by downgrading yt-dlp ( yt-dlp --update-to stable@2025.11.12 )
zalnaRs commented Jan 3, 2026
MartinEesmaa commented Jan 5, 2026
Hi, @zalnaRs ! Thanks for the screenshot showing to us! :)
Just the feature "Voice Boost" is for enhancing more vocals and reduce music frequency. For this video you tested on YouTube Web, it only applies to native web player to boost audio decibels, all other version of YouTube (for example Android and iOS) doesn't have voice boost feature available, only the web version is available way.
Thanks! Feel free to reply or ask question to me. :)
mechalincoln commented Jan 11, 2026 • edited Loading Uh oh! There was an error while loading. Please reload this page .
There was an error while loading. Please reload this page .
There was an error while loading. Please reload this page .
Is there any way to just select for English audio? stuff like in this image is a pain:
my (305/266/304/264/299/137/298/136/135/134/133/160/bestvideo)+140 does not work all the time anymore, and since they put English at the end and they don't always have the same number of translations, it is hard to automatically get the right language
i think they started using AI for translating audio.
this is the video in the example: https://www.youtube.com/watch?v=2RWEVWsA2DU
I know I could just do format 18 but that isn't 1080p or 720p and i want the original video each time
DianaNites commented Jan 11, 2026 • edited Loading Uh oh! There was an error while loading. Please reload this page .
There was an error while loading. Please reload this page .
There was an error while loading. Please reload this page .
yt-dlp should prefer the original language by default and automatically use that, but you could also add a check for lang^=en , combined with the format_id starting with one of your desired audio formats to the format string. But then you may get AI translated audio for videos that are not originally english.
https://github.com/yt-dlp/yt-dlp#filtering-formats
MaxLebled commented Jan 22, 2026
Just the feature "Voice Boost" is for enhancing more vocals and reduce music frequency. For this video you tested on YouTube Web, it only applies to native web player to boost audio decibels, all other version of YouTube (for example Android and iOS) doesn't have voice boost feature available, only the web version is available way.
I was quite surprised to see that "voice boost" isn't a different audio file with pre-processing applied, like with "stable volume".It would make sense for YouTube not to continue piling on more audio variants, but I really wonder what it's actually doing. Amazon Prime Video's "dialogue boost" uses AI/ML in order to isolate the dialogue and boost it (and it sometimes doesn't get it quite right!) and that's definitely "pre-baked" into a separate audio file.
I wonder how it works technically in the case of YouTube... is the browser JS applying EQ somehow? This is working in Firefox for me, surprisingly enough.
gamer191 commented Jan 30, 2026
Since February 2025, YouTube discontinued formats of 599 and 600 due for every video uploaded.
Seems that those formats are still available from the mweb client (although that client is protected by POT). This can be verified by running yt-dlp --extractor-args "youtube:player_client=mweb;formats=missing_pot" https://youtube.com/watch?v=35Ny82de55w --list-formats
jthievre commented Feb 3, 2026
Spot a 787 tag here : https://www.youtube.com/watch?v=n47SduXKetw .
It seems to be a variant of 788.
MartinEesmaa commented Feb 4, 2026
Since February 2025, YouTube discontinued formats of 599 and 600 due for every video uploaded.
Seems that those formats are still available from the mweb client (although that client is protected by POT). This can be verified by running yt-dlp --extractor-args "youtube:player_client=mweb;formats=missing_pot" https://youtube.com/watch?v=35Ny82de55w --list-formats
Hi, @gamer191 ! Thanks for confirming and I can see it has been successfully returned formats from mweb with POT token. I had to use External JS scripts with Node to bypass YouTube restrictions too, results:
I will update the description. Thanks very much! I thought formats were removed, but it's restricted only for mobile web with POT token. :)
Kind regards, Martin Eesmaa
MartinEesmaa commented Feb 4, 2026
Spot a 787 tag here : https://www.youtube.com/watch?v=n47SduXKetw .
It seems to be a variant of 788.
Hi, @jthievre ! This has been confirmed and the format of 787 (AV1) is now added with sample video link! Thank you! :)
BriellaBugs commented Mar 6, 2026 • edited Loading Uh oh! There was an error while loading. Please reload this page .
There was an error while loading. Please reload this page .
There was an error while loading. Please reload this page .
Hi there! I made a little lua script to quickly check given any given itag(s) properties, I found it useful when using yt-dlp and it just shows "Downloading tag Number" without context, thought it might help
https://gist.github.com/BriellaBugs/d9b3177ab308a1a242604b830cf0a53d
MartinEesmaa commented Apr 2, 2026
Hi, @BriellaBugs ! Pretty cool Lua script without internet use for parsing information of yt-dlp ID formats. 👍
eljestliv commented May 10, 2026
Is there any documentation anywhere of what formats are better (in terms of quality and/or filesize) compared to their counterparts of the same resolution? For instance what’s best out of 302 or 298, etc