]> gitweb @ CieloNegro.org - youtube-dl.git/blobdiff - youtube_dl/extractor/adultswim.py
[bliptv] Fix \n\n at the end of real_url
[youtube-dl.git] / youtube_dl / extractor / adultswim.py
index ca1bfbdc2225b4d79aaac19eafaaa86808dd103e..0d05cbb4b16b470aaa1a82d318c07f323ccd1bf7 100644 (file)
@@ -5,6 +5,7 @@ import re
 
 from .common import InfoExtractor
 
+
 class AdultSwimIE(InfoExtractor):
     _VALID_URL = r'https?://video\.adultswim\.com/(?P<path>.+?)(?:\.html)?(?:\?.*)?(?:#.*)?$'
     _TEST = {
@@ -57,8 +58,6 @@ class AdultSwimIE(InfoExtractor):
         ]
     }
 
-    _available_formats = ['150', '640', '3500']
-
     _video_extensions = {
         '3500': 'flv',
         '640': 'mp4',
@@ -77,8 +76,10 @@ class AdultSwimIE(InfoExtractor):
         video_path = mobj.group('path')
 
         webpage = self._download_webpage(url, video_path)
-        episode_id = self._html_search_regex(r'<link rel="video_src" href="http://i\.adultswim\.com/adultswim/adultswimtv/tools/swf/viralplayer.swf\?id=([0-9a-f]+?)"\s*/?\s*>', webpage, 'episode_id')
-        title = self._html_search_regex(r'<meta property="og:title" content="\s*(.*?)\s*"\s*/?\s*>', webpage, 'title')
+        episode_id = self._html_search_regex(
+            r'<link rel="video_src" href="http://i\.adultswim\.com/adultswim/adultswimtv/tools/swf/viralplayer.swf\?id=([0-9a-f]+?)"\s*/?\s*>',
+            webpage, 'episode_id')
+        title = self._og_search_title(webpage)
 
         index_url = 'http://asfix.adultswim.com/asfix-svc/episodeSearch/getEpisodesByIDs?networkName=AS&ids=%s' % episode_id
         idoc = self._download_xml(index_url, title, 'Downloading episode index', 'Unable to download episode index')
@@ -99,7 +100,9 @@ class AdultSwimIE(InfoExtractor):
             duration = segment_el.attrib.get('duration')
 
             segment_url = 'http://asfix.adultswim.com/asfix-svc/episodeservices/getCvpPlaylist?networkName=AS&id=%s' % segment_id
-            idoc = self._download_xml(segment_url, segment_title, 'Downloading segment information', 'Unable to download segment information')
+            idoc = self._download_xml(
+                segment_url, segment_title,
+                'Downloading segment information', 'Unable to download segment information')
 
             formats = []
             file_els = idoc.findall('.//files/file')
@@ -112,7 +115,8 @@ class AdultSwimIE(InfoExtractor):
                     'format_id': '%s-%s' % (bitrate, type),
                     'url': file_el.text,
                     'ext': self._video_extensions.get(bitrate, 'mp4'),
-                    'tbr': bitrate,
+                    # The bitrate may not be a number (for example: 'iphone')
+                    'tbr': int(bitrate) if bitrate.isdigit() else None,
                     'height': height,
                     'width': width
                 })