[SpankBang] Add new extractor
authornewtonelectron <newton.electron@gmail.com>
Sun, 5 Apr 2015 19:50:21 +0000 (12:50 -0700)
committernewtonelectron <newton.electron@gmail.com>
Sun, 5 Apr 2015 19:50:21 +0000 (12:50 -0700)
youtube_dl/extractor/__init__.py
youtube_dl/extractor/spankbang.py [new file with mode: 0644]

index 0f7d44616d5dd18f0e611a43b9c005da9b66bada..e6fdf12977e2316adc842daf9adb97b2d7edb201 100644 (file)
@@ -471,6 +471,7 @@ from .southpark import (
     SouthparkDeIE,
 )
 from .space import SpaceIE
     SouthparkDeIE,
 )
 from .space import SpaceIE
+from .spankbang import SpankBangIE
 from .spankwire import SpankwireIE
 from .spiegel import SpiegelIE, SpiegelArticleIE
 from .spiegeltv import SpiegeltvIE
 from .spankwire import SpankwireIE
 from .spiegel import SpiegelIE, SpiegelArticleIE
 from .spiegeltv import SpiegeltvIE
diff --git a/youtube_dl/extractor/spankbang.py b/youtube_dl/extractor/spankbang.py
new file mode 100644 (file)
index 0000000..8e845ef
--- /dev/null
@@ -0,0 +1,38 @@
+# coding: utf-8
+from __future__ import unicode_literals
+
+from .common import InfoExtractor
+import re
+
+class SpankBangIE(InfoExtractor):
+    """Extractor for http://spankbang.com"""
+    
+    _VALID_URL = r"https?://(?:www\.)?spankbang\.com/(?P<id>\w+)/video/.*"
+
+    def _real_extract(self, url):
+        video_id = self._match_id(url)
+        webpage = self._download_webpage(url, video_id)
+
+        title = self._html_search_regex(r"<h1>(?:<img.+?>)?(.*?)</h1>", webpage, "title")
+        
+        stream_key = self._html_search_regex(r"""var\s+stream_key\s*[=]\s*['"](.+?)['"]\s*;""", webpage, "stream_key")
+        
+        qualities = re.findall(r"<span.+?>([0-9]+p).*?</span>", webpage)
+        
+        formats = []
+        for q in sorted(qualities):
+            formats.append({
+                "format_id": q,
+                "format": q,
+                "ext": "mp4",
+                "url": "http://spankbang.com/_{}/{}/title/{}__mp4".format(video_id, stream_key, q)
+            })
+
+        return {
+            "id": video_id,
+            "title": title,
+            "description": self._og_search_description(webpage),
+            "formats": formats
+        }
+
+# vim: tabstop=4 expandtab