]> jfr.im git - yt-dlp.git/commitdiff
Deprecate unnecessary aliases in `formatSort`
authorpukkandan <redacted>
Thu, 21 Jan 2021 12:50:09 +0000 (18:20 +0530)
committerpukkandan <redacted>
Thu, 21 Jan 2021 13:35:57 +0000 (19:05 +0530)
(I should never have made so many aliases in the first-place)
The aliases remain functional for backward compatability, but will be left undocumented

README.md
youtube_dlc/YoutubeDL.py
youtube_dlc/extractor/common.py

index e7f3762bfd1d0078129f014f23f33d3ecc11a661..643b53349df5aac9f19566d77c4a5efe4233cbf8 100644 (file)
--- a/README.md
+++ b/README.md
@@ -916,35 +916,35 @@ ## Sorting Formats
 
 You can change the criteria for being considered the `best` by using `-S` (`--format-sort`). The general format for this is `--format-sort field1,field2...`. The available fields are:
 
- - `video`, `has_video`: Gives priority to formats that has a video stream
- - `audio`, `has_audio`: Gives priority to formats that has a audio stream
- - `extractor`, `preference`, `extractor_preference`: The format preference as given by the extractor
- - `lang`, `language_preference`: Language preference as given by the extractor
+ - `hasvid`: Gives priority to formats that has a video stream
+ - `hasaud`: Gives priority to formats that has a audio stream
+ - `ie_pref`: The format preference as given by the extractor
+ - `lang`: Language preference as given by the extractor
  - `quality`: The quality of the format. This is a metadata field available in some websites
- - `source`, `source_preference`: Preference of the source as given by the extractor
- - `proto`, `protocol`: Protocol used for download (`https`/`ftps` > `http`/`ftp` > `m3u8-native` > `m3u8` > `http-dash-segments` > other > `mms`/`rtsp` > unknown > `f4f`/`f4m`)
- - `vcodec`, `video_codec`: Video Codec (`vp9` > `h265` > `h264` > `vp8` > `h263` > `theora` > other > unknown)
- - `acodec`, `audio_codec`: Audio Codec (`opus` > `vorbis` > `aac` > `mp4a` > `mp3` > `ac3` > `dts` > other > unknown)
+ - `source`: Preference of the source as given by the extractor
+ - `proto`: Protocol used for download (`https`/`ftps` > `http`/`ftp` > `m3u8-native` > `m3u8` > `http-dash-segments` > other > `mms`/`rtsp` > unknown > `f4f`/`f4m`)
+ - `vcodec`: Video Codec (`vp9` > `h265` > `h264` > `vp8` > `h263` > `theora` > other > unknown)
+ - `acodec`: Audio Codec (`opus` > `vorbis` > `aac` > `mp4a` > `mp3` > `ac3` > `dts` > other > unknown)
  - `codec`: Equivalent to `vcodec,acodec`
- - `vext`, `video_ext`: Video Extension (`mp4` > `webm` > `flv` > other > unknown). If `--prefer-free-formats` is used, `webm` is prefered.
- - `aext`, `audio_ext`: Audio Extension (`m4a` > `aac` > `mp3` > `ogg` > `opus` > `webm` > other > unknown). If `--prefer-free-formats` is used, the order changes to `opus` > `ogg` > `webm` > `m4a` > `mp3` > `aac`.
- - `ext`, `extension`: Equivalent to `vext,aext`
+ - `vext`: Video Extension (`mp4` > `webm` > `flv` > other > unknown). If `--prefer-free-formats` is used, `webm` is prefered.
+ - `aext`: Audio Extension (`m4a` > `aac` > `mp3` > `ogg` > `opus` > `webm` > other > unknown). If `--prefer-free-formats` is used, the order changes to `opus` > `ogg` > `webm` > `m4a` > `mp3` > `aac`.
+ - `ext`: Equivalent to `vext,aext`
  - `filesize`: Exact filesize, if know in advance. This will be unavailable for mu38 and DASH formats.
- - `filesize_approx`: Approximate filesize calculated from the manifests
- - `size`, `filesize_estimate`: Exact filesize if available, otherwise approximate filesize
+ - `fs_approx`: Approximate filesize calculated from the manifests
+ - `size`: Exact filesize if available, otherwise approximate filesize
  - `height`: Height of video
  - `width`: Width of video
- - `res`, `dimension`: Video resolution, calculated as the smallest dimension.
- - `fps`, `framerate`: Framerate of video
- - `tbr`, `total_bitrate`: Total average bitrate in KBit/s
- - `vbr`, `video_bitrate`: Average video bitrate in KBit/s
- - `abr`, `audio_bitrate`: Average audio bitrate in KBit/s
- - `br`, `bitrate`: Equivalent to using `tbr,vbr,abr`
- - `samplerate`, `asr`: Audio sample rate in Hz
+ - `res`: Video resolution, calculated as the smallest dimension.
+ - `fps`: Framerate of video
+ - `tbr`: Total average bitrate in KBit/s
+ - `vbr`: Average video bitrate in KBit/s
+ - `abr`: Average audio bitrate in KBit/s
+ - `br`: Equivalent to using `tbr,vbr,abr`
+ - `asr`: Audio sample rate in Hz
 
 Note that any other **numerical** field made available by the extractor can also be used. All fields, unless specified otherwise, are sorted in decending order. To reverse this, prefix the field with a `+`. Eg: `+res` prefers format with the smallest resolution. Additionally, you can suffix a prefered value for the fields, seperated by a `:`. Eg: `res:720` prefers larger videos, but no larger than 720p and the smallest video if there are no videos less than 720p. For `codec` and `ext`, you can provide two prefered values, the first for video and the second for audio. Eg: `+codec:avc:m4a` (equivalent to `+vcodec:avc,+acodec:m4a`) sets the video codec preference to `h264` > `h265` > `vp9` > `vp8` > `h263` > `theora` and audio codec preference to `mp4a` > `aac` > `vorbis` > `opus` > `mp3` > `ac3` > `dts`. You can also make the sorting prefer the nearest values to the provided by using `~` as the delimiter. Eg: `filesize~1G` prefers the format with filesize closest to 1 GiB.
 
-The fields `has_video`, `extractor`, `lang`, `quality` are always given highest priority in sorting, irrespective of the user-defined order. This behaviour can be changed by using `--force-format-sort`. Apart from these, the default order used is: `res,fps,codec,size,br,asr,proto,ext,has_audio,source,format_id`. Note that the extractors may override this default order, but they cannot override the user-provided order.
+The fields `hasvid`, `ie_pref`, `lang`, `quality` are always given highest priority in sorting, irrespective of the user-defined order. This behaviour can be changed by using `--force-format-sort`. Apart from these, the default order used is: `res,fps,codec,size,br,asr,proto,ext,hasaud,source,id`. Note that the extractors may override this default order, but they cannot override the user-provided order.
 
 If your format selector is `worst`, the last item is selected after sorting. This means it will select the format that is worst in all repects. Most of the time, what you actually want is the video with the smallest filesize instead. So it is generally better to use `-f best -S +size,+br,+res,+fps`.
 
@@ -983,7 +983,7 @@ # Download the best video available but with the smallest resolution
 $ youtube-dlc -S '+res'
 
 # Download the smallest video available
-$ youtube-dlc -S '+size,+bitrate'
+$ youtube-dlc -S '+size,+br'
 
 
 
@@ -1031,7 +1031,7 @@ # or the best video available via any protocol if there is no such video
 
 # Download best video available via the best protocol
 # (https/ftps > http/ftp > m3u8_native > m3u8 > http_dash_segments ...)
-$ youtube-dlc -S 'protocol'
+$ youtube-dlc -S 'proto'
 
 
 
index 867f3a61a4dbc635eee288bd3ff420927f1e7977..41f4360862004ba407b7513eb22de0f2e7276713 100644 (file)
@@ -886,8 +886,8 @@ def extract_info(self, url, download=True, ie_key=None, info_dict=None, extra_in
 
             try:
                 temp_id = str_or_none(
-                  ie.extract_id(url) if callable(getattr(ie, 'extract_id', None))
-                  else ie._match_id(url))
+                    ie.extract_id(url) if callable(getattr(ie, 'extract_id', None))
+                    else ie._match_id(url))
             except (AssertionError, IndexError, AttributeError):
                 temp_id = None
             if temp_id is not None and self.in_download_archive({'id': temp_id, 'ie_key': ie_key}):
index d06043f5e001d063eeb8e2d7560d4536335e059f..d14517b546699f0e4cabb40e2c455442a44385fd 100644 (file)
@@ -1375,8 +1375,8 @@ class FormatSort:
                        'order': ['vp9', '(h265|he?vc?)', '(h264|avc)', 'vp8', '(mp4v|h263)', 'theora', '', None, 'none']},
             'acodec': {'type': 'ordered', 'regex': True,
                        'order': ['opus', 'vorbis', 'aac', 'mp?4a?', 'mp3', 'e?a?c-?3', 'dts', '', None, 'none']},
-            'protocol': {'type': 'ordered', 'regex': True,
-                         'order': ['(ht|f)tps', '(ht|f)tp$', 'm3u8.+', 'm3u8', '.*dash', '', 'mms|rtsp', 'none', 'f4']},
+            'proto': {'type': 'ordered', 'regex': True,
+                      'order': ['(ht|f)tps', '(ht|f)tp$', 'm3u8.+', 'm3u8', '.*dash', '', 'mms|rtsp', 'none', 'f4']},
             'vext': {'type': 'ordered', 'field': 'video_ext',
                      'order': ('mp4', 'webm', 'flv', '', 'none'),
                      'order_free': ('webm', 'mp4', 'flv', '', 'none')},
@@ -1384,14 +1384,14 @@ class FormatSort:
                      'order': ('m4a', 'aac', 'mp3', 'ogg', 'opus', 'webm', '', 'none'),
                      'order_free': ('opus', 'ogg', 'webm', 'm4a', 'mp3', 'aac', '', 'none')},
             'hidden': {'visible': False, 'forced': True, 'type': 'extractor', 'max': -1000},
-            'extractor_preference': {'priority': True, 'type': 'extractor'},
-            'has_video': {'priority': True, 'field': 'vcodec', 'type': 'boolean', 'not_in_list': ('none',)},
-            'has_audio': {'field': 'acodec', 'type': 'boolean', 'not_in_list': ('none',)},
-            'language_preference': {'priority': True, 'convert': 'ignore'},
+            'ie_pref': {'priority': True, 'type': 'extractor'},
+            'hasvid': {'priority': True, 'field': 'vcodec', 'type': 'boolean', 'not_in_list': ('none',)},
+            'hasaud': {'field': 'acodec', 'type': 'boolean', 'not_in_list': ('none',)},
+            'lang': {'priority': True, 'convert': 'ignore'},
             'quality': {'priority': True, 'convert': 'float_none'},
             'filesize': {'convert': 'bytes'},
-            'filesize_approx': {'convert': 'bytes'},
-            'format_id': {'convert': 'string'},
+            'fs_approx': {'convert': 'bytes'},
+            'id': {'convert': 'string'},
             'height': {'convert': 'float_none'},
             'width': {'convert': 'float_none'},
             'fps': {'convert': 'float_none'},
@@ -1399,32 +1399,42 @@ class FormatSort:
             'vbr': {'convert': 'float_none'},
             'abr': {'convert': 'float_none'},
             'asr': {'convert': 'float_none'},
-            'source_preference': {'convert': 'ignore'},
+            'source': {'convert': 'ignore'},
+
             'codec': {'type': 'combined', 'field': ('vcodec', 'acodec')},
-            'bitrate': {'type': 'combined', 'field': ('tbr', 'vbr', 'abr'), 'same_limit': True},
-            'filesize_estimate': {'type': 'combined', 'same_limit': True, 'field': ('filesize', 'filesize_approx')},
-            'extension': {'type': 'combined', 'field': ('vext', 'aext')},
-            'dimension': {'type': 'multiple', 'field': ('height', 'width'), 'function': min},  # not named as 'resolution' because such a field exists
-            'res': {'type': 'alias', 'field': 'dimension'},
-            'ext': {'type': 'alias', 'field': 'extension'},
-            'br': {'type': 'alias', 'field': 'bitrate'},
+            'br': {'type': 'combined', 'field': ('tbr', 'vbr', 'abr'), 'same_limit': True},
+            'size': {'type': 'combined', 'same_limit': True, 'field': ('filesize', 'fs_approx')},
+            'ext': {'type': 'combined', 'field': ('vext', 'aext')},
+            'res': {'type': 'multiple', 'field': ('height', 'width'), 'function': min},
+
+            # Most of these exist only for compatibility reasons
+            'dimension': {'type': 'alias', 'field': 'res'},
+            'resolution': {'type': 'alias', 'field': 'res'},
+            'extension': {'type': 'alias', 'field': 'ext'},
+            'bitrate': {'type': 'alias', 'field': 'br'},
             'total_bitrate': {'type': 'alias', 'field': 'tbr'},
             'video_bitrate': {'type': 'alias', 'field': 'vbr'},
             'audio_bitrate': {'type': 'alias', 'field': 'abr'},
             'framerate': {'type': 'alias', 'field': 'fps'},
-            'lang': {'type': 'alias', 'field': 'language_preference'},  # not named as 'language' because such a field exists
-            'proto': {'type': 'alias', 'field': 'protocol'},
-            'source': {'type': 'alias', 'field': 'source_preference'},
-            'size': {'type': 'alias', 'field': 'filesize_estimate'},
+            'language_preference': {'type': 'alias', 'field': 'lang'},  # not named as 'language' because such a field exists
+            'protocol': {'type': 'alias', 'field': 'proto'},
+            'source_preference': {'type': 'alias', 'field': 'source'},
+            'filesize_approx': {'type': 'alias', 'field': 'fs_approx'},
+            'filesize_estimate': {'type': 'alias', 'field': 'size'},
             'samplerate': {'type': 'alias', 'field': 'asr'},
             'video_ext': {'type': 'alias', 'field': 'vext'},
             'audio_ext': {'type': 'alias', 'field': 'aext'},
             'video_codec': {'type': 'alias', 'field': 'vcodec'},
             'audio_codec': {'type': 'alias', 'field': 'acodec'},
-            'video': {'type': 'alias', 'field': 'has_video'},
-            'audio': {'type': 'alias', 'field': 'has_audio'},
-            'extractor': {'type': 'alias', 'field': 'extractor_preference'},
-            'preference': {'type': 'alias', 'field': 'extractor_preference'}}
+            'video': {'type': 'alias', 'field': 'hasvid'},
+            'has_video': {'type': 'alias', 'field': 'hasvid'},
+            'audio': {'type': 'alias', 'field': 'hasaud'},
+            'has_audio': {'type': 'alias', 'field': 'hasaud'},
+            'extractor': {'type': 'alias', 'field': 'ie_pref'},
+            'preference': {'type': 'alias', 'field': 'ie_pref'},
+            'extractor_preference': {'type': 'alias', 'field': 'ie_pref'},
+            'format_id': {'type': 'alias', 'field': 'id'},
+        }
 
         _order = []