]>
jfr.im git - yt-dlp.git/blob - youtube_dlc/extractor/internetvideoarchive.py
1 from __future__
import unicode_literals
6 from .common
import InfoExtractor
13 class InternetVideoArchiveIE(InfoExtractor
):
14 _VALID_URL
= r
'https?://video\.internetvideoarchive\.net/(?:player|flash/players)/.*?\?.*?publishedid.*?'
17 'url': 'http://video.internetvideoarchive.net/player/6/configuration.ashx?customerid=69249&publishedid=194487&reporttag=vdbetatitle&playerid=641&autolist=0&domain=www.videodetective.com&maxrate=high&minrate=low&socialplayer=false',
21 'title': 'Kick-Ass 2',
22 'description': 'md5:c189d5b7280400630a1d3dd17eaa8d8a',
26 'skip_download': True,
31 def _build_json_url(query
):
32 return 'http://video.internetvideoarchive.net/player/6/configuration.ashx?' + query
34 def _real_extract(self
, url
):
35 query
= compat_parse_qs(compat_urlparse
.urlparse(url
).query
)
36 video_id
= query
['publishedid'][0]
37 data
= self
._download
_json
(
38 'https://video.internetvideoarchive.net/videojs7/videojs7.ivasettings.ashx',
39 video_id
, data
=json
.dumps({
40 'customerid': query
['customerid'][0],
41 'publishedid': video_id
,
44 formats
= self
._extract
_m
3u8_formats
(
45 data
['VideoUrl'], video_id
, 'mp4',
46 'm3u8_native', m3u8_id
='hls', fatal
=False)
47 file_url
= formats
[0]['url']
48 if '.ism/' in file_url
:
49 replace_url
= lambda x
: re
.sub(r
'\.ism/[^?]+', '.ism/' + x
, file_url
)
50 formats
.extend(self
._extract
_f
4m
_formats
(
51 replace_url('.f4m'), video_id
, f4m_id
='hds', fatal
=False))
52 formats
.extend(self
._extract
_mpd
_formats
(
53 replace_url('.mpd'), video_id
, mpd_id
='dash', fatal
=False))
54 formats
.extend(self
._extract
_ism
_formats
(
55 replace_url('Manifest'), video_id
, ism_id
='mss', fatal
=False))
56 self
._sort
_formats
(formats
)
62 'thumbnail': data
.get('PosterUrl'),
63 'description': data
.get('Description'),