]>
jfr.im git - yt-dlp.git/blob - youtube_dl/extractor/shared.py
1 from __future__
import unicode_literals
6 from .common
import InfoExtractor
17 class SharedIE(InfoExtractor
):
18 _VALID_URL
= r
'http://shared\.sx/(?P<id>[\da-z]{10})'
21 'url': 'http://shared.sx/0060718775',
22 'md5': '106fefed92a8a2adb8c98e6a0652f49b',
30 def _real_extract(self
, url
):
31 video_id
= self
._match
_id
(url
)
32 webpage
= self
._download
_webpage
(url
, video_id
)
34 if '>File does not exist<' in webpage
:
36 'Video %s does not exist' % video_id
, expected
=True)
38 download_form
= dict(re
.findall(
39 r
'<input type="hidden" name="([^"]+)" value="([^"]*)"', webpage
))
40 request
= compat_urllib_request
.Request(
41 url
, compat_urllib_parse
.urlencode(download_form
))
42 request
.add_header('Content-Type', 'application/x-www-form-urlencoded')
44 video_page
= self
._download
_webpage
(
45 request
, video_id
, 'Downloading video page')
47 video_url
= self
._html
_search
_regex
(
48 r
'data-url="([^"]+)"', video_page
, 'video URL')
49 title
= base64
.b64decode(self
._html
_search
_meta
(
50 'full:title', webpage
, 'title')).decode('utf-8')
51 filesize
= int_or_none(self
._html
_search
_meta
(
52 'full:size', webpage
, 'file size', fatal
=False))
53 thumbnail
= self
._html
_search
_regex
(
54 r
'data-poster="([^"]+)"', video_page
, 'thumbnail', default
=None)
62 'thumbnail': thumbnail
,