Browse Source

[extractor/common] Add ability to specify custom field preference for `_sort_formats`

Sergey M․ 10 years ago
parent
commit
3ded7bac16
1 changed files with 4 additions and 1 deletions
  1. 4 1
      youtube_dl/extractor/common.py

+ 4 - 1
youtube_dl/extractor/common.py

@@ -708,7 +708,7 @@ class InfoExtractor(object):
         return self._html_search_meta('twitter:player', html,
                                       'twitter card player')
 
-    def _sort_formats(self, formats):
+    def _sort_formats(self, formats, field_preference=None):
         if not formats:
             raise ExtractorError('No video formats found')
 
@@ -718,6 +718,9 @@ class InfoExtractor(object):
             if not f.get('ext') and 'url' in f:
                 f['ext'] = determine_ext(f['url'])
 
+            if isinstance(field_preference, (list, tuple)):
+                return tuple(f.get(field) if f.get(field) is not None else -1 for field in field_preference)
+
             preference = f.get('preference')
             if preference is None:
                 proto = f.get('protocol')