[ie/eporner] Extract AV1 formats (#9028)

Authored by: michal-repo
This commit is contained in:
Michal 2024-02-05 00:25:13 +01:00 committed by GitHub
parent e3ce2b385e
commit 96d0f8c1cb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,8 +1,10 @@
from .common import InfoExtractor from .common import InfoExtractor
from ..utils import ( from ..utils import (
encode_base_n,
ExtractorError, ExtractorError,
encode_base_n,
get_elements_by_class,
int_or_none, int_or_none,
join_nonempty,
merge_dicts, merge_dicts,
parse_duration, parse_duration,
str_to_int, str_to_int,
@ -81,6 +83,7 @@ def calc_hash(s):
sources = video['sources'] sources = video['sources']
formats = [] formats = []
has_av1 = bool(get_elements_by_class('download-av1', webpage))
for kind, formats_dict in sources.items(): for kind, formats_dict in sources.items():
if not isinstance(formats_dict, dict): if not isinstance(formats_dict, dict):
continue continue
@ -106,6 +109,14 @@ def calc_hash(s):
'height': height, 'height': height,
'fps': fps, 'fps': fps,
}) })
if has_av1:
formats.append({
'url': src.replace('.mp4', '-av1.mp4'),
'format_id': join_nonempty('av1', format_id),
'height': height,
'fps': fps,
'vcodec': 'av1',
})
json_ld = self._search_json_ld(webpage, display_id, default={}) json_ld = self._search_json_ld(webpage, display_id, default={})