1 from .common
import InfoExtractor
2 from ..utils
import remove_end
5 class CharlieRoseIE(InfoExtractor
):
6 _VALID_URL
= r
'https?://(?:www\.)?charlierose\.com/(?:video|episode)(?:s|/player)/(?P<id>\d+)'
8 'url': 'https://charlierose.com/videos/27996',
9 'md5': 'fda41d49e67d4ce7c2411fd2c4702e09',
13 'title': 'Remembering Zaha Hadid',
14 'thumbnail': r
're:^https?://.*\.jpg\?\d+',
15 'description': 'We revisit past conversations with Zaha Hadid, in memory of the world renowned Iraqi architect.',
23 'url': 'https://charlierose.com/videos/27996',
24 'only_matching': True,
26 'url': 'https://charlierose.com/episodes/30887?autoplay=true',
27 'only_matching': True,
30 _PLAYER_BASE
= 'https://charlierose.com/video/player/%s'
32 def _real_extract(self
, url
):
33 video_id
= self
._match
_id
(url
)
34 webpage
= self
._download
_webpage
(self
._PLAYER
_BASE
% video_id
, video_id
)
36 title
= remove_end(self
._og
_search
_title
(webpage
), ' - Charlie Rose')
38 info_dict
= self
._parse
_html
5_media
_entries
(
39 self
._PLAYER
_BASE
% video_id
, webpage
, video_id
,
40 m3u8_entry_protocol
='m3u8_native')[0]
41 self
._remove
_duplicate
_formats
(info_dict
['formats'])
46 'thumbnail': self
._og
_search
_thumbnail
(webpage
),
47 'description': self
._og
_search
_description
(webpage
),