diff --git a/yt_dlp/extractor/plvideo.py b/yt_dlp/extractor/plvideo.py index 9ed8e3635c..65b047b3aa 100644 --- a/yt_dlp/extractor/plvideo.py +++ b/yt_dlp/extractor/plvideo.py @@ -16,6 +16,17 @@ class PlVideoVideoIE(InfoExtractor): }, ] + def _quality_to_dimensions(self, quality): + mapped = { + '240p': (426, 240), + '360p': (640, 360), + '468p': (720, 468), + '480p': (720, 480), + '720p': (1280, 720), + '1080p': (1920, 1080), + } + return mapped.get(quality) + def _real_extract(self, url): video_id = self._match_id(url) api_url = f'https://api.g1.plvideo.ru/v1/videos/{video_id}?Aud=18' @@ -33,12 +44,16 @@ def _real_extract(self, url): for key, value in item.get('profiles').items(): hlsurl = value.get('hls') + dimensions = self._quality_to_dimensions(key) fmt = { 'url': hlsurl, 'ext': 'mp4', 'quality': preference(key), + 'width': dimensions[0], + 'height': dimensions[1], 'format_id': key, 'protocol': 'm3u8_native', + 'aspect_ratio': float(value.get('aspectRatio')), } formats.append(fmt)