[BelgianNational] New extractor added
authordinesh <dsdiscoverdinesh@gmail.com>
Sun, 26 Oct 2014 08:05:00 +0000 (13:35 +0530)
committerdinesh <dsdiscoverdinesh@gmail.com>
Sun, 26 Oct 2014 08:05:00 +0000 (13:35 +0530)
youtube_dl/extractor/__init__.py
youtube_dl/extractor/belgiannational.py [new file with mode: 0644]

index 691fef5ca18c83656990ee6aad86288470433208..ec299b72f9f6ef69cb9b1523e2447f5efb2f5044 100644 (file)
@@ -27,6 +27,7 @@ from .bandcamp import BandcampIE, BandcampAlbumIE
 from .bbccouk import BBCCoUkIE
 from .beeg import BeegIE
 from .behindkink import BehindKinkIE
+from .belgiannational import BelgianNationalIE
 from .bild import BildIE
 from .bilibili import BiliBiliIE
 from .blinkx import BlinkxIE
diff --git a/youtube_dl/extractor/belgiannational.py b/youtube_dl/extractor/belgiannational.py
new file mode 100644 (file)
index 0000000..2367d1f
--- /dev/null
@@ -0,0 +1,64 @@
+# coding: utf-8
+from __future__ import unicode_literals
+
+import re
+
+from .common import InfoExtractor
+from ..utils import int_or_none
+
+class BelgianNationalIE(InfoExtractor):    
+    _VALID_URL = r'http://(?:deredactie|sporza|cobra)\.be/cm/(.*)/(?P<video_id>[^\']+)'
+    _TESTS = [
+    # deredactie.be
+    {
+        'url': 'http://deredactie.be/cm/vrtnieuws/videozone/programmas/journaal/EP_141025_JOL',
+        'md5': '4cebde1eb60a53782d4f3992cbd46ec8',
+        'info_dict': {
+            'id': 'EP_141025_JOL',
+            'title': 'Het journaal L - 25/10/14',
+            'ext': 'mp4',
+            'duration': 929,
+        }
+    },
+    # sporza.be
+    {
+        'url': 'http://sporza.be/cm/sporza/videozone/programmas/extratime/EP_141020_Extra_time',
+        'md5': '11f53088da9bf8e7cfc42456697953ff',
+        'info_dict': {
+            'id': 'EP_141020_Extra_time',
+            'title': 'Bekijk Extra Time van 20 oktober',
+            'ext': 'mp4',
+            'duration': 3238,
+        }
+        
+    },
+    # cobra.be
+    {
+        'url': 'http://cobra.be/cm/cobra/videozone/rubriek/film-videozone/141022-mv-ellis-cafecorsari',
+        'md5': '78a2b060a5083c4f055449a72477409d',
+        'info_dict': {
+            'id': '141022-mv-ellis-cafecorsari',
+            'title': 'Bret Easton Ellis in CafĂ© Corsari',
+            'ext': 'mp4',
+            'duration': 661,
+        }
+    }
+    ]
+    
+    def _real_extract(self, url):
+        mobj = re.match(self._VALID_URL, url)
+        video_id = mobj.group('video_id')
+        
+        webpage = self._download_webpage(url, video_id)
+        title = self._og_search_title(webpage)
+        
+        video_url = self._search_regex(r'data-video-src="(.*?)"', webpage, 'Video url') + '/manifest.f4m'
+        duration = int_or_none(self._search_regex(r'data-video-sitestat-duration="(.*?)"', webpage, 'Duration'))
+        
+        return {
+            'id': video_id,
+            'title': title,
+            'url': video_url,
+            'ext': 'mp4',
+            'duration': duration,
+        }
\ No newline at end of file