[Primesharetv] Add primeshare.tv extractor, still need test data
[youtube-dl] / youtube_dl / extractor / primesharetv.py
1 # encoding: utf-8
2 from __future__ import unicode_literals
3
4 from .common import InfoExtractor
5 from ..utils import (
6     int_or_none,
7     parse_filesize,
8     unified_strdate,
9     urlencode_postdata,
10 )
11 from ..compat import (
12     compat_urllib_request,
13 )
14
15 class PrimesharetvIE(InfoExtractor):
16     _VALID_URL = r'https?://(?:www\.)?primeshare\.tv/download/(?P<id>.*)(?:.*)'
17
18     def _real_extract(self, url):
19         video_id = self._match_id(url)
20         webpage = self._download_webpage(url, video_id)
21        
22         self._sleep(9, video_id)
23         
24         hashtoken = self._search_regex(r' name="hash" value="(.*?)" ', webpage, 'hash token')
25         data = urlencode_postdata({
26             'hash': hashtoken,
27         })
28         headers = {
29             'Referer': url,
30             'Content-Type': 'application/x-www-form-urlencoded',
31         }
32         video_page_request = compat_urllib_request.Request(url, data, headers=headers)
33         video_page = self._download_webpage(video_page_request, None, False, '')
34
35         video_url = self._html_search_regex(
36             r'url: \'(http://l\.primeshare\.tv[^\']+)\',', video_page, 'video url')
37
38         title = self._html_search_regex(
39             r'<h1>Watch&nbsp;[^\(]+\(([^/)]+)\)&nbsp;', video_page, 'title')
40
41         return {
42             'id': video_id,
43             'url': video_url,
44             'title': title,
45             'ext': 'mp4',
46         }