From 7fdc46d01619afbb2371b0465d6830602013148f Mon Sep 17 00:00:00 2001 From: Simon Sawicki Date: Sat, 6 Jun 2026 22:49:26 +0200 Subject: [PATCH] [ie/youtube] Fix PO token sanitization for Python 3.15 (#16884) Closes #16876 Authored by: Grub4K --- yt_dlp/extractor/youtube/pot/_director.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/yt_dlp/extractor/youtube/pot/_director.py b/yt_dlp/extractor/youtube/pot/_director.py index 9e467c8092..a33d48a144 100644 --- a/yt_dlp/extractor/youtube/pot/_director.py +++ b/yt_dlp/extractor/youtube/pot/_director.py @@ -438,9 +438,11 @@ def clean_pot(po_token: str): if not mobj: raise ValueError('Invalid PO Token') + # compat: <=py3.14: padded was added in 3.15 and the default for urlsafe is false + data = mobj.group(1).translate(str.maketrans('-_', '+/')) try: return base64.urlsafe_b64encode( - base64.urlsafe_b64decode(mobj.group(1))).decode() + base64.b64decode(data)).decode() except (binascii.Error, ValueError): raise ValueError('Invalid PO Token')