⬆️ Update music-assistant-models to 1.1.73 (#2697)
authormusic-assistant-machine <141749843+music-assistant-machine@users.noreply.github.com>
Thu, 27 Nov 2025 19:57:19 +0000 (20:57 +0100)
committerGitHub <noreply@github.com>
Thu, 27 Nov 2025 19:57:19 +0000 (19:57 +0000)
* ⬆️ Update music-assistant-models to 1.1.73

* handle streamdetails expiration

---------

Co-authored-by: marcelveldt <6389780+marcelveldt@users.noreply.github.com>
Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com>
music_assistant/helpers/audio.py
pyproject.toml
requirements_all.txt

index 11a91d7ad44f327d677fbdb259a916f7706d7476..5e918b476cf88e8b85239d69f09522fe9fdfe628 100644 (file)
@@ -50,7 +50,6 @@ from music_assistant.helpers.throttle_retry import BYPASS_THROTTLER
 from music_assistant.helpers.util import clean_stream_title, remove_file
 
 from .audio_buffer import AudioBuffer
-from .datetime import utc
 from .dsp import filter_to_ffmpeg_params
 from .ffmpeg import FFMpeg, get_ffmpeg_args, get_ffmpeg_stream
 from .playlists import IsHLSPlaylist, PlaylistItem, fetch_playlist, parse_m3u
@@ -77,7 +76,6 @@ SLOW_PROVIDERS = ("tidal", "ytmusic", "apple_music")
 
 CACHE_CATEGORY_RESOLVED_RADIO_URL: Final[int] = 100
 CACHE_PROVIDER: Final[str] = "audio"
-STREAMDETAILS_EXPIRATION: Final[int] = 60 * 15  # 15 minutes
 
 
 def align_audio_to_frame_boundary(audio_data: bytes, pcm_format: AudioFormat) -> bytes:
@@ -255,11 +253,10 @@ async def get_stream_details(
         )
     buffer: AudioBuffer | None = None
     if queue_item.streamdetails and (
-        (utc() - queue_item.streamdetails.created_at).seconds < STREAMDETAILS_EXPIRATION
+        (queue_item.streamdetails.created_at + queue_item.streamdetails.expiration) > time.time()
         or ((buffer := queue_item.streamdetails.buffer) and buffer.is_valid(seek_position))
     ):
-        # already got a fresh/unused (or cached) streamdetails
-        # we assume that the streamdetails are valid for max STREAMDETAILS_EXPIRATION seconds
+        # already got a fresh/unused (or unexpired) streamdetails
         streamdetails = queue_item.streamdetails
     else:
         # retrieve streamdetails from provider
index 51b2b3c27b850fae52c3724319cfcc368ead725e..9ce98aaaf327fb0dca3b0a51d99b8ee1733f04d0 100644 (file)
@@ -26,7 +26,7 @@ dependencies = [
   "get-mac==0.9.2",
   "mashumaro==3.17",
   "music-assistant-frontend==2.17.12",
-  "music-assistant-models==1.1.72",
+  "music-assistant-models==1.1.73",
   "mutagen==1.47.0",
   "orjson==3.11.4",
   "pillow==11.3.0",
index 1594b1f2eac0eab3578c3f3f221b456d158cc8b5..53c451de099b7af40579cc9c58ef142de5608c54 100644 (file)
@@ -38,7 +38,7 @@ librosa==0.11.0
 lyricsgenius==3.7.2
 mashumaro==3.17
 music-assistant-frontend==2.17.12
-music-assistant-models==1.1.72
+music-assistant-models==1.1.73
 mutagen==1.47.0
 niconico.py-ma==2.1.0.post1
 orjson==3.11.4