]> jfr.im git - yt-dlp.git/blob - yt_dlp/extractor/tudou.py
[cleanup] Upgrade syntax
[yt-dlp.git] / yt_dlp / extractor / tudou.py
1 from .common import InfoExtractor
2
3
4 class TudouPlaylistIE(InfoExtractor):
5 IE_NAME = 'tudou:playlist'
6 _VALID_URL = r'https?://(?:www\.)?tudou\.com/listplay/(?P<id>[\w-]{11})\.html'
7 _TESTS = [{
8 'url': 'http://www.tudou.com/listplay/zzdE77v6Mmo.html',
9 'info_dict': {
10 'id': 'zzdE77v6Mmo',
11 },
12 'playlist_mincount': 209,
13 }]
14
15 def _real_extract(self, url):
16 playlist_id = self._match_id(url)
17 playlist_data = self._download_json(
18 'http://www.tudou.com/tvp/plist.action?lcode=%s' % playlist_id, playlist_id)
19 entries = [self.url_result(
20 'http://www.tudou.com/programs/view/%s' % item['icode'],
21 'Tudou', item['icode'],
22 item['kw']) for item in playlist_data['items']]
23 return self.playlist_result(entries, playlist_id)
24
25
26 class TudouAlbumIE(InfoExtractor):
27 IE_NAME = 'tudou:album'
28 _VALID_URL = r'https?://(?:www\.)?tudou\.com/album(?:cover|play)/(?P<id>[\w-]{11})'
29 _TESTS = [{
30 'url': 'http://www.tudou.com/albumplay/v5qckFJvNJg.html',
31 'info_dict': {
32 'id': 'v5qckFJvNJg',
33 },
34 'playlist_mincount': 45,
35 }]
36
37 def _real_extract(self, url):
38 album_id = self._match_id(url)
39 album_data = self._download_json(
40 'http://www.tudou.com/tvp/alist.action?acode=%s' % album_id, album_id)
41 entries = [self.url_result(
42 'http://www.tudou.com/programs/view/%s' % item['icode'],
43 'Tudou', item['icode'],
44 item['kw']) for item in album_data['items']]
45 return self.playlist_result(entries, album_id)