[myspace] Added support for downloading all songs of an artist

This commit is contained in:
Allan Daemon 2016-04-24 07:39:02 -03:00
parent 2c21152ca7
commit 5b4c559d8a
2 changed files with 44 additions and 1 deletions

View File

@ -441,7 +441,7 @@ from .muenchentv import MuenchenTVIE
from .musicplayon import MusicPlayOnIE
from .muzu import MuzuTVIE
from .mwave import MwaveIE
from .myspace import MySpaceIE, MySpaceAlbumIE
from .myspace import MySpaceIE, MySpaceAlbumIE, MySpaceArtistSongsIE
from .myspass import MySpassIE
from .myvi import MyviIE
from .myvideo import MyVideoIE

View File

@ -204,3 +204,46 @@ class MySpaceAlbumIE(InfoExtractor):
'title': self._og_search_title(webpage),
'entries': entries,
}
class MySpaceArtistSongsIE(InfoExtractor):
IE_NAME = 'MySpace:artist:songs'
_VALID_URL = r'https?://myspace\.com/(?P<artist>[^/]*)/music/songs'
_TESTS = [{
'url': 'https://myspace.com/starset2/music/album/transmissions-19455773',
'url': 'https://myspace.com/ryanlewismusic/music/songs',
'info_dict': {
'title': 'RYAN LEWIS',
},
'playlist_count': 8,
}, {
'url': 'https://myspace.com/studio99/music/songs/',
'info_dict': {
'title': 'Studio 99 IS CLOSED!! R.I.P.',
},
'playlist_count': 4,
}]
def _real_extract(self, url):
mobj = re.match(self._VALID_URL, url)
display_id = mobj.group('artist')
webpage = self._download_webpage(url, display_id)
tracks_paths = re.findall(r'<meta itemprop="url" content ="(.*?)">', webpage)
if not tracks_paths:
raise ExtractorError(
'%s: No songs found, try using proxy' % display_id,
expected=True)
entries = [
self.url_result('https://myspace.com/' + display_id + t_path, ie=MySpaceIE.ie_key())
for t_path in tracks_paths if t_path.startswith('/music/song/')]
# if we invert this if, we get album urls. but not all music are in alba.
# Also the musics in alba are already here individually
return {
'_type': 'playlist',
'display_id': display_id,
'title': self._og_search_title(webpage),
'entries': entries,
}