about summary refs log tree commit diff
path: root/youtube_dl/extractor/soundgasm.py
diff options
context:
space:
mode:
authorLeslie P. Polzer <polzer@gnu.org>2015-02-23 12:11:19 +0100
committerLeslie P. Polzer <polzer@gnu.org>2015-02-23 12:11:19 +0100
commit93b5071f73738d788c878b38a57f2b6efe0da883 (patch)
treea1eab4c779501627faadaff52479535e145584c8 /youtube_dl/extractor/soundgasm.py
parentddc369f073fda4ddd429c2d9a104e561cefd417f (diff)
downloadyoutube-dl-93b5071f73738d788c878b38a57f2b6efe0da883.tar.gz
youtube-dl-93b5071f73738d788c878b38a57f2b6efe0da883.tar.xz
youtube-dl-93b5071f73738d788c878b38a57f2b6efe0da883.zip
[soundgasm] add profile IE.
Diffstat (limited to 'youtube_dl/extractor/soundgasm.py')
-rw-r--r--youtube_dl/extractor/soundgasm.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/youtube_dl/extractor/soundgasm.py b/youtube_dl/extractor/soundgasm.py
index a4f8ce6c3..e568ff18c 100644
--- a/youtube_dl/extractor/soundgasm.py
+++ b/youtube_dl/extractor/soundgasm.py
@@ -4,6 +4,7 @@ from __future__ import unicode_literals
 import re
 
 from .common import InfoExtractor
+from ..utils import clean_html
 
 
 class SoundgasmIE(InfoExtractor):
@@ -38,3 +39,38 @@ class SoundgasmIE(InfoExtractor):
             'title': audio_title,
             'description': description
         }
+
+class SoundgasmProfileIE(InfoExtractor):
+    _VALID_URL = r'https?://(?:www\.)?soundgasm\.net/u/(?P<id>[0-9a-zA-Z_\-]+)/?$'
+    _TEST = {
+        'url': 'http://soundgasm.net/u/ytdl',
+        'playlist_count': 1,
+        'info_dict': {
+            '_type': 'playlist',
+            'id': 'ytdl',
+            'title': 'ytdl'
+        }
+    }
+
+    def _real_extract(self, url):
+        profile_id = self._match_id(url)
+        webpage = self._download_webpage(url, profile_id)
+
+        ids = re.findall(r'''<a\s+href=".+?/u/%s/([^/]+)">''' % re.escape(profile_id), webpage)
+        ids = [clean_html(id) for id in ids]
+
+        entries = []
+        for id in ids:
+            entries.append({
+                '_type': 'url',
+                'url': ('http://soundgasm.net/u/%s/%s' % (profile_id, id))
+            })
+
+        info_dict = {
+            '_type': 'playlist',
+            'id': profile_id,
+            'title': profile_id,
+            'entries': entries
+        }
+
+        return info_dict;