2 from __future__ import unicode_literals
4 from .common import InfoExtractor
5 from ..utils import ExtractorError
8 class YinYueTaiIE(InfoExtractor):
9 IE_NAME = 'yinyuetai:video'
10 _VALID_URL = r'https?://v\.yinyuetai\.com/video(/h5)?/(?P<id>[0-9]+)'
12 'url': 'http://v.yinyuetai.com/video/2322376',
13 'md5': '6e3abe28d38e3a54b591f9f040595ce0',
17 'title': '少女时代_PARTY_Music Video Teaser',
21 'url': 'http://v.yinyuetai.com/video/h5/2322376',
22 'only_matching': True,
25 def _real_extract(self, url):
26 video_id = self._match_id(url)
28 info = self._download_json(
29 'http://ext.yinyuetai.com/main/get-h-mv-info?json=true&videoId=%s' % video_id, video_id,
30 'Downloading mv info')['videoInfo']['coreVideoInfo']
33 raise ExtractorError(info['errorMsg'], expected=True)
36 'url': format_info['videoUrl'],
37 'format_id': format_info['qualityLevel'],
38 'format': format_info['qualityLevelName'],
39 'filesize': format_info['fileSize'],
41 'preference': format_info['bitrate'],
42 } for format_info in info['videoUrlModels']]
43 self._sort_formats(formats)
47 'title': info['videoName'],
48 'thumbnail': info['bigHeadImage'],
49 'creator': info['artistNames'],
50 'duration': info['duration'],