diff options
| author | Tithen-Firion <Tithen-Firion@users.noreply.github.com> | 2014-11-30 21:36:00 +0100 | 
|---|---|---|
| committer | Jaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com> | 2014-12-01 00:10:12 +0100 | 
| commit | 95c673a148f1a6cd8571b4dfa931d98092500fc2 (patch) | |
| tree | 3d18ae5a2b00e7734dfbc317d86bc7ae534c452c | |
| parent | a196a53265a1df05270fe2a5ae83257b3629d30c (diff) | |
[myspace] Add extractor for albums
| -rw-r--r-- | youtube_dl/extractor/__init__.py | 2 | ||||
| -rw-r--r-- | youtube_dl/extractor/myspace.py | 43 | 
2 files changed, 44 insertions, 1 deletions
diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py index 9387feef1..0339d1386 100644 --- a/youtube_dl/extractor/__init__.py +++ b/youtube_dl/extractor/__init__.py @@ -242,7 +242,7 @@ from .muenchentv import MuenchenTVIE  from .musicplayon import MusicPlayOnIE  from .musicvault import MusicVaultIE  from .muzu import MuzuTVIE -from .myspace import MySpaceIE +from .myspace import MySpaceIE, MySpaceAlbumIE  from .myspass import MySpassIE  from .myvideo import MyVideoIE  from .naver import NaverIE diff --git a/youtube_dl/extractor/myspace.py b/youtube_dl/extractor/myspace.py index b4b1fb51d..759bc7fed 100644 --- a/youtube_dl/extractor/myspace.py +++ b/youtube_dl/extractor/myspace.py @@ -131,3 +131,46 @@ class MySpaceIE(InfoExtractor):              'ext': 'flv',          })          return info + + +class MySpaceAlbumIE(InfoExtractor): +    IE_NAME = 'MySpace:album' +    _VALID_URL = r'https?://myspace\.com/([^/]+)/music/album/(?P<title>.*-)(?P<id>\d+)' + +    _TESTS = [{ +        'url': 'https://myspace.com/starset2/music/album/transmissions-19455773', +        'info_dict': { +            'title': 'Transmissions', +            'id': '19455773', +        }, +        'playlist_count': 14, +        'skip': 'this album is only available in some countries', +    }, { +        'url': 'https://myspace.com/killsorrow/music/album/the-demo-18596029', +        'info_dict': { +            'title': 'The Demo', +            'id': '18596029', +        }, +        'playlist_count': 5, +    }] + +    def _real_extract(self, url): +        mobj = re.match(self._VALID_URL, url) +        playlist_id = mobj.group('id') +        display_id = mobj.group('title') + playlist_id +        webpage = self._download_webpage(url, display_id) +        tracks_paths = re.findall(r'"music:song" content="(.*?)"', webpage) +        if not tracks_paths: +            self.to_screen('%s: No songs found, try using proxy' % display_id) +            return +        entries = [ +            self.url_result(t_path, ie=MySpaceIE.ie_key()) +            for t_path in tracks_paths] +        title = self._og_search_title(webpage) +        return { +            '_type': 'playlist', +            'id': playlist_id, +            'display_id': display_id, +            'title': title, +            'entries': entries, +        }  | 
