mirror of
https://codeberg.org/polarisfm/youtube-dl
synced 2024-11-26 18:34:32 +01:00
[AnimeLab] Correctly extract mpd and m3u8 formats
This commit is contained in:
parent
395f0e7b11
commit
c3dca171d0
@ -8,6 +8,7 @@ from ..utils import (
|
|||||||
urlencode_postdata,
|
urlencode_postdata,
|
||||||
int_or_none,
|
int_or_none,
|
||||||
str_or_none,
|
str_or_none,
|
||||||
|
determine_ext,
|
||||||
)
|
)
|
||||||
|
|
||||||
from ..compat import compat_HTTPError
|
from ..compat import compat_HTTPError
|
||||||
@ -152,25 +153,6 @@ class AnimeLabIE(AnimeLabBaseIE):
|
|||||||
|
|
||||||
current_format = current_video_list.copy()
|
current_format = current_video_list.copy()
|
||||||
|
|
||||||
current_format['url'] = url
|
|
||||||
quality_data = video_instance.get('videoQuality')
|
|
||||||
if quality_data:
|
|
||||||
quality = quality_data.get('name') or quality_data.get('description')
|
|
||||||
else:
|
|
||||||
quality = None
|
|
||||||
|
|
||||||
height = None
|
|
||||||
if quality:
|
|
||||||
height = int_or_none(self._search_regex(r'(\d+)p?$', quality, 'Video format height', default=None))
|
|
||||||
if height is None and quality.startswith('SD'):
|
|
||||||
# sometimes we are only told it's SD quality
|
|
||||||
height = 480
|
|
||||||
|
|
||||||
if height is None:
|
|
||||||
self.report_warning('Could not get height of video')
|
|
||||||
else:
|
|
||||||
current_format['height'] = height
|
|
||||||
|
|
||||||
format_id_parts = []
|
format_id_parts = []
|
||||||
|
|
||||||
format_id_parts.append(str_or_none(video_instance.get('id')))
|
format_id_parts.append(str_or_none(video_instance.get('id')))
|
||||||
@ -184,6 +166,34 @@ class AnimeLabIE(AnimeLabBaseIE):
|
|||||||
format_id_parts.append(current_format['language'])
|
format_id_parts.append(current_format['language'])
|
||||||
|
|
||||||
format_id = '_'.join([x for x in format_id_parts if x is not None])
|
format_id = '_'.join([x for x in format_id_parts if x is not None])
|
||||||
|
|
||||||
|
ext = determine_ext(url)
|
||||||
|
if ext == 'm3u8':
|
||||||
|
m3u8_formats = self._extract_m3u8_formats(
|
||||||
|
url, video_id, m3u8_id=format_id, fatal=False)
|
||||||
|
formats.extend(m3u8_formats)
|
||||||
|
continue
|
||||||
|
elif ext == 'mpd':
|
||||||
|
mpd_formats = self._extract_mpd_formats(
|
||||||
|
url, video_id, mpd_id=format_id, fatal=False)
|
||||||
|
formats.extend(mpd_formats)
|
||||||
|
continue
|
||||||
|
|
||||||
|
current_format['url'] = url
|
||||||
|
quality_data = video_instance.get('videoQuality')
|
||||||
|
if quality_data:
|
||||||
|
quality = quality_data.get('name') or quality_data.get('description')
|
||||||
|
else:
|
||||||
|
quality = None
|
||||||
|
|
||||||
|
height = None
|
||||||
|
if quality:
|
||||||
|
height = int_or_none(self._search_regex(r'(\d+)p?$', quality, 'Video format height', default=None))
|
||||||
|
|
||||||
|
if height is None:
|
||||||
|
self.report_warning('Could not get height of video')
|
||||||
|
else:
|
||||||
|
current_format['height'] = height
|
||||||
current_format['format_id'] = format_id
|
current_format['format_id'] = format_id
|
||||||
|
|
||||||
formats.append(current_format)
|
formats.append(current_format)
|
||||||
|
Loading…
Reference in New Issue
Block a user