Add more formats, examples, and auto-generate the md table aligners.

Thank you /u/rpollost and /u/daraeman.
This commit is contained in:
Ethan Dalool 2020-10-01 10:19:58 -07:00
parent 5647816c86
commit afecf692aa
2 changed files with 187 additions and 149 deletions

View file

@ -11,118 +11,133 @@ Don't forget the magic words like "bestvideo", "bestaudio" to round out your sel
See https://github.com/ytdl-org/youtube-dl/blob/master/README.md#format-selection
There are more formats listed in [youtube-dl's source code](https://github.com/ytdl-org/youtube-dl/blob/eb6181759f3a784d7b77ec9d2ec1a65dfd695d92/youtube_dl/extractor/youtube.py#L430),
but some of them seem to be obsolete and are no longer returned by `-F`
even when using the example video IDs listed there. I will only include
codes for which I have an example.
## Video formats
id|quality|codec
-:|-:|-:
571|4320p60|AV1
272|4320p30|VP9
337|2160p60 HDR|VP9
401|2160p60|AV1
315|2160p60|VP9
313|2160p30|VP9
336|1440p60 HDR|VP9
400|1440p60|AV1
308|1440p60|VP9
271|1440p30|VP9
335|1080p60 HDR|VP9
399|1080p60|AV1
299|1080p60|AVC
303|1080p60|VP9
137|1080p30|AVC
248|1080p30|VP9
334|720p60 HDR|VP9
398|720p60|AV1
298|720p60|AVC
302|720p60|VP9
136|720p30|AVC
247|720p30|VP9
333|480p60 HDR|VP9
397|480p30|AV1
135|480p30|AVC
244|480p30|VP9
332|360p60 HDR|VP9
396|360p30|AV1
134|360p30|AVC
243|360p30|VP9
331|240p60 HDR|VP9
395|240p30|AV1
133|240p30|AVC
242|240p30|VP9
330|144p60 HDR|VP9
394|144p30|AV1
160|144p30|AVC
278|144p30|VP9
id | quality | codec | examples
-: | -: | -: | :-
571|4320p60|AV1|`youtube-dl -F kFz9afj8lu0 1La4QzGeaaQ`
272|4320p30|VP9|`youtube-dl -F i6fWG4FxDZw`
337|2160p60 HDR|VP9|`youtube-dl -F 1La4QzGeaaQ`
401|2160p60|AV1|`youtube-dl -F kFz9afj8lu0 1La4QzGeaaQ`
305|2160p60|AVC|`youtube-dl -F -xNN-bJQ4vI`
315|2160p60|VP9|`youtube-dl -F 1La4QzGeaaQ -xNN-bJQ4vI`
266|2160p30|AVC|`youtube-dl -F -xNN-bJQ4vI i6fWG4FxDZw`
313|2160p30|VP9|`youtube-dl -F kFz9afj8lu0 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw`
336|1440p60 HDR|VP9|`youtube-dl -F 1La4QzGeaaQ`
400|1440p60|AV1|`youtube-dl -F kFz9afj8lu0 1La4QzGeaaQ`
304|1440p60|AVC|`youtube-dl -F -xNN-bJQ4vI`
308|1440p60|VP9|`youtube-dl -F 1La4QzGeaaQ -xNN-bJQ4vI`
264|1440p30|AVC|`youtube-dl -F -xNN-bJQ4vI i6fWG4FxDZw`
271|1440p30|VP9|`youtube-dl -F kFz9afj8lu0 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw`
335|1080p60 HDR|VP9|`youtube-dl -F 1La4QzGeaaQ`
399|1080p60|AV1|`youtube-dl -F 1La4QzGeaaQ`
299|1080p60|AVC|`youtube-dl -F 1La4QzGeaaQ -xNN-bJQ4vI`
303|1080p60|VP9|`youtube-dl -F 1La4QzGeaaQ -xNN-bJQ4vI`
137|1080p30|AVC|`youtube-dl -F S8Zt6cB_NPU 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw`
248|1080p30|VP9|`youtube-dl -F S8Zt6cB_NPU 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw`
334|720p60 HDR|VP9|`youtube-dl -F 1La4QzGeaaQ`
398|720p60|AV1|`youtube-dl -F 1La4QzGeaaQ`
298|720p60|AVC|`youtube-dl -F 1La4QzGeaaQ -xNN-bJQ4vI`
302|720p60|VP9|`youtube-dl -F 1La4QzGeaaQ -xNN-bJQ4vI`
136|720p30|AVC|`youtube-dl -F S8Zt6cB_NPU 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw`
247|720p30|VP9|`youtube-dl -F S8Zt6cB_NPU 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw`
333|480p60 HDR|VP9|`youtube-dl -F 1La4QzGeaaQ`
397|480p30|AV1|`youtube-dl -F S8Zt6cB_NPU 1La4QzGeaaQ`
135|480p30|AVC|`youtube-dl -F S8Zt6cB_NPU 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw`
244|480p30|VP9|`youtube-dl -F S8Zt6cB_NPU 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw`
332|360p60 HDR|VP9|`youtube-dl -F 1La4QzGeaaQ`
396|360p30|AV1|`youtube-dl -F S8Zt6cB_NPU 1La4QzGeaaQ`
134|360p30|AVC|`youtube-dl -F S8Zt6cB_NPU 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw`
243|360p30|VP9|`youtube-dl -F S8Zt6cB_NPU 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw`
331|240p60 HDR|VP9|`youtube-dl -F 1La4QzGeaaQ`
395|240p30|AV1|`youtube-dl -F S8Zt6cB_NPU 1La4QzGeaaQ`
133|240p30|AVC|`youtube-dl -F S8Zt6cB_NPU 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw`
242|240p30|VP9|`youtube-dl -F S8Zt6cB_NPU 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw`
330|144p60 HDR|VP9|`youtube-dl -F 1La4QzGeaaQ`
394|144p30|AV1|`youtube-dl -F S8Zt6cB_NPU 1La4QzGeaaQ`
160|144p30|AVC|`youtube-dl -F S8Zt6cB_NPU 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw`
278|144p30|VP9|`youtube-dl -F S8Zt6cB_NPU 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw`
### AVC only
id|quality|codec
-:|-:|-:
299|1080p60|AVC
137|1080p30|AVC
298|720p60|AVC
136|720p30|AVC
135|480p30|AVC
134|360p30|AVC
133|240p30|AVC
160|144p30|AVC
id | quality | codec | examples
-: | -: | -: | :-
305|2160p60|AVC|`youtube-dl -F -xNN-bJQ4vI`
266|2160p30|AVC|`youtube-dl -F -xNN-bJQ4vI i6fWG4FxDZw`
304|1440p60|AVC|`youtube-dl -F -xNN-bJQ4vI`
264|1440p30|AVC|`youtube-dl -F -xNN-bJQ4vI i6fWG4FxDZw`
299|1080p60|AVC|`youtube-dl -F 1La4QzGeaaQ -xNN-bJQ4vI`
137|1080p30|AVC|`youtube-dl -F S8Zt6cB_NPU 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw`
298|720p60|AVC|`youtube-dl -F 1La4QzGeaaQ -xNN-bJQ4vI`
136|720p30|AVC|`youtube-dl -F S8Zt6cB_NPU 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw`
135|480p30|AVC|`youtube-dl -F S8Zt6cB_NPU 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw`
134|360p30|AVC|`youtube-dl -F S8Zt6cB_NPU 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw`
133|240p30|AVC|`youtube-dl -F S8Zt6cB_NPU 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw`
160|144p30|AVC|`youtube-dl -F S8Zt6cB_NPU 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw`
### VP9 only
id|quality|codec
-:|-:|-:
272|4320p30|VP9
337|2160p60 HDR|VP9
315|2160p60|VP9
313|2160p30|VP9
336|1440p60 HDR|VP9
308|1440p60|VP9
271|1440p30|VP9
335|1080p60 HDR|VP9
303|1080p60|VP9
248|1080p30|VP9
334|720p60 HDR|VP9
302|720p60|VP9
247|720p30|VP9
333|480p60 HDR|VP9
244|480p30|VP9
332|360p60 HDR|VP9
243|360p30|VP9
331|240p60 HDR|VP9
242|240p30|VP9
330|144p60 HDR|VP9
278|144p30|VP9
id | quality | codec | examples
-: | -: | -: | :-
272|4320p30|VP9|`youtube-dl -F i6fWG4FxDZw`
337|2160p60 HDR|VP9|`youtube-dl -F 1La4QzGeaaQ`
315|2160p60|VP9|`youtube-dl -F 1La4QzGeaaQ -xNN-bJQ4vI`
313|2160p30|VP9|`youtube-dl -F kFz9afj8lu0 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw`
336|1440p60 HDR|VP9|`youtube-dl -F 1La4QzGeaaQ`
308|1440p60|VP9|`youtube-dl -F 1La4QzGeaaQ -xNN-bJQ4vI`
271|1440p30|VP9|`youtube-dl -F kFz9afj8lu0 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw`
335|1080p60 HDR|VP9|`youtube-dl -F 1La4QzGeaaQ`
303|1080p60|VP9|`youtube-dl -F 1La4QzGeaaQ -xNN-bJQ4vI`
248|1080p30|VP9|`youtube-dl -F S8Zt6cB_NPU 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw`
334|720p60 HDR|VP9|`youtube-dl -F 1La4QzGeaaQ`
302|720p60|VP9|`youtube-dl -F 1La4QzGeaaQ -xNN-bJQ4vI`
247|720p30|VP9|`youtube-dl -F S8Zt6cB_NPU 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw`
333|480p60 HDR|VP9|`youtube-dl -F 1La4QzGeaaQ`
244|480p30|VP9|`youtube-dl -F S8Zt6cB_NPU 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw`
332|360p60 HDR|VP9|`youtube-dl -F 1La4QzGeaaQ`
243|360p30|VP9|`youtube-dl -F S8Zt6cB_NPU 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw`
331|240p60 HDR|VP9|`youtube-dl -F 1La4QzGeaaQ`
242|240p30|VP9|`youtube-dl -F S8Zt6cB_NPU 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw`
330|144p60 HDR|VP9|`youtube-dl -F 1La4QzGeaaQ`
278|144p30|VP9|`youtube-dl -F S8Zt6cB_NPU 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw`
### AV1 only
id|quality|codec
-:|-:|-:
571|4320p60|AV1
401|2160p60|AV1
400|1440p60|AV1
399|1080p60|AV1
398|720p60|AV1
397|480p30|AV1
396|360p30|AV1
395|240p30|AV1
394|144p30|AV1
id | quality | codec | examples
-: | -: | -: | :-
571|4320p60|AV1|`youtube-dl -F kFz9afj8lu0 1La4QzGeaaQ`
401|2160p60|AV1|`youtube-dl -F kFz9afj8lu0 1La4QzGeaaQ`
400|1440p60|AV1|`youtube-dl -F kFz9afj8lu0 1La4QzGeaaQ`
399|1080p60|AV1|`youtube-dl -F 1La4QzGeaaQ`
398|720p60|AV1|`youtube-dl -F 1La4QzGeaaQ`
397|480p30|AV1|`youtube-dl -F S8Zt6cB_NPU 1La4QzGeaaQ`
396|360p30|AV1|`youtube-dl -F S8Zt6cB_NPU 1La4QzGeaaQ`
395|240p30|AV1|`youtube-dl -F S8Zt6cB_NPU 1La4QzGeaaQ`
394|144p30|AV1|`youtube-dl -F S8Zt6cB_NPU 1La4QzGeaaQ`
## Audio formats
id|quality|codec
-:|-:|-:
251|160k|Opus
140|130k|m4a
250|70k|Opus
249|50k|Opus
id | quality | codec | examples
-: | -: | -: | :-
258|386k|m4a|`youtube-dl -F NMANRHz4UAY`
256|195k|m4a|`youtube-dl -F NMANRHz4UAY`
251|160k|Opus|`youtube-dl -F S8Zt6cB_NPU`
140|128k|m4a|`youtube-dl -F S8Zt6cB_NPU`
250|70k|Opus|`youtube-dl -F S8Zt6cB_NPU`
249|50k|Opus|`youtube-dl -F S8Zt6cB_NPU`
## Combined formats
id|quality|codec
-:|-:|-:
22|720p30|AVC+m4a
18|360p30|AVC+m4a
id | quality | codec | examples
-: | -: | -: | :-
22|720p30|AVC+m4a|`youtube-dl -F S8Zt6cB_NPU`
18|360p30|AVC+m4a|`youtube-dl -F S8Zt6cB_NPU`
This document is generated [programmatically](youtubedl_formats.sql) (with the manual addition of :- for md tables).
This document is generated [programmatically](youtubedl_formats.sql).
sqlite3 :memory: ".read youtubedl_formats.sql" > youtubedl_formats.md

View file

@ -1,51 +1,57 @@
CREATE TABLE formats(id TEXT, kind TEXT, quality TEXT, codec TEXT);
CREATE TABLE formats(id TEXT, kind TEXT, quality TEXT, codec TEXT, examples TEXT);
INSERT INTO formats VALUES
('18', 'Combined', '360p30', 'AVC+m4a'),
('22', 'Combined', '720p30', 'AVC+m4a'),
('133', 'Video', '240p30', 'AVC'),
('134', 'Video', '360p30', 'AVC'),
('135', 'Video', '480p30', 'AVC'),
('136', 'Video', '720p30', 'AVC'),
('137', 'Video', '1080p30', 'AVC'),
('140', 'Audio', '130k', 'm4a'),
('160', 'Video', '144p30', 'AVC'),
('242', 'Video', '240p30', 'VP9'),
('243', 'Video', '360p30', 'VP9'),
('244', 'Video', '480p30', 'VP9'),
('247', 'Video', '720p30', 'VP9'),
('248', 'Video', '1080p30', 'VP9'),
('249', 'Audio', '50k', 'Opus'),
('250', 'Audio', '70k', 'Opus'),
('251', 'Audio', '160k', 'Opus'),
('271', 'Video', '1440p30', 'VP9'),
('272', 'Video', '4320p30', 'VP9'),
('278', 'Video', '144p30', 'VP9'),
('298', 'Video', '720p60', 'AVC'),
('299', 'Video', '1080p60', 'AVC'),
('302', 'Video', '720p60', 'VP9'),
('303', 'Video', '1080p60', 'VP9'),
('308', 'Video', '1440p60', 'VP9'),
('313', 'Video', '2160p30', 'VP9'),
('315', 'Video', '2160p60', 'VP9'),
('330', 'Video', '144p60 HDR', 'VP9'),
('331', 'Video', '240p60 HDR', 'VP9'),
('332', 'Video', '360p60 HDR', 'VP9'),
('333', 'Video', '480p60 HDR', 'VP9'),
('334', 'Video', '720p60 HDR', 'VP9'),
('335', 'Video', '1080p60 HDR', 'VP9'),
('336', 'Video', '1440p60 HDR', 'VP9'),
('337', 'Video', '2160p60 HDR', 'VP9'),
('394', 'Video', '144p30', 'AV1'),
('395', 'Video', '240p30', 'AV1'),
('396', 'Video', '360p30', 'AV1'),
('397', 'Video', '480p30', 'AV1'),
('398', 'Video', '720p60', 'AV1'),
('399', 'Video', '1080p60', 'AV1'),
('400', 'Video', '1440p60', 'AV1'),
('401', 'Video', '2160p60', 'AV1'),
('571', 'Video', '4320p60', 'AV1');
('18', 'Combined', '360p30', 'AVC+m4a', 'S8Zt6cB_NPU'),
('22', 'Combined', '720p30', 'AVC+m4a', 'S8Zt6cB_NPU'),
('133', 'Video', '240p30', 'AVC', 'S8Zt6cB_NPU 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw'),
('134', 'Video', '360p30', 'AVC', 'S8Zt6cB_NPU 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw'),
('135', 'Video', '480p30', 'AVC', 'S8Zt6cB_NPU 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw'),
('136', 'Video', '720p30', 'AVC', 'S8Zt6cB_NPU 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw'),
('137', 'Video', '1080p30', 'AVC', 'S8Zt6cB_NPU 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw'),
('140', 'Audio', '128k', 'm4a', 'S8Zt6cB_NPU'),
('160', 'Video', '144p30', 'AVC', 'S8Zt6cB_NPU 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw'),
('242', 'Video', '240p30', 'VP9', 'S8Zt6cB_NPU 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw'),
('243', 'Video', '360p30', 'VP9', 'S8Zt6cB_NPU 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw'),
('244', 'Video', '480p30', 'VP9', 'S8Zt6cB_NPU 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw'),
('247', 'Video', '720p30', 'VP9', 'S8Zt6cB_NPU 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw'),
('248', 'Video', '1080p30', 'VP9', 'S8Zt6cB_NPU 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw'),
('249', 'Audio', '50k', 'Opus', 'S8Zt6cB_NPU'),
('250', 'Audio', '70k', 'Opus', 'S8Zt6cB_NPU'),
('251', 'Audio', '160k', 'Opus', 'S8Zt6cB_NPU'),
('256', 'Audio', '195k', 'm4a', 'NMANRHz4UAY'),
('258', 'Audio', '386k', 'm4a', 'NMANRHz4UAY'),
('264', 'Video', '1440p30', 'AVC', '-xNN-bJQ4vI i6fWG4FxDZw'),
('266', 'Video', '2160p30', 'AVC', '-xNN-bJQ4vI i6fWG4FxDZw'),
('271', 'Video', '1440p30', 'VP9', 'kFz9afj8lu0 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw'),
('272', 'Video', '4320p30', 'VP9', 'i6fWG4FxDZw'),
('278', 'Video', '144p30', 'VP9', 'S8Zt6cB_NPU 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw'),
('298', 'Video', '720p60', 'AVC', '1La4QzGeaaQ -xNN-bJQ4vI'),
('299', 'Video', '1080p60', 'AVC', '1La4QzGeaaQ -xNN-bJQ4vI'),
('302', 'Video', '720p60', 'VP9', '1La4QzGeaaQ -xNN-bJQ4vI'),
('303', 'Video', '1080p60', 'VP9', '1La4QzGeaaQ -xNN-bJQ4vI'),
('304', 'Video', '1440p60', 'AVC', '-xNN-bJQ4vI'),
('305', 'Video', '2160p60', 'AVC', '-xNN-bJQ4vI'),
('308', 'Video', '1440p60', 'VP9', '1La4QzGeaaQ -xNN-bJQ4vI'),
('313', 'Video', '2160p30', 'VP9', 'kFz9afj8lu0 1La4QzGeaaQ -xNN-bJQ4vI i6fWG4FxDZw'),
('315', 'Video', '2160p60', 'VP9', '1La4QzGeaaQ -xNN-bJQ4vI'),
('330', 'Video', '144p60 HDR', 'VP9', '1La4QzGeaaQ'),
('331', 'Video', '240p60 HDR', 'VP9', '1La4QzGeaaQ'),
('332', 'Video', '360p60 HDR', 'VP9', '1La4QzGeaaQ'),
('333', 'Video', '480p60 HDR', 'VP9', '1La4QzGeaaQ'),
('334', 'Video', '720p60 HDR', 'VP9', '1La4QzGeaaQ'),
('335', 'Video', '1080p60 HDR', 'VP9', '1La4QzGeaaQ'),
('336', 'Video', '1440p60 HDR', 'VP9', '1La4QzGeaaQ'),
('337', 'Video', '2160p60 HDR', 'VP9', '1La4QzGeaaQ'),
('394', 'Video', '144p30', 'AV1', 'S8Zt6cB_NPU 1La4QzGeaaQ'),
('395', 'Video', '240p30', 'AV1', 'S8Zt6cB_NPU 1La4QzGeaaQ'),
('396', 'Video', '360p30', 'AV1', 'S8Zt6cB_NPU 1La4QzGeaaQ'),
('397', 'Video', '480p30', 'AV1', 'S8Zt6cB_NPU 1La4QzGeaaQ'),
('398', 'Video', '720p60', 'AV1', '1La4QzGeaaQ'),
('399', 'Video', '1080p60', 'AV1', '1La4QzGeaaQ'),
('400', 'Video', '1440p60', 'AV1', 'kFz9afj8lu0 1La4QzGeaaQ'),
('401', 'Video', '2160p60', 'AV1', 'kFz9afj8lu0 1La4QzGeaaQ'),
('571', 'Video', '4320p60', 'AV1', 'kFz9afj8lu0 1La4QzGeaaQ');
.headers on
.headers off
.print Youtube-dl format code cheatsheet
.print =================================
@ -57,41 +63,58 @@ INSERT INTO formats VALUES
.print You can pass them to youtube-dl as `--format a+b/c+d/e`,
.print where a+b is your preferred video+audio pair, c+d is your second-best
.print preference, and e is your last resort.
.print "Don't forget the magic words like \"bestvideo\", \"bestaudio\" to round out your selection."
.print Don't forget the magic words like \"bestvideo\", \"bestaudio\" to round out your selection.
.print
.print See https://github.com/ytdl-org/youtube-dl/blob/master/README.md#format-selection
.print
.print There are more formats listed in [youtube-dl's source code](https://github.com/ytdl-org/youtube-dl/blob/eb6181759f3a784d7b77ec9d2ec1a65dfd695d92/youtube_dl/extractor/youtube.py#L430),
.print but some of them seem to be obsolete and are no longer returned by `-F`
.print even when using the example video IDs listed there. I will only include
.print codes for which I have an example.
.print
.print ## Video formats
.print
SELECT id, quality, codec FROM formats WHERE kind == "Video" ORDER BY CAST(quality AS DECIMAL) DESC, quality DESC, codec ASC;
.print id | quality | codec | examples
.print -: | -: | -: | :-
SELECT id, quality, codec, "`youtube-dl -F "||examples||"`" FROM formats WHERE kind == "Video" ORDER BY CAST(quality AS DECIMAL) DESC, quality DESC, codec ASC;
.print
.print ### AVC only
.print
SELECT id, quality, codec FROM formats WHERE codec == "AVC" ORDER BY CAST(quality AS DECIMAL) DESC, quality DESC;
.print id | quality | codec | examples
.print -: | -: | -: | :-
SELECT id, quality, codec, "`youtube-dl -F "||examples||"`" FROM formats WHERE codec == "AVC" ORDER BY CAST(quality AS DECIMAL) DESC, quality DESC;
.print
.print ### VP9 only
.print
SELECT id, quality, codec FROM formats WHERE codec == "VP9" ORDER BY CAST(quality AS DECIMAL) DESC, quality DESC;
.print id | quality | codec | examples
.print -: | -: | -: | :-
SELECT id, quality, codec, "`youtube-dl -F "||examples||"`" FROM formats WHERE codec == "VP9" ORDER BY CAST(quality AS DECIMAL) DESC, quality DESC;
.print
.print ### AV1 only
.print
SELECT id, quality, codec FROM formats WHERE codec == "AV1" ORDER BY CAST(quality AS DECIMAL) DESC, quality DESC;
.print id | quality | codec | examples
.print -: | -: | -: | :-
SELECT id, quality, codec, "`youtube-dl -F "||examples||"`" FROM formats WHERE codec == "AV1" ORDER BY CAST(quality AS DECIMAL) DESC, quality DESC;
.print
.print ## Audio formats
.print
SELECT id, quality, codec FROM formats WHERE kind == "Audio" ORDER BY CAST(quality AS DECIMAL) DESC, quality DESC, codec ASC;
.print id | quality | codec | examples
.print -: | -: | -: | :-
SELECT id, quality, codec, "`youtube-dl -F "||examples||"`" FROM formats WHERE kind == "Audio" ORDER BY CAST(quality AS DECIMAL) DESC, quality DESC, codec ASC;
.print
.print ## Combined formats
.print
SELECT id, quality, codec FROM formats WHERE kind == "Combined" ORDER BY CAST(quality AS DECIMAL) DESC, quality DESC, codec ASC;
.print id | quality | codec | examples
.print -: | -: | -: | :-
SELECT id, quality, codec, "`youtube-dl -F "||examples||"`" FROM formats WHERE kind == "Combined" ORDER BY CAST(quality AS DECIMAL) DESC, quality DESC, codec ASC;
.print
.print This document is generated [programmatically](youtubedl_formats.sql) (with the manual addition of :- for md tables).
.print This document is generated [programmatically](youtubedl_formats.sql).
.print
.print " sqlite3 :memory: \".read youtubedl_formats.sql\" > youtubedl_formats.md"