# Whats up in Jellyplist 0.1.7? ### Major overhaul I´ve been working the past week to make this project work again, after [Spotify announced to deprecate](https://developer.spotify.com/blog/2024-11-27-changes-to-the-web-api) the playlist discover API´s , which were a crucial part of this project. I also took this opportunity at the same time to do a major overhaul, on how Jellyplist gathers data from a music provider. Music provider API implementations must now implement defined abstract classes to work with Jellyplist, think of it like _plugins_. Jellyplist now, in theory, can gather data from any music provider - just the _plugins_ must be written. It also doesn´t matter, if it have 1,2 or 10 Music Providers to playlists. So stay tuned for more to come. The next ones will be Deezer and YTM After the providers will be implemented, I will at some point do the same with the media backend - so Jellyplist will be able to support other media backends like Navidrome, Plex, Emby and so on... ### 🆕New API Implementation for Spotify As mentioned above, I needed a new way to get playlists. Now, to get them , you don´t need an API Key to authenticate, you even don´t need to be authenticated at all. If you like to have Playlists recommended or created for you, you can use authentication via a cookie. To do this, add a env var to you `.env` file: ```bash SPOTIFY_COOKIE_FILE = '/jellyplist/spotify-cookie.txt' ``` And map the cookie from your local filesystem to the container path you´ve set in the `.env`file ```yaml ... ... volumes: - /your/local/path/open.spotify.com_cookies.txt:${SPOTIFY_COOKIE_FILE} ... ... ``` ### 🆕Lidarr integration is here To enable the Lidarr integration add these to your `.env` file ```bash LIDARR_API_KEY = aabbccddeeffgghh11223344 # self explaining LIDARR_URL = http://:8686 # too LIDARR_MONITOR_ARTISTS = false # If false, only the corresponding # album will be set to monitored in lidarr, if true the whole artist # will be set as monitored. Be careful in the beginning as you might # hammer your lidarr instance and you indexers. Defaults to false ``` After you enabled Lidarr integration, make sure to go to _"Admin -> Lidarr"_ and set the default quality profile and music root folder. With the Lidarr integration you get a nice workflow: 1. Add Playlist 2. Playlist gets downloaded via SpotDL and is available after some time 3. At some point (every hour on x:50) the requests to Lidarr are made. 4. Lidarr gets all files. 5. Once a day Jellyplist is doing a full update on all tracks, and searches for the same track but with a better quality profile. ### ⚠️ New required env var Ensure to add `MUSIC_STORAGE_BASE_PATH` to your `.env` file. ```bash MUSIC_STORAGE_BASE_PATH = '/storage/media/music' # The base path where # your music library is located. # Must be the same value as your music library in jellyfin ``` ### ⚠️ Breaking change As some table columns has been renamed, make sure to wipe your existing Jellyplist pgdata. Sorry for the inconvenience. ### Other changes, improvements and fixes - UI/UX: The index page now has content. From there you can directly drop a playlist link - UI/UX: The Search bar now works with the new API implementation - UI/UX: A new `Browse All` (per Music Provider) Page from where you can discover playlists - UI/UX: Check technical details on a track. Just doubleclick a row in the details view of a playlist. - UI/UX: Allow to link a track even it´s not marked as downloaded. - UI/UX: Reworked celery task management and the /admin/tasks UI