[qqmusic] Add subtitles for QQMusic

Use .lrc lyrics as subtitles if lyrics in lrc format exist.
This commit is contained in:
Qijiang Fan 2015-08-24 00:31:30 +08:00 committed by Sergey M․
parent 54914380c0
commit b65e5bb72f

View file

@ -58,6 +58,11 @@ class QQMusicIE(InfoExtractor):
curMs = int(time.time() * 1000) % 1000 curMs = int(time.time() * 1000) % 1000
return int(round(random.random() * 2147483647) * curMs % 1E10) return int(round(random.random() * 2147483647) * curMs % 1E10)
def _filter_lrc(self, data):
lyrics_expr = r'(\[[0-9]{2}:[0-9]{2}\.[0-9]{2,}\][^\n]*|\[[^\]]*\])'
texts = re.findall(lyrics_expr, data)
return ''.join(i + "\n" for i in texts)
def _real_extract(self, url): def _real_extract(self, url):
mid = self._match_id(url) mid = self._match_id(url)
@ -112,15 +117,25 @@ class QQMusicIE(InfoExtractor):
self._check_formats(formats, mid) self._check_formats(formats, mid)
self._sort_formats(formats) self._sort_formats(formats)
return { actual_lrc_lyrics = self._filter_lrc(lrc_content)
info_dict = {
'id': mid, 'id': mid,
'formats': formats, 'formats': formats,
'title': song_name, 'title': song_name,
'upload_date': publish_time, 'upload_date': publish_time,
'creator': singer, 'creator': singer,
'description': lrc_content, 'description': lrc_content,
'thumbnail': thumbnail_url, 'thumbnail': thumbnail_url
} }
if actual_lrc_lyrics:
info_dict['subtitles'] = {
'origin': [{
'ext': 'lrc',
'data': actual_lrc_lyrics,
}]
}
return info_dict
class QQPlaylistBaseIE(InfoExtractor): class QQPlaylistBaseIE(InfoExtractor):