]> git.bitcoin.ninja Git - youtube-dl/commitdiff
[mwave] New extractor for mwave.interest.me
authorping <lipng.ong@gmail.com>
Wed, 22 Jul 2015 06:31:29 +0000 (14:31 +0800)
committerSergey M․ <dstftw@gmail.com>
Wed, 19 Aug 2015 16:40:40 +0000 (22:40 +0600)
youtube_dl/extractor/__init__.py
youtube_dl/extractor/mwave.py [new file with mode: 0644]

index c8c9f18554fe7802005cbac2a5573bd571c4c30f..006ef3922127fca995aaaebc97770389857f9985 100644 (file)
@@ -345,6 +345,7 @@ from .muenchentv import MuenchenTVIE
 from .musicplayon import MusicPlayOnIE
 from .musicvault import MusicVaultIE
 from .muzu import MuzuTVIE
 from .musicplayon import MusicPlayOnIE
 from .musicvault import MusicVaultIE
 from .muzu import MuzuTVIE
+from .mwave import MwaveIE
 from .myspace import MySpaceIE, MySpaceAlbumIE
 from .myspass import MySpassIE
 from .myvi import MyviIE
 from .myspace import MySpaceIE, MySpaceAlbumIE
 from .myspass import MySpassIE
 from .myvi import MyviIE
diff --git a/youtube_dl/extractor/mwave.py b/youtube_dl/extractor/mwave.py
new file mode 100644 (file)
index 0000000..7f91aa2
--- /dev/null
@@ -0,0 +1,46 @@
+from __future__ import unicode_literals
+
+from .common import InfoExtractor
+
+
+class MwaveIE(InfoExtractor):
+    IE_NAME = 'mwave'
+    _VALID_URL = r'https?://mwave\.interest\.me/mnettv/videodetail\.m\?searchVideoDetailVO\.clip_id=(?P<id>[0-9]+)'
+    _TESTS = [{
+        'url': 'http://mwave.interest.me/mnettv/videodetail.m?searchVideoDetailVO.clip_id=168859',
+        'info_dict': {
+            'id': '168859',
+            'ext': 'flv',
+            'title': '[M COUNTDOWN] SISTAR - SHAKE IT',
+            'creator': 'M COUNTDOWN',
+        }
+    }, {
+        'url': 'http://mwave.interest.me/mnettv/videodetail.m?searchVideoDetailVO.clip_id=168860',
+        'info_dict': {
+            'id': '168860',
+            'ext': 'flv',
+            'title': '[Full Ver.] M GIGS Ep. 59 - IDIOTAPE Live Part 1',
+            'creator': 'M-GIGS',
+        }
+    }]
+
+    def _real_extract(self, url):
+        video_id = self._match_id(url)
+
+        stream_info = self._download_json(
+            'http://mwave.interest.me/onair/vod_info.m?vodtype=CL&sectorid=&endinfo=Y&id=%s' % video_id,
+            'Download stream info')
+
+        formats = []
+        for info in stream_info['cdn']:
+            f4m_stream = self._download_json(info['url'], video_id, 'Download f4m stream')
+            formats.extend(
+                self._extract_f4m_formats(f4m_stream['fileurl'] + '&g=PCROWKHLYUDY&hdcore=3.0.3', video_id))
+        self._sort_formats(formats)
+
+        return {
+            'id': video_id,
+            'title': stream_info['title'],
+            'creator': stream_info.get('program_title'),
+            'formats': formats,
+        }