|
|
|
@ -40,9 +40,12 @@ class XiamiBaseIE(InfoExtractor):
|
|
|
|
|
'subtitles': subtitles,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
def _extract_tracks(self, item_id, typ=None):
|
|
|
|
|
def _extract_tracks(self, item_id, referer, typ=None):
|
|
|
|
|
playlist = self._download_json(
|
|
|
|
|
'%s/%s%s' % (self._API_BASE_URL, item_id, '/type/%s' % typ if typ else ''), item_id)
|
|
|
|
|
'%s/%s%s' % (self._API_BASE_URL, item_id, '/type/%s' % typ if typ else ''),
|
|
|
|
|
item_id, headers={
|
|
|
|
|
'Referer': referer,
|
|
|
|
|
})
|
|
|
|
|
return [
|
|
|
|
|
self._extract_track(track, item_id)
|
|
|
|
|
for track in playlist['data']['trackList']]
|
|
|
|
@ -135,13 +138,13 @@ class XiamiSongIE(XiamiBaseIE):
|
|
|
|
|
}]
|
|
|
|
|
|
|
|
|
|
def _real_extract(self, url):
|
|
|
|
|
return self._extract_tracks(self._match_id(url))[0]
|
|
|
|
|
return self._extract_tracks(self._match_id(url), url)[0]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class XiamiPlaylistBaseIE(XiamiBaseIE):
|
|
|
|
|
def _real_extract(self, url):
|
|
|
|
|
item_id = self._match_id(url)
|
|
|
|
|
return self.playlist_result(self._extract_tracks(item_id, self._TYPE), item_id)
|
|
|
|
|
return self.playlist_result(self._extract_tracks(item_id, url, self._TYPE), item_id)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class XiamiAlbumIE(XiamiPlaylistBaseIE):
|
|
|
|
|