diff options
| author | Yen Chi Hsuan <yan12125@gmail.com> | 2015-07-06 16:08:30 +0800 | 
|---|---|---|
| committer | Yen Chi Hsuan <yan12125@gmail.com> | 2015-07-06 16:08:30 +0800 | 
| commit | d80891efc47d3965695f76a24694c1f0bd748bd6 (patch) | |
| tree | 65d0cc1a842d9f1894fd3c63f867ee2551e11173 | |
| parent | 59a83d3e5b9c09d0c6e8fb430ea99d71ef6e2eba (diff) | |
| parent | 0d0d5d37174ed611dd823c5be025c49e73d83d1d (diff) | |
Merge branch 'qqmusic-playlist' of https://github.com/ping/youtube-dl into ping-qqmusic-playlist
| -rw-r--r-- | youtube_dl/extractor/__init__.py | 1 | ||||
| -rw-r--r-- | youtube_dl/extractor/qqmusic.py | 34 | 
2 files changed, 35 insertions, 0 deletions
| diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py index aba62db53..f7c1f07a4 100644 --- a/youtube_dl/extractor/__init__.py +++ b/youtube_dl/extractor/__init__.py @@ -432,6 +432,7 @@ from .qqmusic import (      QQMusicSingerIE,      QQMusicAlbumIE,      QQMusicToplistIE, +    QQMusicPlaylistIE,  )  from .quickvid import QuickVidIE  from .r7 import R7IE diff --git a/youtube_dl/extractor/qqmusic.py b/youtube_dl/extractor/qqmusic.py index bafa81c21..f9aafcd28 100644 --- a/youtube_dl/extractor/qqmusic.py +++ b/youtube_dl/extractor/qqmusic.py @@ -9,6 +9,7 @@ from .common import InfoExtractor  from ..utils import (      strip_jsonp,      unescapeHTML, +    clean_html,  )  from ..compat import compat_urllib_request @@ -243,3 +244,36 @@ class QQMusicToplistIE(QQPlaylistBaseIE):          list_name = topinfo.get('ListName')          list_description = topinfo.get('info')          return self.playlist_result(entries, list_id, list_name, list_description) + + +class QQMusicPlaylistIE(QQPlaylistBaseIE): +    IE_NAME = 'qqmusic:playlist' +    _VALID_URL = r'http://y\.qq\.com/#type=taoge&id=(?P<id>[0-9]+)' + +    _TEST = { +        'url': 'http://y.qq.com/#type=taoge&id=3462654915', +        'info_dict': { +            'id': '3462654915', +            'title': '韩国5月新歌精选下旬', +            'description': 'md5:d2c9d758a96b9888cf4fe82f603121d4', +        }, +        'playlist_count': 40, +    } + +    def _real_extract(self, url): +        list_id = self._match_id(url) + +        list_json = self._download_json( +            'http://i.y.qq.com/qzone-music/fcg-bin/fcg_ucc_getcdinfo_byids_cp.fcg?type=1&json=1&utf8=1&onlysong=0&disstid=%s' +            % list_id, list_id, 'Download list page', +            transform_source=strip_jsonp)['cdlist'][0] + +        entries = [ +            self.url_result( +                'http://y.qq.com/#type=song&mid=' + song['songmid'], 'QQMusic', song['songmid'] +            ) for song in list_json['songlist'] +        ] + +        list_name = list_json['dissname'] +        list_description = clean_html(unescapeHTML(list_json.get('desc'))) +        return self.playlist_result(entries, list_id, list_name, list_description) | 
