]>
jfr.im git - yt-dlp.git/blob - yt_dlp/extractor/internetvideoarchive.py
1 from __future__
import unicode_literals
6 from .common
import InfoExtractor
7 from ..utils
import parse_qs
10 class InternetVideoArchiveIE(InfoExtractor
):
11 _VALID_URL
= r
'https?://video\.internetvideoarchive\.net/(?:player|flash/players)/.*?\?.*?publishedid.*?'
14 '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',
18 'title': 'Kick-Ass 2',
19 'description': 'md5:c189d5b7280400630a1d3dd17eaa8d8a',
23 'skip_download': True,
28 def _build_json_url(query
):
29 return 'http://video.internetvideoarchive.net/player/6/configuration.ashx?' + query
31 def _real_extract(self
, url
):
33 video_id
= query
['publishedid'][0]
34 data
= self
._download
_json
(
35 'https://video.internetvideoarchive.net/videojs7/videojs7.ivasettings.ashx',
36 video_id
, data
=json
.dumps({
37 'customerid': query
['customerid'][0],
38 'publishedid': video_id
,
41 formats
= self
._extract
_m
3u8_formats
(
42 data
['VideoUrl'], video_id
, 'mp4',
43 'm3u8_native', m3u8_id
='hls', fatal
=False)
44 file_url
= formats
[0]['url']
45 if '.ism/' in file_url
:
46 replace_url
= lambda x
: re
.sub(r
'\.ism/[^?]+', '.ism/' + x
, file_url
)
47 formats
.extend(self
._extract
_f
4m
_formats
(
48 replace_url('.f4m'), video_id
, f4m_id
='hds', fatal
=False))
49 formats
.extend(self
._extract
_mpd
_formats
(
50 replace_url('.mpd'), video_id
, mpd_id
='dash', fatal
=False))
51 formats
.extend(self
._extract
_ism
_formats
(
52 replace_url('Manifest'), video_id
, ism_id
='mss', fatal
=False))
53 self
._sort
_formats
(formats
)
59 'thumbnail': data
.get('PosterUrl'),
60 'description': data
.get('Description'),