[youtube] extract width and height from fmt_list
[youtube-dl] / youtube_dl / extractor / dcn.py
index d9485cd8677f296070e6b80859ff91da4267b389..15a1c40f7a07c36136a0142148af3f7f44f49733 100644 (file)
@@ -7,11 +7,12 @@ import base64
 from .common import InfoExtractor
 from ..compat import (
     compat_urllib_parse,
-    compat_urllib_request,
+    compat_str,
 )
 from ..utils import (
     int_or_none,
     parse_iso8601,
+    sanitized_Request,
     smuggle_url,
     unsmuggle_url,
 )
@@ -58,10 +59,8 @@ class DCNBaseIE(InfoExtractor):
         m3u8_url = self._html_search_regex(
             r'file\s*:\s*"([^"]+)', webpage, 'm3u8 url', fatal=False)
         if m3u8_url:
-            m3u8_formats = self._extract_m3u8_formats(
-                m3u8_url, video_id, 'mp4', entry_protocol, m3u8_id='hls', fatal=None)
-            if m3u8_formats:
-                formats.extend(m3u8_formats)
+            formats.extend(self._extract_m3u8_formats(
+                m3u8_url, video_id, 'mp4', entry_protocol, m3u8_id='hls', fatal=None))
 
         rtsp_url = self._search_regex(
             r'<a[^>]+href="(rtsp://[^"]+)"', webpage, 'rtsp url', fatal=False)
@@ -99,7 +98,7 @@ class DCNVideoIE(DCNBaseIE):
     def _real_extract(self, url):
         video_id = self._match_id(url)
 
-        request = compat_urllib_request.Request(
+        request = sanitized_Request(
             'http://admin.mangomolo.com/analytics/index.php/plus/video?id=%s' % video_id,
             headers={'Origin': 'http://www.dcndigital.ae'})
         video_data = self._download_json(request, video_id)
@@ -125,7 +124,7 @@ class DCNLiveIE(DCNBaseIE):
     def _real_extract(self, url):
         channel_id = self._match_id(url)
 
-        request = compat_urllib_request.Request(
+        request = sanitized_Request(
             'http://admin.mangomolo.com/analytics/index.php/plus/getchanneldetails?channel_id=%s' % channel_id,
             headers={'Origin': 'http://www.dcndigital.ae'})
 
@@ -167,13 +166,13 @@ class DCNSeasonIE(InfoExtractor):
             data['season'] = season_id
             show_id = smuggled_data.get('show_id')
             if show_id is None:
-                request = compat_urllib_request.Request(
+                request = sanitized_Request(
                     'http://admin.mangomolo.com/analytics/index.php/plus/season_info?id=%s' % season_id,
                     headers={'Origin': 'http://www.dcndigital.ae'})
                 season = self._download_json(request, season_id)
                 show_id = season['id']
         data['show_id'] = show_id
-        request = compat_urllib_request.Request(
+        request = sanitized_Request(
             'http://admin.mangomolo.com/analytics/index.php/plus/show',
             compat_urllib_parse.urlencode(data),
             {
@@ -190,7 +189,8 @@ class DCNSeasonIE(InfoExtractor):
 
                 entries = []
                 for video in show['videos']:
+                    video_id = compat_str(video['id'])
                     entries.append(self.url_result(
-                        'http://www.dcndigital.ae/media/%s' % video['id'], 'DCNVideo'))
+                        'http://www.dcndigital.ae/media/%s' % video_id, 'DCNVideo', video_id))
 
                 return self.playlist_result(entries, season_id, title)