فهرست منبع

[extractor/common] Change the default m3u8 protocol in HTML5

Helper functions should have consistent default values
Yen Chi Hsuan 9 سال پیش
والد
کامیت
ad120ae1c5
4فایلهای تغییر یافته به همراه8 افزوده شده و 5 حذف شده
  1. 1 0
      ChangeLog
  2. 2 1
      youtube_dl/extractor/charlierose.py
  3. 3 3
      youtube_dl/extractor/common.py
  4. 2 1
      youtube_dl/extractor/snotr.py

+ 1 - 0
ChangeLog

@@ -7,6 +7,7 @@ Core
 * Fix js_to_json(): correct octal or hexadecimal number detection
 
 Extractors
++ [charlierose] Add new extractor (#10382)
 + [litv] Support 'promo' URLs (#10385)
 * [snotr] Fix extraction (#10338)
 * [n-tv.de] Fix extraction (#10331)

+ 2 - 1
youtube_dl/extractor/charlierose.py

@@ -35,7 +35,8 @@ class CharlieRoseIE(InfoExtractor):
         title = remove_end(self._og_search_title(webpage), ' - Charlie Rose')
 
         info_dict = self._parse_html5_media_entries(
-            self._PLAYER_BASE % video_id, webpage, video_id)[0]
+            self._PLAYER_BASE % video_id, webpage, video_id,
+            m3u8_entry_protocol='m3u8_native')[0]
 
         self._sort_formats(info_dict['formats'])
         self._remove_duplicate_formats(info_dict['formats'])

+ 3 - 3
youtube_dl/extractor/common.py

@@ -1695,7 +1695,7 @@ class InfoExtractor(object):
                         self.report_warning('Unknown MIME type %s in DASH manifest' % mime_type)
         return formats
 
-    def _parse_html5_media_entries(self, base_url, webpage, video_id, m3u8_id=None):
+    def _parse_html5_media_entries(self, base_url, webpage, video_id, m3u8_id=None, m3u8_entry_protocol='m3u8'):
         def absolute_url(video_url):
             return compat_urlparse.urljoin(base_url, video_url)
 
@@ -1715,8 +1715,8 @@ class InfoExtractor(object):
             if determine_ext(full_url) == 'm3u8':
                 is_plain_url = False
                 formats = self._extract_m3u8_formats(
-                    full_url, video_id, ext='mp4', entry_protocol='m3u8_native',
-                    m3u8_id=m3u8_id)
+                    full_url, video_id, ext='mp4',
+                    entry_protocol=m3u8_entry_protocol, m3u8_id=m3u8_id)
             else:
                 is_plain_url = True
                 formats = [{

+ 2 - 1
youtube_dl/extractor/snotr.py

@@ -46,7 +46,8 @@ class SnotrIE(InfoExtractor):
         title = self._og_search_title(webpage)
 
         description = self._og_search_description(webpage)
-        info_dict = self._parse_html5_media_entries(url, webpage, video_id)[0]
+        info_dict = self._parse_html5_media_entries(
+            url, webpage, video_id, m3u8_entry_protocol='m3u8_native')[0]
 
         view_count = str_to_int(self._html_search_regex(
             r'<p[^>]*>\s*<strong[^>]*>Views:</strong>\s*<span[^>]*>([\d,\.]+)',