114 lines
8.3 KiB
Python
114 lines
8.3 KiB
Python
# Part of the Invidious project
|
|
# https://github.com/iv-org/invidious
|
|
# License: AGPLv3
|
|
|
|
FORMATS = {
|
|
|
|
5: {"ext": "flv", "width": 400, "height": 240, "acodec": "mp3", "abr": 64, "vcodec": "h263"},
|
|
6: {"ext": "flv", "width": 450, "height": 270, "acodec": "mp3", "abr": 64, "vcodec": "h263"},
|
|
13: {"ext": "3gp", "acodec": "aac", "vcodec": "mp4v"},
|
|
17: {"ext": "3gp", "width": 176, "height": 144, "acodec": "aac", "abr": 24, "vcodec": "mp4v"},
|
|
18: {"ext": "mp4", "width": 640, "height": 360, "acodec": "aac", "abr": 96, "vcodec": "h264"},
|
|
22: {"ext": "mp4", "width": 1280, "height": 720, "acodec": "aac", "abr": 192, "vcodec": "h264"},
|
|
34: {"ext": "flv", "width": 640, "height": 360, "acodec": "aac", "abr": 128, "vcodec": "h264"},
|
|
35: {"ext": "flv", "width": 854, "height": 480, "acodec": "aac", "abr": 128, "vcodec": "h264"},
|
|
36: {"ext": "3gp", "width": 320, "acodec": "aac", "vcodec": "mp4v"},
|
|
37: {"ext": "mp4", "width": 1920, "height": 1080, "acodec": "aac", "abr": 192, "vcodec": "h264"},
|
|
38: {"ext": "mp4", "width": 4096, "height": 3072, "acodec": "aac", "abr": 192, "vcodec": "h264"},
|
|
43: {"ext": "webm", "width": 640, "height": 360, "acodec": "vorbis", "abr": 128, "vcodec": "vp8"},
|
|
44: {"ext": "webm", "width": 854, "height": 480, "acodec": "vorbis", "abr": 128, "vcodec": "vp8"},
|
|
45: {"ext": "webm", "width": 1280, "height": 720, "acodec": "vorbis", "abr": 192, "vcodec": "vp8"},
|
|
46: {"ext": "webm", "width": 1920, "height": 1080, "acodec": "vorbis", "abr": 192, "vcodec": "vp8"},
|
|
59: {"ext": "mp4", "width": 854, "height": 480, "acodec": "aac", "abr": 128, "vcodec": "h264"},
|
|
78: {"ext": "mp4", "width": 854, "height": 480, "acodec": "aac", "abr": 128, "vcodec": "h264"},
|
|
|
|
# 3D videos
|
|
82: {"ext": "mp4", "height": 360, "format": "3D", "acodec": "aac", "abr": 128, "vcodec": "h264"},
|
|
83: {"ext": "mp4", "height": 480, "format": "3D", "acodec": "aac", "abr": 128, "vcodec": "h264"},
|
|
84: {"ext": "mp4", "height": 720, "format": "3D", "acodec": "aac", "abr": 192, "vcodec": "h264"},
|
|
85: {"ext": "mp4", "height": 1080, "format": "3D", "acodec": "aac", "abr": 192, "vcodec": "h264"},
|
|
100: {"ext": "webm", "height": 360, "format": "3D", "acodec": "vorbis", "abr": 128, "vcodec": "vp8"},
|
|
101: {"ext": "webm", "height": 480, "format": "3D", "acodec": "vorbis", "abr": 192, "vcodec": "vp8"},
|
|
102: {"ext": "webm", "height": 720, "format": "3D", "acodec": "vorbis", "abr": 192, "vcodec": "vp8"},
|
|
|
|
# Apple HTTP Live Streaming
|
|
91: {"ext": "mp4", "height": 144, "format": "HLS", "acodec": "aac", "abr": 48, "vcodec": "h264"},
|
|
92: {"ext": "mp4", "height": 240, "format": "HLS", "acodec": "aac", "abr": 48, "vcodec": "h264"},
|
|
93: {"ext": "mp4", "height": 360, "format": "HLS", "acodec": "aac", "abr": 128, "vcodec": "h264"},
|
|
94: {"ext": "mp4", "height": 480, "format": "HLS", "acodec": "aac", "abr": 128, "vcodec": "h264"},
|
|
95: {"ext": "mp4", "height": 720, "format": "HLS", "acodec": "aac", "abr": 256, "vcodec": "h264"},
|
|
96: {"ext": "mp4", "height": 1080, "format": "HLS", "acodec": "aac", "abr": 256, "vcodec": "h264"},
|
|
132: {"ext": "mp4", "height": 240, "format": "HLS", "acodec": "aac", "abr": 48, "vcodec": "h264"},
|
|
151: {"ext": "mp4", "height": 72, "format": "HLS", "acodec": "aac", "abr": 24, "vcodec": "h264"},
|
|
|
|
# DASH mp4 video
|
|
133: {"ext": "mp4", "height": 240, "format": "DASH video", "vcodec": "h264"},
|
|
134: {"ext": "mp4", "height": 360, "format": "DASH video", "vcodec": "h264"},
|
|
135: {"ext": "mp4", "height": 480, "format": "DASH video", "vcodec": "h264"},
|
|
136: {"ext": "mp4", "height": 720, "format": "DASH video", "vcodec": "h264"},
|
|
137: {"ext": "mp4", "height": 1080, "format": "DASH video", "vcodec": "h264"},
|
|
138: {"ext": "mp4", "format": "DASH video", "vcodec": "h264"}, # Height can vary (https://github.com/ytdl-org/youtube-dl/issues/4559)
|
|
160: {"ext": "mp4", "height": 144, "format": "DASH video", "vcodec": "h264"},
|
|
212: {"ext": "mp4", "height": 480, "format": "DASH video", "vcodec": "h264"},
|
|
264: {"ext": "mp4", "height": 1440, "format": "DASH video", "vcodec": "h264"},
|
|
298: {"ext": "mp4", "height": 720, "format": "DASH video", "vcodec": "h264", "fps": 60},
|
|
299: {"ext": "mp4", "height": 1080, "format": "DASH video", "vcodec": "h264", "fps": 60},
|
|
266: {"ext": "mp4", "height": 2160, "format": "DASH video", "vcodec": "h264"},
|
|
|
|
# Dash mp4 audio
|
|
139: {"ext": "m4a", "format": "DASH audio", "acodec": "aac", "abr": 48, "container": "m4a_dash"},
|
|
140: {"ext": "m4a", "format": "DASH audio", "acodec": "aac", "abr": 128, "container": "m4a_dash"},
|
|
141: {"ext": "m4a", "format": "DASH audio", "acodec": "aac", "abr": 256, "container": "m4a_dash"},
|
|
256: {"ext": "m4a", "format": "DASH audio", "acodec": "aac", "container": "m4a_dash"},
|
|
258: {"ext": "m4a", "format": "DASH audio", "acodec": "aac", "container": "m4a_dash"},
|
|
325: {"ext": "m4a", "format": "DASH audio", "acodec": "dtse", "container": "m4a_dash"},
|
|
328: {"ext": "m4a", "format": "DASH audio", "acodec": "ec-3", "container": "m4a_dash"},
|
|
|
|
# Dash webm
|
|
167: {"ext": "webm", "height": 360, "width": 640, "format": "DASH video", "container": "webm", "vcodec": "vp8"},
|
|
168: {"ext": "webm", "height": 480, "width": 854, "format": "DASH video", "container": "webm", "vcodec": "vp8"},
|
|
169: {"ext": "webm", "height": 720, "width": 1280, "format": "DASH video", "container": "webm", "vcodec": "vp8"},
|
|
170: {"ext": "webm", "height": 1080, "width": 1920, "format": "DASH video", "container": "webm", "vcodec": "vp8"},
|
|
218: {"ext": "webm", "height": 480, "width": 854, "format": "DASH video", "container": "webm", "vcodec": "vp8"},
|
|
219: {"ext": "webm", "height": 480, "width": 854, "format": "DASH video", "container": "webm", "vcodec": "vp8"},
|
|
278: {"ext": "webm", "height": 144, "format": "DASH video", "container": "webm", "vcodec": "vp9"},
|
|
242: {"ext": "webm", "height": 240, "format": "DASH video", "vcodec": "vp9"},
|
|
243: {"ext": "webm", "height": 360, "format": "DASH video", "vcodec": "vp9"},
|
|
244: {"ext": "webm", "height": 480, "format": "DASH video", "vcodec": "vp9"},
|
|
245: {"ext": "webm", "height": 480, "format": "DASH video", "vcodec": "vp9"},
|
|
246: {"ext": "webm", "height": 480, "format": "DASH video", "vcodec": "vp9"},
|
|
247: {"ext": "webm", "height": 720, "format": "DASH video", "vcodec": "vp9"},
|
|
248: {"ext": "webm", "height": 1080, "format": "DASH video", "vcodec": "vp9"},
|
|
271: {"ext": "webm", "height": 1440, "format": "DASH video", "vcodec": "vp9"},
|
|
|
|
# itag 272 videos are either 3840x2160 (e.g. RtoitU2A-3E) or 7680x4320 (sLprVF6d7Ug)
|
|
272: {"ext": "webm", "height": 2160, "format": "DASH video", "vcodec": "vp9"},
|
|
302: {"ext": "webm", "height": 720, "format": "DASH video", "vcodec": "vp9", "fps": 60},
|
|
303: {"ext": "webm", "height": 1080, "format": "DASH video", "vcodec": "vp9", "fps": 60},
|
|
308: {"ext": "webm", "height": 1440, "format": "DASH video", "vcodec": "vp9", "fps": 60},
|
|
313: {"ext": "webm", "height": 2160, "format": "DASH video", "vcodec": "vp9"},
|
|
315: {"ext": "webm", "height": 2160, "format": "DASH video", "vcodec": "vp9", "fps": 60},
|
|
330: {"ext": "webm", "height": 144, "format": "DASH video", "vcodec": "vp9", "fps": 60},
|
|
331: {"ext": "webm", "height": 240, "format": "DASH video", "vcodec": "vp9", "fps": 60},
|
|
332: {"ext": "webm", "height": 360, "format": "DASH video", "vcodec": "vp9", "fps": 60},
|
|
333: {"ext": "webm", "height": 480, "format": "DASH video", "vcodec": "vp9", "fps": 60},
|
|
334: {"ext": "webm", "height": 720, "format": "DASH video", "vcodec": "vp9", "fps": 60},
|
|
335: {"ext": "webm", "height": 1080, "format": "DASH video", "vcodec": "vp9", "fps": 60},
|
|
336: {"ext": "webm", "height": 1440, "format": "DASH video", "vcodec": "vp9", "fps": 60},
|
|
337: {"ext": "webm", "height": 2160, "format": "DASH video", "vcodec": "vp9", "fps": 60},
|
|
|
|
# Dash webm audio
|
|
171: {"ext": "webm", "acodec": "vorbis", "format": "DASH audio", "abr": 128},
|
|
172: {"ext": "webm", "acodec": "vorbis", "format": "DASH audio", "abr": 256},
|
|
|
|
# Dash webm audio with opus inside
|
|
249: {"ext": "webm", "format": "DASH audio", "acodec": "opus", "abr": 50},
|
|
250: {"ext": "webm", "format": "DASH audio", "acodec": "opus", "abr": 70},
|
|
251: {"ext": "webm", "format": "DASH audio", "acodec": "opus", "abr": 160},
|
|
|
|
# av01 video only formats sometimes served with "unknown" codecs
|
|
394: {"ext": "mp4", "height": 144, "vcodec": "av01.0.05M.08"},
|
|
395: {"ext": "mp4", "height": 240, "vcodec": "av01.0.05M.08"},
|
|
396: {"ext": "mp4", "height": 360, "vcodec": "av01.0.05M.08"},
|
|
397: {"ext": "mp4", "height": 480, "vcodec": "av01.0.05M.08"},
|
|
} |