From 53d903f67d5ca255d302e7e93aceb45de59c3410 Mon Sep 17 00:00:00 2001 From: Rafael Moraes <50295204+glomatico@users.noreply.github.com> Date: Sun, 22 Mar 2026 13:22:25 -0300 Subject: [PATCH] Build Widevine PSSH from file_id --- votify/interface/audio.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/votify/interface/audio.py b/votify/interface/audio.py index d0cf765..31d5668 100644 --- a/votify/interface/audio.py +++ b/votify/interface/audio.py @@ -1,5 +1,7 @@ import logging +from pywidevine.license_protocol_pb2 import WidevinePsshData + from .base import SpotifyBaseInterface from .enums import AudioQuality from .exceptions import VotifyMediaFormatNotAvailableException @@ -140,9 +142,11 @@ class SpotifyAudioInterface(SpotifyBaseInterface): self, file_id: str, ) -> str: - seek_table_response = await self.api.get_seek_table(file_id) - pssh = seek_table_response.get("pssh", seek_table_response.get("widevine_pssh")) + pssh_obj = WidevinePsshData() + pssh_obj.algorithm = WidevinePsshData.AESCTR + pssh_obj.key_ids.append(bytes.fromhex(file_id[:32])) + pssh_obj.provider = "spotify" + pssh_obj.content_id = bytes.fromhex(file_id) + pssh_obj.protection_scheme = 1667591779 - logger.debug(f"Received PSSH: {pssh}") - - return pssh + return pssh_obj.SerializeToString()