/
/
/
1# [2.1.1] - 03.08.2024
2
3## What's Changed
4* Ensure sort_name makes it to cache by @MelHarbour in https://github.com/music-assistant/server/pull/1538
5* Fix global cache key and YTMusic playlist edge case by @MarvinSchenkel in https://github.com/music-assistant/server/pull/1540
6* Allow use of a personal client id for Spotify by @marcelveldt in https://github.com/music-assistant/server/pull/1536
7* Prevent items get marked as unavailable during metadata scan by @marcelveldt in https://github.com/music-assistant/server/pull/1537
8* Jellyfin: Fix artist enumeration by @Jc2k in https://github.com/music-assistant/server/pull/1520
9* Guard against eyed3 misread by @MelHarbour in https://github.com/music-assistant/server/pull/1511
10* Add limit to tracks by @OzGav in https://github.com/music-assistant/server/pull/1530
11* Add Japanese to locales by @OzGav in https://github.com/music-assistant/server/pull/1527
12* Spotify: remove deprecated user-read-birthdate scope by @chatziko in https://github.com/music-assistant/server/pull/1524
13
14## â¬ï¸ Dependencies
15
16<details>
17<summary>1 change</summary>
18
19- Bump YTM dependencies + add url to provider mappings by @MarvinSchenkel in https://github.com/music-assistant/server/pull/1539
20
21</details>
22
23**Full Changelog**: https://github.com/music-assistant/server/compare/2.1.0...2.1.1
24
25# [2.1.0] - 22.07.2024
26
27## Whatâs Changed
28
29### Server 2.1.0
30
31## What's changed
32- Support for Apple Music
33- Lot's of stability and speed updates to the Jellyfin provider
34- Lot's of stability and speed updates to the Subsonic provider
35- Countless bugfixes, stability and speed improvements throughout the core.
36
37## Full Changelog
38
39- #1510 - frontend-2.7.0 (@music-assistant-machine)
40- #1508 - Fix AirPlay streams get mixed up when started in quick succession (@marcelveldt)
41- #1507 - Snapcast: Fix unsync master (@SantiagoSotoC)
42- #1505 - YTMusic: Change to pypi package + dependency updates (@MarvinSchenkel)
43- #1500 - frontend-2.6.4 (@music-assistant-machine)
44- #1499 - Fix issue in playlist metadata retrieval (@xmirakulix)
45- #1498 - Apple Music: Fix playlist page size for Apple music. (@MarvinSchenkel)
46- #1497 - YTMusic: Rewrite YTM auth to ytdlp access token plugin (@MarvinSchenkel)
47- #1496 - Snapcast: Fix call _can_sync_with (@SantiagoSotoC)
48- #1495 - frontend-2.6.3 (@music-assistant-machine)
49- #1491 - Snapcast: Fix sync methods (@SantiagoSotoC)
50- #1494 - Various small bugfixes and optimizations (@marcelveldt)
51- #1492 - Update name to clarify difference with the integration (@OzGav)
52- #1493 - YT Music: Fix token expiration on reboot (@MarvinSchenkel)
53- #1490 - Subsonic: Workaround for Navidrome Various Artists track handling (@khers)
54- #1489 - Apple Music: (Hopefully) fix time out issues + fix handling of missing artist details (@MarvinSchenkel)
55- #1488 - Revert ytmusicapi to 1.7.3 (@MarvinSchenkel)
56- #1486 - frontend-2.6.1 (@music-assistant-machine)
57- #1485 - Fix MusicBrainz external ID match (@marcelveldt)
58- #1484 - Jellyfin: More logging of tracks without media streams (@Jc2k)
59- #1483 - Silence the logger for Airplay DACP commands (@marcelveldt)
60- #1481 - frontend-2.6.0 (@music-assistant-machine)
61- #1480 - Refactor/cleanup the get/add logic for mediaitems + metadata retrieval (@marcelveldt)
62- #1471 - Replace windows separators in m3u (@MelHarbour)
63- #1464 - Subsonic: UNKNOWN_ARTIST handling (@khers)
64- #1469 - Jellyfin: Skip tracks with no MediaStreams (@Jc2k)
65- #1468 - Fix Jellyfin similar tracks (@Jc2k)
66- #1467 - Add file extension for log (@MelHarbour)
67- #1460 - Snapcast: revert dryout and set state by hand (@SantiagoSotoC)
68- #1466 - apple_music: Fix creation of dummy albums (@xmirakulix)
69- #1463 - Apple Music: Fix edge case for album parsing (@MarvinSchenkel)
70- #1462 - Apple Music: Fix albums without name, increase cooldown periode on 504 gateway timeouts. (@MarvinSchenkel)
71- #1459 - Fix: Add guard for taskmanager aexit. (@MarvinSchenkel)
72- #1458 - Fix album tracks (@marcelveldt)
73- #1457 - Apple Music: Ensure Albums have an artist for custom music. (@MarvinSchenkel)
74- #1456 - Use TaskManager instead of TaskGroup (@marcelveldt)
75- #1455 - Fix provider load at startup (@marcelveldt)
76- #1454 - Protect artist retrieval in Subsonic get_artist_toptracks() (@khers)
77- #1451 - A collection of small bugfixes and optimizations (@marcelveldt)
78- #1448 - Better handle of SMB mount with special characters in username/password (@marcelveldt)
79- #1447 - Reload Snapcast provider when connection to the server gets lost (@marcelveldt)
80- #1446 - Fix some bugs caused by regression (@marcelveldt)
81- #1445 - Better handling of album directory for local files (@marcelveldt)
82- #1442 - Snapcast: Reload built-in server in case of connection loss (@SantiagoSotoC)
83- #1436 - Don't load_provider if provider already deleted (@Jc2k)
84- #1438 - Add Setup Script (@SantiagoSotoC)
85- #1443 - Automatically repair configs broken by the last_error retry glitch (@Jc2k)
86- #1441 - Snapcast remove unused code (@SantiagoSotoC)
87- #1419 - Snapcast remove check for 0.27 (@SantiagoSotoC)
88- #1437 - Bump py-opensonic to 5.1.1 (@khers)
89- #1434 - Snapcast: Add delay, before so that the stream does not idle immediately (@SantiagoSotoC)
90- #1426 - Fetch larger version of Soundcloud artwork (@MelHarbour)
91- #1427 - Carefully handle redirect from players to queue controller (@marcelveldt)
92- #1414 - Jellyfin: add similar tracks (@Jc2k)
93- #1411 - Double check external ID comparison (@MelHarbour)
94- #1425 - Apple Music: Fix tracks that are unavailable in the catalog + Fix tracks with no album data (@MarvinSchenkel)
95- #1412 - Avoid subshells when using check_output (@Jc2k)
96- #1415 - Fix unload on snapcast (@SantiagoSotoC)
97- #1423 - Snapcast fix sync to (@SantiagoSotoC)
98- #1420 - Some Typos in locales (@OzGav)
99- #1417 - YTMusic: Update YT DLP options to improve speed for resolving stream urls (@MarvinSchenkel)
100- #1405 - Remove some unnecessary async and await in ytmusic (@tronikos)
101- #1404 - Deezer: Fix Playback (@micha91)
102- #1387 - Switch from unmaintained pytube to yt-dlp. Check user is subscribed to YTM premium (@tronikos)
103- #1401 - Fix radio for playlists < 5 items. (@MarvinSchenkel)
104- #1402 - Fix playback for video based songs without artist info. (@MarvinSchenkel)
105- #1399 - Snapcast add config built in server (@SantiagoSotoC)
106- #1395 - Snapcast: re-add update all clients on sync and unsync (@SantiagoSotoC)
107- #1394 - Update Locales (@OzGav)
108- #1393 - Jellyfin: Get more artwork from the Jellyfin instance (@Jc2k)
109- #1385 - Snapcast fix sync and unsync many (@SantiagoSotoC)
110- #1392 - A collection of small bugfixes and tweaks (@marcelveldt)
111- #1391 - frontend-2.5.15 (@music-assistant-machine)
112- #1390 - Jellyfin: Stricter typing (@Jc2k)
113- #1383 - Jellyfin: Faster track fetching (@Jc2k)
114- #1389 - Improve library performance (@marcelveldt)
115- #1386 - Fix unsync when master off (@SantiagoSotoC)
116- #1388 - Prevent overwriting album_tracks table (@MelHarbour)
117- #1380 - Jellyfin: Add pagination for get_library_albums and get_library_artists (@Jc2k)
118- #1382 - Jellyfin: Make SSL verification optional, but on by default (@Jc2k)
119- #1381 - Add index on timestamp_added (@MelHarbour)
120- #1379 - Jellyfin: Make less http requests (@Jc2k)
121- #1370 - Force comparison of MBID (@MelHarbour)
122- #1371 - Jellyfin: Typing improvements (@Jc2k)
123- #1368 - Fix a typing issue in the client. (@jozefKruszynski)
124- #1362 - Jellyfin: Drop all synchronous HTTP and use aiohttp instread (@Jc2k)
125
126### Frontend 2.7.0
127
128- #585 - Open fullscreen player from URL (@marcelveldt)
129- #584 - Lokalise translations update (@github-actions)
130- Fix issue that settings gets opened instead of homescreen due to a race condition
131
132## â¬ï¸ Dependencies
133
134### Server
135
136<details>
137<summary>46 changes</summary>
138
139- #1506 - Bump docker/build-push-action from 6.4.0 to 6.4.1 (@dependabot)
140- #1501 - Bump docker/build-push-action from 6.3.0 to 6.4.0 (@dependabot)
141- #1502 - Bump ruff from 0.5.1 to 0.5.2 (@dependabot)
142- #1487 - Bump actions/setup-python from 5.1.0 to 5.1.1 (@dependabot)
143- #1482 - Add typing for fullykiosk (@Jc2k)
144- #1479 - Add typing for Plex (@Jc2k)
145- #1478 - Bump plexapi from 4.15.13 to 4.15.15 (@dependabot)
146- #1476 - Bump ytmusicapi from 1.7.3 to 1.7.4 (@dependabot)
147- #1477 - Bump ruff from 0.5.0 to 0.5.1 (@dependabot)
148- #1474 - Add typing for test provider (@Jc2k)
149- #1475 - Bump orjson from 3.10.5 to 3.10.6 (@dependabot)
150- #1470 - Add type checking for filesystem_smb (@Jc2k)
151- #1473 - Bump yt-dlp from 2024.7.1 to 2024.7.7 (@dependabot)
152- #1472 - Cleanup Matching logic + add tests (@marcelveldt)
153- #1461 - Add typing for filesystem_local (@Jc2k)
154- #1450 - Add typing for builtin (@Jc2k)
155- #1453 - Bump certifi from 2024.6.2 to 2024.7.4 (@dependabot)
156- #1452 - Bump hass client to 1.2.0 (@marcelveldt)
157- #1449 - Add typing for radiobrowser (@Jc2k)
158- #1444 - Bump docker/setup-buildx-action from 3.3.0 to 3.4.0 (@dependabot)
159- #1439 - Bump docker/build-push-action from 6.2.0 to 6.3.0 (@dependabot)
160- #1435 - Bump yt-dlp from 2024.5.27 to 2024.7.1 (@dependabot)
161- #1430 - Bump ruff from 0.4.10 to 0.5.0 (@dependabot)
162- #1431 - Bump python-fullykiosk from 0.0.12 to 0.0.14 (@dependabot)
163- #1428 - Mypy: Add music_assistant.common (@Jc2k)
164- #1432 - Bump pylint from 3.2.3 to 3.2.5 (@dependabot)
165- #1429 - Bump pillow from 10.3.0 to 10.4.0 (@dependabot)
166- #1433 - Bump mypy from 1.10.0 to 1.10.1 (@dependabot)
167- #1413 - Run mypy on CI (@Jc2k)
168- #1409 - Bump async-upnp-client from 0.38.3 to 0.39.0 (@dependabot)
169- #1416 - Mypy: Get mypy passing on music_assistant.client (@Jc2k)
170- #1403 - Jellyfin: Add more test scaffolding. (@Jc2k)
171- #1406 - Bump ytmusicapi from 1.7.0 to 1.7.3 (@dependabot)
172- #1408 - Bump ruff from 0.4.9 to 0.4.10 (@dependabot)
173- #1407 - Bump aiofiles from 23.2.1 to 24.1.0 (@dependabot)
174- #1424 - Bump docker/build-push-action from 6.1.0 to 6.2.0 (@dependabot)
175- #1397 - Jellyfin: Add some basic parsing tests (@Jc2k)
176- #1400 - Bump docker/build-push-action from 6.0.1 to 6.1.0 (@dependabot)
177- #1398 - Tests: Add a 'mass' fixture (@Jc2k)
178- #1384 - Bump docker/build-push-action from 6.0.0 to 6.0.1 (@dependabot)
179- #1372 - Bump pypa/gh-action-pypi-publish from 1.8.14 to 1.9.0 (@dependabot)
180- #1373 - Bump docker/build-push-action from 5.4.0 to 6.0.0 (@dependabot)
181- #1374 - Bump ruff from 0.4.8 to 0.4.9 (@dependabot)
182- #1376 - Bump hass-client from 1.1.0 to 2.0.0 (@dependabot)
183- #1375 - Bump orjson from 3.10.4 to 3.10.5 (@dependabot)
184- #1378 - Bump mashumaro from 3.13 to 3.13.1 (@dependabot)
185</details>
186
187### Frontend
188
189<details>
190<summary>3 changes</summary>
191
192- #581 - Bump sass from 1.77.6 to 1.77.8 (@dependabot)
193- #582 - Bump prettier from 3.3.2 to 3.3.3 (@dependabot)
194- #583 - Bump vuetify from 3.6.11 to 3.6.12 (@dependabot)
195</details>
196
197
198
199# [2.0.7] - 15.06.2024
200
201A collection of bugfixes for issues reported on Github.
202
203**Full Changelog**: https://github.com/music-assistant/server/compare/2.0.6...2.0.7
204
205# [2.0.6] - 13.06.2024
206
207Bugfixes, stability improvements and small tweaks.
208
209**Full Changelog**: https://github.com/music-assistant/server/compare/2.0.4...2.0.6
210
211## 2.0.3
212
213Several bugfixes again for the 2.0 release
214
215- #1307 - frontend bugfixes:
216
217 - Fix various issues with listings and sorting
218 - Fix some alignment issues on the fullscreen player
219 - Fix queue tracks listing
220 - Make all item click actions consistent + add play button
221 - Updated translations
222
223- #1305 - A collection of small bugfixes and tweaks:
224
225 - Fix for browse listings
226 - Fix random sort for builtin playlists
227 - Catch some parse errors on JellyFin
228
229- #1304 - Subsonic: Set Track.disc_number to 0 for now (@khers)
230
231## 2.0.3
232
233Several bugfixes again for the 2.0 release
234
235- #1303 - Remove Requirement for Password for Jellyfin (@lokiberra)
236- #1302 - Do not use ISRC or barcode for lookups on MusicBrainz (@marcelveldt)
237- #1301 - A collection of small bugfixes (@marcelveldt)
238- #1295 - Limit queries to all online (metadata) resources (@marcelveldt)
239
240**IMPORTANT NOTE**
241The dust has settled from the 2.0 release, cool that we got so many new users excited!
242Unfortunately this means that our calls to the metadata services are also increasing, despite the heavy throttling and caching we have in place. Apparently the amount of calls to MusicBrainz is now hurting their services, most likely a lot of new users onboarding into MA.
243
244This is a free project and unlike the big players like Plex, Emby and Roon etc. I can not pay large fees for metadata so we're bound to the limits of free (or almost free api calls). For now I'm just going to increase the throttle intervals even more and skip a few additional calls. This will mean that for folks with missing local metadata, this will not be auto pulled in anymore. It will also mean that the initial scan will slow down even more. Sorry, it is what it is.
245
246I'm investigating options like implementing some global Redis cache or whatever that is still affordable for me.
247
248So, this update of MA brings actually a small change to the way how metadata is retrieved from the online providers.
249This change impacts folks with local files only. If you have badly tagged files or no images stored locally you will see empty artist images and the only way to retrieve those is by opening each artist one by one (I'm shutting down the background scanner to save api calls) OR by just making sure your structrure of music files is in order with correct tags and images. If the info is already there, no calls need to be done to a metadata provider. Its as simple as that.
250
251Thanks for the support/understanding!
252
253## 2.0.2
254
255Several bugfixes for the 2.0 release
256
257- Fix Home redirecting to settings
258- Fix builtin playlists limited to 50 items
259
260## 2.0.1
261
262Several bugfixes for the 2.0 release
263
264- Fix default enqueue options (@marcelveldt)
265- Fix phantom artists in library (@MarvinSchenkel)
266- Fix the quality score (@marcelveldt)
267
268Frontend
269
270- Translations update (@marcelveldt)
271- Fix back button in toolbar (@marcelveldt)
272- Fix issues with items listings (@marcelveldt)
273- Improve the out of the box experience a bit (@marcelveldt)
274
275## 2.0.0
276
2772.0.0 (stable) Release of Music Assistant !
278
279Thanks to everyone contributed to this milestone!
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294