|
@ -24,6 +24,7 @@ class QQMusicIE(InfoExtractor): |
|
|
'title': '可惜没如果', |
|
|
'title': '可惜没如果', |
|
|
'upload_date': '20141227', |
|
|
'upload_date': '20141227', |
|
|
'creator': '林俊杰', |
|
|
'creator': '林俊杰', |
|
|
|
|
|
'description': 'md5:242c97c2847e0495583b7b13764f7106', |
|
|
} |
|
|
} |
|
|
}] |
|
|
}] |
|
|
|
|
|
|
|
@ -47,10 +48,16 @@ class QQMusicIE(InfoExtractor): |
|
|
|
|
|
|
|
|
publish_time = self._html_search_regex( |
|
|
publish_time = self._html_search_regex( |
|
|
r'发行时间:(\d{4}-\d{2}-\d{2})', detail_info_page, |
|
|
r'发行时间:(\d{4}-\d{2}-\d{2})', detail_info_page, |
|
|
'publish time').replace('-', '') |
|
|
|
|
|
|
|
|
'publish time', default=None) |
|
|
|
|
|
if publish_time: |
|
|
|
|
|
publish_time = publish_time.replace('-', '') |
|
|
|
|
|
|
|
|
singer = self._html_search_regex( |
|
|
singer = self._html_search_regex( |
|
|
r"singer:\s*'([^']+)", detail_info_page, 'singer') |
|
|
|
|
|
|
|
|
r"singer:\s*'([^']+)", detail_info_page, 'singer', default=None) |
|
|
|
|
|
|
|
|
|
|
|
lrc_content = self._html_search_regex( |
|
|
|
|
|
r'<div class="content" id="lrc_content"[^<>]*>([^<>]+)</div>', |
|
|
|
|
|
detail_info_page, 'LRC lyrics', default=None) |
|
|
|
|
|
|
|
|
guid = self.m_r_get_ruin() |
|
|
guid = self.m_r_get_ruin() |
|
|
|
|
|
|
|
@ -66,6 +73,7 @@ class QQMusicIE(InfoExtractor): |
|
|
'title': song_name, |
|
|
'title': song_name, |
|
|
'upload_date': publish_time, |
|
|
'upload_date': publish_time, |
|
|
'creator': singer, |
|
|
'creator': singer, |
|
|
|
|
|
'description': lrc_content, |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -74,10 +82,6 @@ class QQPlaylistBaseIE(InfoExtractor): |
|
|
def qq_static_url(category, mid): |
|
|
def qq_static_url(category, mid): |
|
|
return 'http://y.qq.com/y/static/%s/%s/%s/%s.html' % (category, mid[-2], mid[-1], mid) |
|
|
return 'http://y.qq.com/y/static/%s/%s/%s/%s.html' % (category, mid[-2], mid[-1], mid) |
|
|
|
|
|
|
|
|
@staticmethod |
|
|
|
|
|
def qq_song_url(mid): |
|
|
|
|
|
return 'http://y.qq.com/#type=song&mid=%s' % mid |
|
|
|
|
|
|
|
|
|
|
|
@classmethod |
|
|
@classmethod |
|
|
def get_entries_from_page(cls, page): |
|
|
def get_entries_from_page(cls, page): |
|
|
entries = [] |
|
|
entries = [] |
|
@ -85,7 +89,8 @@ class QQPlaylistBaseIE(InfoExtractor): |
|
|
for item in re.findall(r'class="data"[^<>]*>([^<>]+)</', page): |
|
|
for item in re.findall(r'class="data"[^<>]*>([^<>]+)</', page): |
|
|
song_mid = unescapeHTML(item).split('|')[-5] |
|
|
song_mid = unescapeHTML(item).split('|')[-5] |
|
|
entries.append(cls.url_result( |
|
|
entries.append(cls.url_result( |
|
|
cls.qq_song_url(song_mid), 'QQMusic', song_mid)) |
|
|
|
|
|
|
|
|
'http://y.qq.com/#type=song&mid=' + song_mid, 'QQMusic', |
|
|
|
|
|
song_mid)) |
|
|
|
|
|
|
|
|
return entries |
|
|
return entries |
|
|
|
|
|
|
|
|