class XiamiBaseIE(InfoExtractor):
_API_BASE_URL = 'http://www.xiami.com/song/playlist/cat/json/id'
- def _download_webpage(self, *args, **kwargs):
- webpage = super(XiamiBaseIE, self)._download_webpage(*args, **kwargs)
+ def _download_webpage_handle(self, *args, **kwargs):
+ webpage = super(XiamiBaseIE, self)._download_webpage_handle(*args, **kwargs)
if '>Xiami is currently not available in your country.<' in webpage:
self.raise_geo_restricted('Xiami is currently not available in your country')
return webpage
'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']]
}]
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):