mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-11-25 08:41:28 +01:00
Compare commits
3 Commits
9f95c04000
...
1d69ef93bf
Author | SHA1 | Date | |
---|---|---|---|
|
1d69ef93bf | ||
|
7b4e302bae | ||
|
436e02f50a |
|
@ -66,9 +66,6 @@ class Kenh14VideoIE(InfoExtractor):
|
||||||
'duration': 198.88,
|
'duration': 198.88,
|
||||||
'timestamp': 1729741590,
|
'timestamp': 1729741590,
|
||||||
},
|
},
|
||||||
'expected_warnings': [
|
|
||||||
'Failed to download m3u8 information: HTTP Error 404: NOT FOUND',
|
|
||||||
],
|
|
||||||
}]
|
}]
|
||||||
|
|
||||||
def _real_extract(self, url):
|
def _real_extract(self, url):
|
||||||
|
@ -82,6 +79,22 @@ class Kenh14VideoIE(InfoExtractor):
|
||||||
'https://api.kinghub.vn/video/api/v1/detailVideoByGet?FileName={}'.format(
|
'https://api.kinghub.vn/video/api/v1/detailVideoByGet?FileName={}'.format(
|
||||||
remove_start(direct_url, 'kenh14cdn.com/')), video_id, fatal=False)
|
remove_start(direct_url, 'kenh14cdn.com/')), video_id, fatal=False)
|
||||||
|
|
||||||
|
formats = [{'url': f'https://{direct_url}', 'format_id': 'http', 'quality': 1}]
|
||||||
|
subtitles = {}
|
||||||
|
video_data = self._download_json(
|
||||||
|
f'https://{direct_url}.json', video_id, note='Downloading video data', fatal=False)
|
||||||
|
if video_data:
|
||||||
|
if hls_url := video_data.get('hls'):
|
||||||
|
fmts, subs = self._extract_m3u8_formats_and_subtitles(
|
||||||
|
hls_url, video_id, m3u8_id='hls', fatal=False)
|
||||||
|
formats.extend(fmts)
|
||||||
|
self._merge_subtitles(subs, target=subtitles)
|
||||||
|
if dash_url := video_data.get('mpd'):
|
||||||
|
fmts, subs = self._extract_mpd_formats_and_subtitles(
|
||||||
|
dash_url, video_id, mpd_id='dash', fatal=False)
|
||||||
|
formats.extend(fmts)
|
||||||
|
self._merge_subtitles(subs, target=subtitles)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
**traverse_obj(metadata, {
|
**traverse_obj(metadata, {
|
||||||
'duration': ('duration', {parse_duration}),
|
'duration': ('duration', {parse_duration}),
|
||||||
|
@ -94,10 +107,8 @@ class Kenh14VideoIE(InfoExtractor):
|
||||||
traverse_obj(metadata, ('title', {strip_or_none}))
|
traverse_obj(metadata, ('title', {strip_or_none}))
|
||||||
or clean_html(self._og_search_title(webpage))
|
or clean_html(self._og_search_title(webpage))
|
||||||
or clean_html(get_element_by_class('vdbw-title', webpage))),
|
or clean_html(get_element_by_class('vdbw-title', webpage))),
|
||||||
'formats': [
|
'formats': formats,
|
||||||
{'url': f'https://{direct_url}', 'format_id': 'http'},
|
'subtitles': subtitles,
|
||||||
*self._extract_m3u8_formats(f'https://{direct_url}/master.m3u8', video_id, fatal=False),
|
|
||||||
],
|
|
||||||
'description': (
|
'description': (
|
||||||
clean_html(self._og_search_description(webpage))
|
clean_html(self._og_search_description(webpage))
|
||||||
or clean_html(get_element_by_class('vdbw-sapo', webpage))),
|
or clean_html(get_element_by_class('vdbw-sapo', webpage))),
|
||||||
|
@ -141,8 +152,8 @@ class Kenh14PlaylistIE(InfoExtractor):
|
||||||
return self.playlist_from_matches(
|
return self.playlist_from_matches(
|
||||||
get_elements_html_by_class('video-item', webpage), playlist_id,
|
get_elements_html_by_class('video-item', webpage), playlist_id,
|
||||||
(clean_html(get_element_by_class('name', category_detail)) or unescapeHTML(embed_info.get('name'))),
|
(clean_html(get_element_by_class('name', category_detail)) or unescapeHTML(embed_info.get('name'))),
|
||||||
getter=lambda x: 'https://video.kenh14.vn/video/{}.chn'.format(extract_attributes(x)['data-id']),
|
getter=lambda x: 'https://video.kenh14.vn/video/video-{}.chn'.format(extract_attributes(x)['data-id']),
|
||||||
ie=Kenh14VideoIE.ie_key(), playlist_description=(
|
ie=Kenh14VideoIE, playlist_description=(
|
||||||
clean_html(get_element_by_class('description', category_detail))
|
clean_html(get_element_by_class('description', category_detail))
|
||||||
or unescapeHTML(embed_info.get('alternateName'))),
|
or unescapeHTML(embed_info.get('alternateName'))),
|
||||||
thumbnail=traverse_obj(
|
thumbnail=traverse_obj(
|
||||||
|
|
Loading…
Reference in New Issue
Block a user