diff --git a/test/test_pot/test_pot_director.py b/test/test_pot/test_pot_director.py index 2fddcab811..bbfdd0e98e 100644 --- a/test/test_pot/test_pot_director.py +++ b/test/test_pot/test_pot_director.py @@ -578,7 +578,8 @@ class TestPoTokenCache: assert cache.get(pot_request) is None cache.store(pot_request, response) assert len(memorypcp.cache) == 1 - assert hashlib.sha256(f'_dlp_cachev1_pExampleProviderv{pot_request.video_id}'.encode()).hexdigest() in memorypcp.cache + assert hashlib.sha256( + f"{{'_dlp_cache': 'v1', '_p': 'ExampleProvider', 'v': '{pot_request.video_id}'}}".encode()).hexdigest() in memorypcp.cache # The second spec provider returns the exact same key bindings as the first one, # however the PoTokenCache should use the provider key to differentiate between them @@ -591,7 +592,8 @@ class TestPoTokenCache: assert cache.get(pot_request) is None cache.store(pot_request, response) assert len(memorypcp.cache) == 2 - assert hashlib.sha256(f'_dlp_cachev1_pExampleProviderTwov{pot_request.video_id}'.encode()).hexdigest() in memorypcp.cache + assert hashlib.sha256( + f"{{'_dlp_cache': 'v1', '_p': 'ExampleProviderTwo', 'v': '{pot_request.video_id}'}}".encode()).hexdigest() in memorypcp.cache def test_cache_provider_preferences(self, pot_request, ie, logger): pcp_one = create_memory_pcp(ie, logger, provider_key='memory_pcp_one') diff --git a/yt_dlp/extractor/youtube/pot/_director.py b/yt_dlp/extractor/youtube/pot/_director.py index e27e5b4750..a35917afe1 100644 --- a/yt_dlp/extractor/youtube/pot/_director.py +++ b/yt_dlp/extractor/youtube/pot/_director.py @@ -144,7 +144,7 @@ class PoTokenCache: return bindings_cleaned def _generate_key(self, bindings: dict) -> str: - binding_string = ''.join(f'{k}{v}' for k, v in sorted(bindings.items())) + binding_string = ''.join(repr(dict(sorted(bindings.items())))) return hashlib.sha256(binding_string.encode()).hexdigest() def get(self, request: PoTokenRequest) -> PoTokenResponse | None: