[funnyordie] Improve extraction
authorAndy Savicki <lao.lav@gmail.com>
Tue, 15 Nov 2016 23:37:28 +0000 (02:37 +0300)
committerSergey M․ <dstftw@gmail.com>
Mon, 21 Nov 2016 15:16:26 +0000 (22:16 +0700)
youtube_dl/extractor/funnyordie.py

index 8c5ffc9e84cec305e9fc813a6366b360b7e36230..7664dd584d3f0e93982129aa5c4931efc791f0f1 100644 (file)
@@ -11,7 +11,7 @@ class FunnyOrDieIE(InfoExtractor):
     _VALID_URL = r'https?://(?:www\.)?funnyordie\.com/(?P<type>embed|articles|videos)/(?P<id>[0-9a-f]+)(?:$|[?#/])'
     _TESTS = [{
         'url': 'http://www.funnyordie.com/videos/0732f586d7/heart-shaped-box-literal-video-version',
-        'md5': 'bcd81e0c4f26189ee09be362ad6e6ba9',
+        'md5': 'c26b9ee0e1ca138c12071f59572ba9c7',
         'info_dict': {
             'id': '0732f586d7',
             'ext': 'mp4',
@@ -51,10 +51,7 @@ class FunnyOrDieIE(InfoExtractor):
 
         formats = []
 
-        formats.extend(self._extract_m3u8_formats(
-            m3u8_url, video_id, 'mp4', 'm3u8_native', m3u8_id='hls', fatal=False))
-
-        bitrates = [int(bitrate) for bitrate in re.findall(r'[,/]v(\d+)[,/]', m3u8_url)]
+        bitrates = [int(bitrate) for bitrate in re.findall(r'[,/]v(\d+)(?=[,/])', m3u8_url)]
         bitrates.sort()
 
         for bitrate in bitrates:
@@ -65,6 +62,11 @@ class FunnyOrDieIE(InfoExtractor):
                     'vbr': bitrate,
                 })
 
+        self._check_formats(formats, video_id)
+
+        formats.extend(self._extract_m3u8_formats(
+            m3u8_url, video_id, 'mp4', 'm3u8_native', m3u8_id='hls', fatal=False))
+
         subtitles = {}
         for src, src_lang in re.findall(r'<track kind="captions" src="([^"]+)" srclang="([^"]+)"', webpage):
             subtitles[src_lang] = [{