[FEATURE] height and width variables (#1243)

Adds `height` and `width` entry variables, representing pixels to know resolution. For audio, defaults to 0.
This commit is contained in:
Jesse Bannon 2025-06-18 20:56:25 -07:00 committed by GitHub
parent faf9fd8a10
commit f6bce88ebd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 37 additions and 0 deletions

View file

@ -83,6 +83,13 @@ extractor_key
:description:
The yt-dlp extractor key
height
~~~~~~
:type: ``Integer``
:description:
Height in pixels of the video. If this value is unavailable (i.e. audio download), it
will default to 0.
ie_key
~~~~~~
:type: ``String``
@ -165,6 +172,13 @@ webpage_url
:description:
The url to the webpage.
width
~~~~~
:type: ``Integer``
:description:
Width in pixels of the video. If this value is unavailable (i.e. audio download), it
will default to 0.
----------------------------------------------------------------------------------------------------
Metadata Variables

View file

@ -102,6 +102,9 @@ class Entry(BaseEntry, Scriptable):
v.sponsorblock_chapters.metadata_key, []
),
v.comments: download_entry._kwargs_get(v.comments.metadata_key, []),
# Updates with more accurate value, which may differ from the metadata value
v.height: download_entry._kwargs_get(v.height.metadata_key, 0),
v.width: download_entry._kwargs_get(v.width.metadata_key, 0),
}
)
return self

View file

@ -1093,6 +1093,24 @@ class EntryVariableDefinitions(ABC):
definition="{ {} }",
)
@cached_property
def height(self: "VariableDefinitions") -> IntegerMetadataVariable:
"""
:description:
Height in pixels of the video. If this value is unavailable (i.e. audio download), it
will default to 0.
"""
return IntegerMetadataVariable.from_entry(metadata_key="height", default=0)
@cached_property
def width(self: "VariableDefinitions") -> IntegerMetadataVariable:
"""
:description:
Width in pixels of the video. If this value is unavailable (i.e. audio download), it
will default to 0.
"""
return IntegerMetadataVariable.from_entry(metadata_key="width", default=0)
class VariableDefinitions(
EntryVariableDefinitions,
@ -1133,6 +1151,8 @@ class VariableDefinitions(
self.ytdl_sub_input_url_index,
self.ytdl_sub_input_url_count,
self.ytdl_sub_keep_files_date_eval,
self.width,
self.height,
}
@cache