浏览代码

[Primesharetv] Add primeshare.tv extractor, still need test data

Jeff Buchbinder 10 年之前
父节点
当前提交
d41a3fa1b4
共有 2 个文件被更改,包括 47 次插入0 次删除
  1. 1 0
      youtube_dl/extractor/__init__.py
  2. 46 0
      youtube_dl/extractor/primesharetv.py

+ 1 - 0
youtube_dl/extractor/__init__.py

@@ -381,6 +381,7 @@ from .pornhub import (
 )
 from .pornotube import PornotubeIE
 from .pornoxo import PornoXOIE
+from .primesharetv import PrimesharetvIE
 from .promptfile import PromptFileIE
 from .prosiebensat1 import ProSiebenSat1IE
 from .puls4 import Puls4IE

+ 46 - 0
youtube_dl/extractor/primesharetv.py

@@ -0,0 +1,46 @@
+# encoding: utf-8
+from __future__ import unicode_literals
+
+from .common import InfoExtractor
+from ..utils import (
+    int_or_none,
+    parse_filesize,
+    unified_strdate,
+    urlencode_postdata,
+)
+from ..compat import (
+    compat_urllib_request,
+)
+
+class PrimesharetvIE(InfoExtractor):
+    _VALID_URL = r'https?://(?:www\.)?primeshare\.tv/download/(?P<id>.*)(?:.*)'
+
+    def _real_extract(self, url):
+        video_id = self._match_id(url)
+        webpage = self._download_webpage(url, video_id)
+       
+        self._sleep(9, video_id)
+        
+        hashtoken = self._search_regex(r' name="hash" value="(.*?)" ', webpage, 'hash token')
+        data = urlencode_postdata({
+            'hash': hashtoken,
+        })
+        headers = {
+            'Referer': url,
+            'Content-Type': 'application/x-www-form-urlencoded',
+        }
+        video_page_request = compat_urllib_request.Request(url, data, headers=headers)
+        video_page = self._download_webpage(video_page_request, None, False, '')
+
+        video_url = self._html_search_regex(
+            r'url: \'(http://l\.primeshare\.tv[^\']+)\',', video_page, 'video url')
+
+        title = self._html_search_regex(
+            r'<h1>Watch&nbsp;[^\(]+\(([^/)]+)\)&nbsp;', video_page, 'title')
+
+        return {
+            'id': video_id,
+            'url': video_url,
+            'title': title,
+            'ext': 'mp4',
+        }