about summary refs log tree commit diff
path: root/youtube_dl/extractor/myspace.py
diff options
context:
space:
mode:
authorTithen-Firion <Tithen-Firion@users.noreply.github.com>2014-11-30 21:36:00 +0100
committerJaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com>2014-12-01 00:10:12 +0100
commit95c673a148f1a6cd8571b4dfa931d98092500fc2 (patch)
tree3d18ae5a2b00e7734dfbc317d86bc7ae534c452c /youtube_dl/extractor/myspace.py
parenta196a53265a1df05270fe2a5ae83257b3629d30c (diff)
downloadyoutube-dl-95c673a148f1a6cd8571b4dfa931d98092500fc2.tar.gz
youtube-dl-95c673a148f1a6cd8571b4dfa931d98092500fc2.tar.xz
youtube-dl-95c673a148f1a6cd8571b4dfa931d98092500fc2.zip
[myspace] Add extractor for albums
Diffstat (limited to 'youtube_dl/extractor/myspace.py')
-rw-r--r--youtube_dl/extractor/myspace.py43
1 files changed, 43 insertions, 0 deletions
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,
+        }