Marcel van der Veldt [Sat, 15 Mar 2025 08:31:40 +0000 (09:31 +0100)]
Merge branch 'dev' of https://github.com/music-assistant/server into dev
Marcel van der Veldt [Sat, 15 Mar 2025 08:18:27 +0000 (09:18 +0100)]
Fixes for Snapcast
dependabot[bot] [Sat, 15 Mar 2025 07:08:48 +0000 (08:08 +0100)]
Chore(deps): Bump yt-dlp from 2024.12.23 to 2025.2.19 (#2020)
* Chore(deps): Bump yt-dlp from 2024.12.23 to 2025.2.19
Bumps [yt-dlp](https://github.com/yt-dlp/yt-dlp) from 2024.12.23 to 2025.2.19.
- [Release notes](https://github.com/yt-dlp/yt-dlp/releases)
- [Changelog](https://github.com/yt-dlp/yt-dlp/blob/master/Changelog.md)
- [Commits](https://github.com/yt-dlp/yt-dlp/compare/2024.12.23...2025.02.19)
---
updated-dependencies:
- dependency-name: yt-dlp
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
* Buml yt-dlp.
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Marvin Schenkel <marvinschenkel@gmail.com>
Marcel van der Veldt [Sat, 15 Mar 2025 06:48:56 +0000 (07:48 +0100)]
Fix: snapcast default stream already exists
Marcel van der Veldt [Sat, 15 Mar 2025 05:28:58 +0000 (06:28 +0100)]
Fix: plugin source stream to http endpoint
Marcel van der Veldt [Sat, 15 Mar 2025 01:31:03 +0000 (02:31 +0100)]
Fix: Config entries
Marcel van der Veldt [Fri, 14 Mar 2025 22:35:42 +0000 (23:35 +0100)]
bump models to 1.1.38
Fabian Munkes [Fri, 14 Mar 2025 10:44:31 +0000 (03:44 -0700)]
Add gPodder podcast provider (#2036)
OzGav [Thu, 13 Mar 2025 23:17:01 +0000 (10:17 +1100)]
Delete siriusxm/icon_dark.svg
Having this file upsets the selection of the coloured or monochrome versions
music-assistant-machine [Thu, 13 Mar 2025 21:59:51 +0000 (22:59 +0100)]
frontend-2.14.0 (#2038)
* Update pyproject.toml for 2.14.0
* Update requirements_all.txt for 2.14.0
Marcel van der Veldt [Thu, 13 Mar 2025 21:49:22 +0000 (22:49 +0100)]
Fix queue item duration with fixed content length
Marcel van der Veldt [Thu, 13 Mar 2025 21:45:33 +0000 (22:45 +0100)]
chore: cleanup
Fabian Munkes [Thu, 13 Mar 2025 21:36:26 +0000 (14:36 -0700)]
Podcastfeed: Use helper functions (#2035)
Marcel van der Veldt [Thu, 13 Mar 2025 21:36:10 +0000 (22:36 +0100)]
Several optimizations to the Snapcast provider (#2037)
Maxim Raznatovski [Thu, 13 Mar 2025 17:35:56 +0000 (18:35 +0100)]
Feat: Mutichannel Parametric Equalizer (#2031)
* refactor: simply settings preamp for PEQs
* fix: check for null
* feat: add support for using a PEQ bands channel
* refactor: add ALL channel
* feat: add multichannel preamp support
* fix: muted channels when per channel preamp not set
Fabian Munkes [Thu, 13 Mar 2025 17:34:26 +0000 (10:34 -0700)]
[Chore] Move podcastparser parse functions from itunes search provider to helpers (#2034)
Marcel van der Veldt [Wed, 12 Mar 2025 23:32:15 +0000 (00:32 +0100)]
Add base logic for recommendations (#2033)
Marcel van der Veldt [Wed, 12 Mar 2025 21:37:41 +0000 (22:37 +0100)]
Some small improvements to the Airplay provider (#2032)
Willem-Jan Zijderveld [Tue, 11 Mar 2025 23:49:51 +0000 (00:49 +0100)]
[LastFM Scrobbler] Add some basic unit tests and fix a bug (#2028)
* Extract logic to a handler and added a couple unit tests
* Bugfix: now_playing was triggered when pausing the player early in the song
Marcel van der Veldt [Tue, 11 Mar 2025 23:41:52 +0000 (00:41 +0100)]
Finalize stream caching + fix several bugs (#2029)
Ian Campbell [Tue, 11 Mar 2025 23:38:35 +0000 (23:38 +0000)]
listenbrainz: Cross-port fixes from last.fm scrobbler (#2027)
Parts of #2018 apply here too.
I have not personally witnessed these duplications in my scrobbles, but I see
no reason why the two should differ in this regard.
OzGav [Tue, 11 Mar 2025 09:14:40 +0000 (19:14 +1000)]
Increase clarity of note (#2026)
Increase clarity
music-assistant-machine [Mon, 10 Mar 2025 22:46:47 +0000 (23:46 +0100)]
frontend-2.13.1 (#2025)
* Update pyproject.toml for 2.13.1
* Update requirements_all.txt for 2.13.1
Marcel van der Veldt [Mon, 10 Mar 2025 22:21:06 +0000 (23:21 +0100)]
Merge branch 'dev' of https://github.com/music-assistant/server into dev
Marcel van der Veldt [Mon, 10 Mar 2025 22:21:01 +0000 (23:21 +0100)]
Fix loudness assignment race condition
Willem-Jan Zijderveld [Mon, 10 Mar 2025 22:15:34 +0000 (23:15 +0100)]
Various bugfixes for the LastFM provider (#2018)
dependabot[bot] [Mon, 10 Mar 2025 22:14:08 +0000 (23:14 +0100)]
Chore(deps): Bump cryptography from 44.0.1 to 44.0.2 (#2021)
Bumps [cryptography](https://github.com/pyca/cryptography) from 44.0.1 to 44.0.2.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/44.0.1...44.0.2)
---
updated-dependencies:
- dependency-name: cryptography
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
dependabot[bot] [Mon, 10 Mar 2025 22:13:56 +0000 (23:13 +0100)]
Chore(deps): Bump orjson from 3.10.12 to 3.10.15 (#2023)
Bumps [orjson](https://github.com/ijl/orjson) from 3.10.12 to 3.10.15.
- [Release notes](https://github.com/ijl/orjson/releases)
- [Changelog](https://github.com/ijl/orjson/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ijl/orjson/compare/3.10.12...3.10.15)
---
updated-dependencies:
- dependency-name: orjson
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Eric Munson [Mon, 10 Mar 2025 22:13:46 +0000 (18:13 -0400)]
Fix: Subsonic: Bump py-opensonic to fix stupid typo (#2024)
Fixes: https://github.com/music-assistant/support/issues/3710
Signed-off-by: Eric B Munson <eric@munsonfam.org>
Marcel van der Veldt [Mon, 10 Mar 2025 22:12:17 +0000 (23:12 +0100)]
Fix: output bit depth should be as high as possibe
If a player supports >16 bits we should use that as output format as well because internally we use 32bits to leave headroom for processing
Marcel van der Veldt [Mon, 10 Mar 2025 22:10:47 +0000 (23:10 +0100)]
Fix: enqueue next logic and some endless loop issues in queue controller
Marcel van der Veldt [Mon, 10 Mar 2025 22:09:37 +0000 (23:09 +0100)]
Fix sonos play modes
Fix some weird issues with Sonos repeat mode spontanuous reverting to single repeat
Marcel van der Veldt [Mon, 10 Mar 2025 16:04:06 +0000 (17:04 +0100)]
Fix: Ensure we pad some silence before any live/radio stream to prevent jitter
Marcel van der Veldt [Mon, 10 Mar 2025 15:11:06 +0000 (16:11 +0100)]
Chore: limit cache filling a bit more
to keep cpu to a minimum on super fast connections, rate limit the cache fill a bit more
Marcel van der Veldt [Mon, 10 Mar 2025 14:35:52 +0000 (15:35 +0100)]
Chore: further silence ffmpeg logging
Marcel van der Veldt [Mon, 10 Mar 2025 14:47:41 +0000 (15:47 +0100)]
adjust pre-commit config
Marcel van der Veldt [Mon, 10 Mar 2025 13:50:00 +0000 (14:50 +0100)]
Fix playlist parsing with parent folder references (#2019)
If a playlist contains ../ parent references, auto resolve these
Marcel van der Veldt [Mon, 10 Mar 2025 13:19:37 +0000 (14:19 +0100)]
Ignore playlists which are stored with album tracks (#2017)
OzGav [Sun, 9 Mar 2025 23:35:20 +0000 (09:35 +1000)]
Replace listenbrainz image
music-assistant-machine [Sun, 9 Mar 2025 23:18:19 +0000 (00:18 +0100)]
frontend-2.13.0 (#2016)
* Update pyproject.toml for 2.13.0
* Update requirements_all.txt for 2.13.0
Eric Munson [Sun, 9 Mar 2025 23:04:25 +0000 (19:04 -0400)]
Fix: Subsonic: Catch DataNotFoundError for artwork (#2012)
This exception simply means that there is no artwork to return (and
probably shouldn't be an exception, but there we are). We will catch
this exception and return None.
Fixes: https://github.com/music-assistant/support/issues/3610
Signed-off-by: Eric B Munson <eric@munsonfam.org>
Maxim Raznatovski [Sun, 9 Mar 2025 22:49:24 +0000 (23:49 +0100)]
Feat: Built-in Web Player Provider (#2009)
Marcel van der Veldt [Sun, 9 Mar 2025 21:50:18 +0000 (22:50 +0100)]
Fix small race condition in snapcast teardown
Marcel van der Veldt [Sun, 9 Mar 2025 19:10:45 +0000 (20:10 +0100)]
Chore: small (textual) change to announcements logic
Marcel van der Veldt [Sun, 9 Mar 2025 18:43:38 +0000 (19:43 +0100)]
Fix: check for none value in mutagen tags
Marcel van der Veldt [Sun, 9 Mar 2025 17:08:25 +0000 (18:08 +0100)]
Fix: don't crash on malformed loudness value
Marcel van der Veldt [Sun, 9 Mar 2025 14:18:39 +0000 (15:18 +0100)]
Rename the slimproto provider to squeezelite (#2015)
Ian Campbell [Sun, 9 Mar 2025 14:15:43 +0000 (14:15 +0000)]
Add ListenBrainz scrobbler provider (#2008)
Add listenbrainz scrobbler
Jozef Kruszynski [Sun, 9 Mar 2025 14:14:59 +0000 (15:14 +0100)]
Add pkce to Tidal provider's manifest requirements (#2013)
fix: add pkce to tidal manifest requirements
Marcel van der Veldt [Sun, 9 Mar 2025 00:40:12 +0000 (01:40 +0100)]
Fix: ensure the source attribute gets restored after playback of announcement
Eric Munson [Sat, 8 Mar 2025 23:51:18 +0000 (18:51 -0500)]
Fix Subsonic: Use transcode metadata when present (#2011)
Use transcode metadata when present
When transcoding, a server should fill out the transcode_content_type
field when metadata for a track is requested. If this field is present
we need to use it instead of the on disk format.
Fixes: https://github.com/music-assistant/support/issues/3586
Signed-off-by: Eric B Munson <eric@munsonfam.org>
Jozef Kruszynski [Sat, 8 Mar 2025 23:50:39 +0000 (00:50 +0100)]
Tidal provider maintenance: add tidaluser class (#2010)
Marcel van der Veldt [Sat, 8 Mar 2025 00:31:38 +0000 (01:31 +0100)]
Fix: always use fallback default supported samplerate for esphome player
Marcel van der Veldt [Fri, 7 Mar 2025 23:55:24 +0000 (00:55 +0100)]
Fix: prevent high cpu when filling cache
yield to eventloop to allow headroom for other tasks to be executed
OzGav [Fri, 7 Mar 2025 11:20:41 +0000 (21:20 +1000)]
Add coloured lastfm icon
OzGav [Fri, 7 Mar 2025 11:20:19 +0000 (22:20 +1100)]
Rename icon.svg to icon_monochrome.svg
Matt Blum [Fri, 7 Mar 2025 09:02:00 +0000 (03:02 -0600)]
Add advanced networking (list of IPs) to Sonos S1 provider (#1988)
Maxim Raznatovski [Fri, 7 Mar 2025 08:56:31 +0000 (09:56 +0100)]
Fix: Missing `MULTI_DEVICE_DSP` in player groups (#2007)
Fix: Missing `MULTI_DEVICE_DSP` on player groups
Marcel van der Veldt [Fri, 7 Mar 2025 08:42:02 +0000 (09:42 +0100)]
Fix: make ffmpeg log less verbose
jdelaney72 [Fri, 7 Mar 2025 07:58:50 +0000 (23:58 -0800)]
Fix broken links in DEVELOPMENT.md (#2006)
OzGav [Fri, 7 Mar 2025 04:36:58 +0000 (15:36 +1100)]
Update manifest.json
Willem-Jan Zijderveld [Fri, 7 Mar 2025 00:20:41 +0000 (01:20 +0100)]
Add LastFM Audio Scrobbler plugin provider (#1850)
Marcel van der Veldt [Fri, 7 Mar 2025 00:14:19 +0000 (01:14 +0100)]
Fix: prevent snapcast restarting when mass is shutting down
Marcel van der Veldt [Thu, 6 Mar 2025 22:34:54 +0000 (23:34 +0100)]
Fix: ignore volume adjustments in announcement if strategy is none
Marcel van der Veldt [Thu, 6 Mar 2025 21:53:04 +0000 (22:53 +0100)]
Fix: hide disabled and removed providers from inprogress widgets
Marcel van der Veldt [Thu, 6 Mar 2025 18:16:20 +0000 (19:16 +0100)]
Fix: extremely short audio clips are not working
Marcel van der Veldt [Thu, 6 Mar 2025 18:15:57 +0000 (19:15 +0100)]
Merge branch 'dev' of https://github.com/music-assistant/server into dev
Marcel van der Veldt [Thu, 6 Mar 2025 18:15:51 +0000 (19:15 +0100)]
Enhancement: Migrate manual discovery IP's to dedicated config entry
Jozef Kruszynski [Thu, 6 Mar 2025 18:08:32 +0000 (19:08 +0100)]
Tidal: replace generic exceptions with specifics (#2005)
refactor(exception-handlng): replace generic exceptions with specifics
Jozef Kruszynski [Thu, 6 Mar 2025 17:48:49 +0000 (18:48 +0100)]
Tidal: remove unnecessary error handling decorator (#2004)
fix: remove unnecessary error handling decorator
Marcel van der Veldt [Thu, 6 Mar 2025 14:40:55 +0000 (15:40 +0100)]
Chore: Also mark unavailable queue item in sonos queue
Marcel van der Veldt [Thu, 6 Mar 2025 14:23:31 +0000 (15:23 +0100)]
Chore: some textual changes
Marcel van der Veldt [Thu, 6 Mar 2025 14:16:56 +0000 (15:16 +0100)]
Fix: determine content type from file extension
Marcel van der Veldt [Thu, 6 Mar 2025 14:00:22 +0000 (15:00 +0100)]
Fix: auto try next track if stream fails
When we try to start media and we couldnt get the streamdetails for whatever reason, automatically try the next track
Marcel van der Veldt [Thu, 6 Mar 2025 13:59:13 +0000 (14:59 +0100)]
Enhancement: Use pure memory cache for audio caching
- Only cache in memory and not with intermediate file to prevent weird issues
- Add config toggle to enable/disable audio caching
- Use intermediate NUT container when needed to enable seeking in e.g. ogg streams
Marcel van der Veldt [Thu, 6 Mar 2025 09:07:23 +0000 (10:07 +0100)]
Fix: resume last track not always working correctly
Marcel van der Veldt [Thu, 6 Mar 2025 08:22:48 +0000 (09:22 +0100)]
Chore: small textual changes
Jozef Kruszynski [Thu, 6 Mar 2025 07:20:18 +0000 (08:20 +0100)]
Various bugfixes for the Tidal provider after the refactor (#2003)
* fix(auth): add client_id fallback
* fix: Ensure search returns results properly
OzGav [Thu, 6 Mar 2025 05:54:42 +0000 (16:54 +1100)]
Update manifest.json
OzGav [Thu, 6 Mar 2025 03:35:07 +0000 (13:35 +1000)]
Add monochrome icon
OzGav [Thu, 6 Mar 2025 03:29:11 +0000 (13:29 +1000)]
Add iTunes Podcast colour icon
Marcel van der Veldt [Wed, 5 Mar 2025 23:12:15 +0000 (00:12 +0100)]
Fix Tidal streamdetails
Jozef Kruszynski [Wed, 5 Mar 2025 22:44:23 +0000 (23:44 +0100)]
Adjust Tidal provider to a fully async implementation (#1995)
Rob Sonke [Wed, 5 Mar 2025 22:43:06 +0000 (23:43 +0100)]
iBroadcast: Correct disc numbers in case the album has a disc number provided (#2000)
fix: Correct disc numbers in case the album has a disc number provided
Marcel van der Veldt [Wed, 5 Mar 2025 21:12:04 +0000 (22:12 +0100)]
Fix announcement feature
- Fix duration calculation for announcements
- Fix typo in announcements handling
Marcel van der Veldt [Tue, 4 Mar 2025 20:56:01 +0000 (21:56 +0100)]
More fixes to audio caching
Fix: finalize audio stream caching
- Automatically use cache when tmpfs available
- Dont use cache for very large files
- Force cache for encrypted audio
- Force cache for Apple Music streams
- Stream from intermediate file if cache is still being created
- bump models to 1.1.33
music-assistant-machine [Wed, 5 Mar 2025 13:55:49 +0000 (14:55 +0100)]
frontend-2.12.2 (#2002)
* Update pyproject.toml for 2.12.2
* Update requirements_all.txt for 2.12.2
music-assistant-machine [Tue, 4 Mar 2025 22:09:49 +0000 (23:09 +0100)]
frontend-2.12.1 (#2001)
* Update pyproject.toml for 2.12.1
* Update requirements_all.txt for 2.12.1
Ztripez [Tue, 4 Mar 2025 21:47:45 +0000 (22:47 +0100)]
Audible provider: Fixes pagination and small cleanups (#1982)
dependabot[bot] [Tue, 4 Mar 2025 21:44:38 +0000 (22:44 +0100)]
Chore(deps): Bump syrupy from 4.8.1 to 4.8.2 (#1996)
Bumps [syrupy](https://github.com/syrupy-project/syrupy) from 4.8.1 to 4.8.2.
- [Release notes](https://github.com/syrupy-project/syrupy/releases)
- [Changelog](https://github.com/syrupy-project/syrupy/blob/main/CHANGELOG.md)
- [Commits](https://github.com/syrupy-project/syrupy/compare/v4.8.1...v4.8.2)
---
updated-dependencies:
- dependency-name: syrupy
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Fabian Munkes [Tue, 4 Mar 2025 21:32:12 +0000 (22:32 +0100)]
Add iTunes Podcast Search Provider (#1977)
Fabian Munkes [Tue, 4 Mar 2025 21:24:00 +0000 (22:24 +0100)]
ABS: fix for another unexpected API response (#1994)
dependabot[bot] [Tue, 4 Mar 2025 21:09:56 +0000 (22:09 +0100)]
Chore(deps): Bump codespell from 2.3.0 to 2.4.1 (#1998)
Bumps [codespell](https://github.com/codespell-project/codespell) from 2.3.0 to 2.4.1.
- [Release notes](https://github.com/codespell-project/codespell/releases)
- [Commits](https://github.com/codespell-project/codespell/compare/v2.3.0...v2.4.1)
---
updated-dependencies:
- dependency-name: codespell
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
dependabot[bot] [Tue, 4 Mar 2025 21:09:29 +0000 (22:09 +0100)]
Chore(deps): Bump pytest from 8.3.4 to 8.3.5 (#1999)
Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.3.4 to 8.3.5.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/8.3.4...8.3.5)
---
updated-dependencies:
- dependency-name: pytest
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Maxim Raznatovski [Tue, 4 Mar 2025 21:03:29 +0000 (22:03 +0100)]
Feat: Move the output limiter option from DSP to Player Settings (#1981)
* feat: add output limiter option to the player settings
* feat: use the `OUTPUT_LIMITER` option to determine if the limiter should be enabled
* feat: add migration logic
* fix: use default value from config key
* fix: move migration logic to _migrate
* refactor: delete migrated `output_limiter` key
Marcel van der Veldt [Sat, 1 Mar 2025 13:27:34 +0000 (14:27 +0100)]
Fix: Do not enforce cache for every stream
ffmpeg is reading faster than the cache file gets written, causing streams to fail.
Waiting until the file is available, delays all streaming.
Revisit this later. For now only use caching when enforced by provider (apple music) or when we are preloading the next track so when you start a new track, speed is always preferred
Marcel van der Veldt [Fri, 28 Feb 2025 23:55:52 +0000 (00:55 +0100)]
Chore: require minimum amount of buffer before stream starts
Marcel van der Veldt [Fri, 28 Feb 2025 23:51:10 +0000 (00:51 +0100)]
Bump models to 1.1.32
Marcel van der Veldt [Fri, 28 Feb 2025 23:25:28 +0000 (00:25 +0100)]
Chore: More aggressive pre-buffering of next track
Fabian Munkes [Fri, 28 Feb 2025 17:44:19 +0000 (18:44 +0100)]
ABS: Login via API key (#1990)