diff options
Diffstat (limited to 'youtube_dl/extractor/qqmusic.py')
| -rw-r--r-- | youtube_dl/extractor/qqmusic.py | 41 | 
1 files changed, 34 insertions, 7 deletions
| diff --git a/youtube_dl/extractor/qqmusic.py b/youtube_dl/extractor/qqmusic.py index 1654a641f..1ba3bbddf 100644 --- a/youtube_dl/extractor/qqmusic.py +++ b/youtube_dl/extractor/qqmusic.py @@ -7,11 +7,11 @@ import re  from .common import InfoExtractor  from ..utils import ( +    sanitized_Request,      strip_jsonp,      unescapeHTML,      clean_html,  ) -from ..compat import compat_urllib_request  class QQMusicIE(InfoExtractor): @@ -25,7 +25,7 @@ class QQMusicIE(InfoExtractor):              'id': '004295Et37taLD',              'ext': 'mp3',              'title': '可惜没如果', -            'upload_date': '20141227', +            'release_date': '20141227',              'creator': '林俊杰',              'description': 'md5:d327722d0361576fde558f1ac68a7065',              'thumbnail': 're:^https?://.*\.jpg$', @@ -38,11 +38,26 @@ class QQMusicIE(InfoExtractor):              'id': '004MsGEo3DdNxV',              'ext': 'mp3',              'title': '如果', -            'upload_date': '20050626', +            'release_date': '20050626',              'creator': '李季美',              'description': 'md5:46857d5ed62bc4ba84607a805dccf437',              'thumbnail': 're:^https?://.*\.jpg$',          } +    }, { +        'note': 'lyrics not in .lrc format', +        'url': 'http://y.qq.com/#type=song&mid=001JyApY11tIp6', +        'info_dict': { +            'id': '001JyApY11tIp6', +            'ext': 'mp3', +            'title': 'Shadows Over Transylvania', +            'release_date': '19970225', +            'creator': 'Dark Funeral', +            'description': 'md5:ed14d5bd7ecec19609108052c25b2c11', +            'thumbnail': 're:^https?://.*\.jpg$', +        }, +        'params': { +            'skip_download': True, +        },      }]      _FORMATS = { @@ -112,15 +127,27 @@ class QQMusicIE(InfoExtractor):          self._check_formats(formats, mid)          self._sort_formats(formats) -        return { +        actual_lrc_lyrics = ''.join( +            line + '\n' for line in re.findall( +                r'(?m)^(\[[0-9]{2}:[0-9]{2}(?:\.[0-9]{2,})?\][^\n]*|\[[^\]]*\])', lrc_content)) + +        info_dict = {              'id': mid,              'formats': formats,              'title': song_name, -            'upload_date': publish_time, +            'release_date': publish_time,              'creator': singer,              '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): @@ -174,7 +201,7 @@ class QQMusicSingerIE(QQPlaylistBaseIE):          singer_desc = None          if singer_id: -            req = compat_urllib_request.Request( +            req = sanitized_Request(                  'http://s.plcloud.music.qq.com/fcgi-bin/fcg_get_singer_desc.fcg?utf8=1&outCharset=utf-8&format=xml&singerid=%s' % singer_id)              req.add_header(                  'Referer', 'http://s.plcloud.music.qq.com/xhr_proxy_utf8.html') | 
