From 9167d8aa9f8f0a7ca08502f2facfef4a442a900f Mon Sep 17 00:00:00 2001 From: Rafael Moraes <50295204+glomatico@users.noreply.github.com> Date: Mon, 2 Mar 2026 12:47:45 -0300 Subject: [PATCH] Respect skip_stream_info when parsing media --- votify/interface/episode.py | 17 +++++++++-------- votify/interface/episode_video.py | 15 ++++++++------- votify/interface/music_video.py | 9 +++++---- votify/interface/song.py | 17 +++++++++-------- 4 files changed, 31 insertions(+), 27 deletions(-) diff --git a/votify/interface/episode.py b/votify/interface/episode.py index f8643bb..79330f0 100644 --- a/votify/interface/episode.py +++ b/votify/interface/episode.py @@ -48,15 +48,16 @@ class SpotifyEpisodeInterface(SpotifyAudioInterface): episode_data["coverArt"]["sources"][0]["url"] ) - try: - media.stream_info = await self.get_stream_info(playback_info, True) - except VotifyMediaAudioQualityNotAvailableException as e: - e.media_metadata = episode_data - raise + if not self.skip_stream_info: + try: + media.stream_info = await self.get_stream_info(playback_info, True) + except VotifyMediaAudioQualityNotAvailableException as e: + e.media_metadata = episode_data + raise - media.decryption_key = DecryptionKey( - decryption_key=DEFAULT_EPISODE_DECRYPTION_KEY, - ) + media.decryption_key = DecryptionKey( + decryption_key=DEFAULT_EPISODE_DECRYPTION_KEY, + ) logger.debug(f"Parsed episode media: {media}") diff --git a/votify/interface/episode_video.py b/votify/interface/episode_video.py index 01f5aec..e745452 100644 --- a/votify/interface/episode_video.py +++ b/votify/interface/episode_video.py @@ -48,14 +48,15 @@ class SpotifyEpisodeVideoInterface(SpotifyVideoInterface): episode_data["coverArt"]["sources"][0]["url"] ) - media.stream_info = await self.get_stream_info(playback_info) + if not self.skip_stream_info: + media.stream_info = await self.get_stream_info(playback_info) - if media.stream_info.audio_track.widevine_pssh: - if self.no_drm: - raise VotifyDrmDisabledException(media.media_id, episode_data) - media.decryption_key = await self.get_widevine_decryption_key( - media.stream_info.audio_track.widevine_pssh - ) + if media.stream_info.audio_track.widevine_pssh: + if self.no_drm: + raise VotifyDrmDisabledException(media.media_id, episode_data) + media.decryption_key = await self.get_widevine_decryption_key( + media.stream_info.audio_track.widevine_pssh + ) logger.debug(f"Parsed episode video media: {media}") diff --git a/votify/interface/music_video.py b/votify/interface/music_video.py index c034331..88ee4eb 100644 --- a/votify/interface/music_video.py +++ b/votify/interface/music_video.py @@ -89,11 +89,12 @@ class SpotifyMusicVideoInterface(SpotifyVideoInterface): album_data["coverArt"]["sources"][0]["url"] ) - media.stream_info = await self.get_stream_info(playback_info) + if not self.skip_stream_info: + media.stream_info = await self.get_stream_info(playback_info) - media.decryption_key = await self.get_widevine_decryption_key( - media.stream_info.audio_track.widevine_pssh - ) + media.decryption_key = await self.get_widevine_decryption_key( + media.stream_info.audio_track.widevine_pssh + ) logger.debug(f"Parsed music video media: {media}") diff --git a/votify/interface/song.py b/votify/interface/song.py index b4507e1..e0a4521 100644 --- a/votify/interface/song.py +++ b/votify/interface/song.py @@ -64,15 +64,16 @@ class SpotifySongInterface(SpotifyAudioInterface): media.album_metadata["coverArt"]["sources"][0]["url"] ) - try: - media.stream_info = await self.get_stream_info(playback_info, False) - except VotifyMediaAudioQualityNotAvailableException as e: - e.media_metadata = track_data - raise + if not self.skip_stream_info: + try: + media.stream_info = await self.get_stream_info(playback_info, False) + except VotifyMediaAudioQualityNotAvailableException as e: + e.media_metadata = track_data + raise - media.decryption_key = await self.get_widevine_decryption_key( - media.stream_info.audio_track.widevine_pssh - ) + media.decryption_key = await self.get_widevine_decryption_key( + media.stream_info.audio_track.widevine_pssh + ) logger.debug(f"Processed song media: {media}")