diff --git a/src/ytdl_sub/entries/variables/entry_variables.py b/src/ytdl_sub/entries/variables/entry_variables.py index cbbb39de..992f9ecd 100644 --- a/src/ytdl_sub/entries/variables/entry_variables.py +++ b/src/ytdl_sub/entries/variables/entry_variables.py @@ -6,6 +6,7 @@ from yt_dlp.utils import sanitize_filename from ytdl_sub.entries.base_entry import BaseEntry from ytdl_sub.entries.base_entry import BaseEntryVariables from ytdl_sub.entries.variables.kwargs import CHANNEL +from ytdl_sub.entries.variables.kwargs import CHANNEL_ID from ytdl_sub.entries.variables.kwargs import CREATOR from ytdl_sub.entries.variables.kwargs import DOWNLOAD_INDEX from ytdl_sub.entries.variables.kwargs import EXT @@ -391,6 +392,16 @@ class EntryVariables(BaseEntryVariables): """ return sanitize_filename(self.channel) + @property + def channel_id(self: Self) -> str: + """ + Returns + ------- + str + The channel id if it exists, otherwise returns the entry uploader ID. + """ + return self.kwargs_get(CHANNEL_ID, self.uploader_id) + @property def ext(self: Self) -> str: """ diff --git a/src/ytdl_sub/entries/variables/kwargs.py b/src/ytdl_sub/entries/variables/kwargs.py index 0889f52f..5071cd54 100644 --- a/src/ytdl_sub/entries/variables/kwargs.py +++ b/src/ytdl_sub/entries/variables/kwargs.py @@ -54,6 +54,7 @@ EXTRACTOR = _("extractor") IE_KEY = _("ie_key") EPOCH = _("epoch") CHANNEL = _("channel") +CHANNEL_ID = _("channel_id") CREATOR = _("creator") EXT = _("ext") TITLE = _("title") diff --git a/tests/unit/entries/conftest.py b/tests/unit/entries/conftest.py index 1619cf49..278e2420 100644 --- a/tests/unit/entries/conftest.py +++ b/tests/unit/entries/conftest.py @@ -73,6 +73,7 @@ def mock_entry_to_dict( "creator_sanitized": "abc123", "channel": "abc123", "channel_sanitized": "abc123", + "channel_id": uid, "extractor": extractor, "uploader": "abc123", "uploader_id": "abc123",