From 7a25fd169d7b3d155c19aa27fd72d5ebd39c925a Mon Sep 17 00:00:00 2001 From: tcely Date: Thu, 12 Jun 2025 12:49:26 -0400 Subject: [PATCH] Special case for `UULV` prefix of channel IDs --- tubesync/sync/management/commands/create-tvshow-nfo.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tubesync/sync/management/commands/create-tvshow-nfo.py b/tubesync/sync/management/commands/create-tvshow-nfo.py index 095c03d7..3691b259 100644 --- a/tubesync/sync/management/commands/create-tvshow-nfo.py +++ b/tubesync/sync/management/commands/create-tvshow-nfo.py @@ -17,11 +17,14 @@ def validYoutubeID(arg, /): ( arg_str[0:2] in frozenset(('PL',)) ) or ( arg_str[-1] in frozenset('AQgw') ) ) - valid_length = len(arg_str) in {24, 34} + valid_length = len(arg_str) in {18, 24, 26, 34} if not ( valid_beginning and valid_ending and valid_length ): raise ValueError('not a channel or playlist ID') try: - base64.b64decode(arg_str[2:] + '==', altchars='-_', validate=True) + value = arg_str[2:] + '==' + if 26 == len(arg_str) and 'UULV' == arg_str[0:4]: + value = value[2:] + base64.b64decode(value, altchars='-_', validate=True) except binascii.Error as e: raise ValueError('not a channel or playlist ID') from e return arg_str