]>
jfr.im git - yt-dlp.git/blob - yt_dlp/extractor/noz.py
3 from . common
import InfoExtractor
12 class NozIE ( InfoExtractor
):
14 _VALID_URL
= r
'https?://(?:www\.)?noz\.de/video/(?P<id>[0-9]+)/'
16 'url' : 'http://www.noz.de/video/25151/32-Deutschland-gewinnt-Badminton-Lnderspiel-in-Melle' ,
21 'title' : '3:2 - Deutschland gewinnt Badminton-Länderspiel in Melle' ,
22 'description' : 'Vor rund 370 Zuschauern gewinnt die deutsche Badminton-Nationalmannschaft am Donnerstag ein EM-Vorbereitungsspiel gegen Frankreich in Melle. Video Moritz Frankenberg.' ,
23 'thumbnail' : r
're:^http://.*\.jpg' ,
27 def _real_extract ( self
, url
):
28 video_id
= self
._ match
_ id
( url
)
29 webpage
= self
._ download
_ webpage
( url
, video_id
)
30 description
= self
._ og
_ search
_ description
( webpage
)
32 edge_url
= self
._ html
_ search
_ regex
(
33 r
'<script\s+(?:type="text/javascript"\s+)?src="(.*?/videojs_.*?)"' ,
35 edge_content
= self
._ download
_ webpage
( edge_url
, 'meta configuration' )
37 config_url_encoded
= self
._ search
_ regex
(
38 r
'so\.addVariable\("config_url","[^,]*,(.*?)"' ,
39 edge_content
, 'config URL' ,
41 config_url
= urllib
. parse
. unquote ( config_url_encoded
)
43 doc
= self
._ download
_ xml
( config_url
, 'video configuration' )
44 title
= xpath_text ( doc
, './/title' )
45 thumbnail
= xpath_text ( doc
, './/article/thumbnail/url' )
46 duration
= int_or_none ( xpath_text (
47 doc
, './/article/movie/file/duration' ))
49 for qnode
in doc
. findall ( './/article/movie/file/qualities/qual' ):
50 http_url_ele
= find_xpath_attr (
51 qnode
, './html_urls/video_url' , 'format' , 'video/mp4' )
52 http_url
= http_url_ele
. text
if http_url_ele
is not None else None
56 'format_name' : xpath_text ( qnode
, './name' ),
57 'format_id' : ' {}-{} ' . format ( 'http' , xpath_text ( qnode
, './id' )),
58 'height' : int_or_none ( xpath_text ( qnode
, './height' )),
59 'width' : int_or_none ( xpath_text ( qnode
, './width' )),
60 'tbr' : int_or_none ( xpath_text ( qnode
, './bitrate' ), scale
= 1000 ),
63 f4m_url
= xpath_text ( qnode
, 'url_hd2' )
65 formats
. extend ( self
._ extract
_ f
4 m
_ formats
(
66 update_url_query ( f4m_url
, {'hdcore': '3.4.0'}
),
67 video_id
, f4m_id
= 'hds' , fatal
= False ))
68 m3u8_url_ele
= find_xpath_attr (
69 qnode
, './html_urls/video_url' ,
70 'format' , 'application/vnd.apple.mpegurl' )
71 m3u8_url
= m3u8_url_ele
. text
if m3u8_url_ele
is not None else None
73 formats
. extend ( self
._ extract
_ m
3u8_ formats
(
74 m3u8_url
, video_id
, 'mp4' , 'm3u8_native' ,
75 m3u8_id
= 'hls' , fatal
= False ))
82 'description' : description
,
83 'thumbnail' : thumbnail
,