2 from __future__
import unicode_literals
7 from .common
import InfoExtractor
9 compat_urllib_parse_unquote
,
14 class MediaKlikkIE(InfoExtractor
):
15 _VALID_URL
= r
'''(?x)^https?:\/\/(?:www\.)?
16 (?:mediaklikk|m4sport|hirado|petofilive)\.hu\/.*?videok?\/
17 (?:(?P<year>[0-9]{4})/(?P<month>[0-9]{1,2})/(?P<day>[0-9]{1,2})/)?
21 # mediaklikk. date in html.
22 'url': 'https://mediaklikk.hu/video/hazajaro-delnyugat-bacska-a-duna-menten-palankatol-doroszloig/',
25 'title': 'Hazajáró, DÉLNYUGAT-BÁCSKA – A Duna mentén Palánkától Doroszlóig',
27 'upload_date': '20210901',
28 'thumbnail': 'http://mediaklikk.hu/wp-content/uploads/sites/4/2014/02/hazajarouj_JO.jpg'
32 'url': 'https://m4sport.hu/video/2021/08/30/gyemant-liga-parizs/',
35 'title': 'Gyémánt Liga, Párizs',
37 'upload_date': '20210830',
38 'thumbnail': 'http://m4sport.hu/wp-content/uploads/sites/4/2021/08/vlcsnap-2021-08-30-18h21m20s10-1024x576.jpg'
41 # m4sport with *video/ url and no date
42 'url': 'https://m4sport.hu/bl-video/real-madrid-chelsea-1-1/',
45 'title': 'Real Madrid - Chelsea 1-1',
47 'thumbnail': 'http://m4sport.hu/wp-content/uploads/sites/4/2021/04/Sequence-01.Still001-1024x576.png'
51 'url': 'https://hirado.hu/videok/felteteleket-szabott-a-fovaros/',
54 'title': 'Feltételeket szabott a főváros',
56 'thumbnail': 'http://hirado.hu/wp-content/uploads/sites/4/2021/09/vlcsnap-2021-09-01-20h20m37s165.jpg'
60 'url': 'https://petofilive.hu/video/2021/06/07/tha-shudras-az-akusztikban/',
63 'title': 'Tha Shudras az Akusztikban',
65 'upload_date': '20210607',
66 'thumbnail': 'http://petofilive.hu/wp-content/uploads/sites/4/2021/06/vlcsnap-2021-06-07-22h14m23s915-1024x576.jpg'
70 def _real_extract(self
, url
):
71 mobj
= self
._match
_valid
_url
(url
)
72 display_id
= mobj
.group('id')
73 webpage
= self
._download
_webpage
(url
, display_id
)
75 player_data_str
= self
._html
_search
_regex
(
76 r
'mtva_player_manager\.player\(document.getElementById\(.*\),\s?(\{.*\}).*\);', webpage
, 'player data')
77 player_data
= self
._parse
_json
(player_data_str
, display_id
, compat_urllib_parse_unquote
)
78 video_id
= compat_str(player_data
['contentId'])
79 title
= player_data
.get('title') or self
._og
_search
_title
(webpage
, fatal
=False) or \
80 self
._html
_search
_regex
(r
'<h\d+\b[^>]+\bclass="article_title">([^<]+)<', webpage
, 'title')
82 upload_date
= unified_strdate(
83 '%s-%s-%s' % (mobj
.group('year'), mobj
.group('month'), mobj
.group('day')))
85 upload_date
= unified_strdate(self
._html
_search
_regex
(
86 r
'<p+\b[^>]+\bclass="article_date">([^<]+)<', webpage
, 'upload date', default
=None))
88 player_data
['video'] = player_data
.pop('token')
89 player_page
= self
._download
_webpage
('https://player.mediaklikk.hu/playernew/player.php', video_id
, query
=player_data
)
90 playlist_url
= self
._proto
_relative
_url
(compat_urllib_parse_unquote(
91 self
._html
_search
_regex
(r
'\"file\":\s*\"(\\?/\\?/.*playlist\.m3u8)\"', player_page
, 'playlist_url')).replace('\\/', '/'))
93 formats
= self
._extract
_wowza
_formats
(
94 playlist_url
, video_id
, skip_protocols
=['f4m', 'smil', 'dash'])
95 self
._sort
_formats
(formats
)
100 'display_id': display_id
,
102 'upload_date': upload_date
,
103 'thumbnail': player_data
.get('bgImage') or self
._og
_search
_thumbnail
(webpage
)