I’ve just created my perfect automated music setup, including getting new recommendations
I’ve just created my perfect automated music setup, including getting new recommendations - Zemmy
cross-posted from: https://zemmy.cc/post/25499 [https://zemmy.cc/post/25499] > You may have seen my previous post over here [https://lemmy.dbzer0.com/post/770169], after I had just gotten everything setup initially. > > I’ve now expanded this with an additional script, a github repo [https://github.com/Zetaphor/personal-auto-radio], and proper documentation. > > Here’s a cleaner explanation: > > I’ve taken on the challenge of self-hosting more of the services I regularly depend on. The latest target is Spotify. This meant I needed a simple and convenient way to listen to my music from anywhere, get new music into my collection, and also still receive recommendations based on my interests and listening habits. > > I now have what I think is the pretty ideal setup, here’s what it includes: > > * A 24/7 radio station that plays my entire catalog (link here if you’re interested [radio.zetaphor.com/]). This is powered by Azuracast [https://www.azuracast.com/] along with the scripts in the repo. The station link is using the Public Pages feature in Azuracast with a bunch of custom CSS. > > * A Spotify-like experience that also supports mobile and offline. This is powered by Navidrome [https://www.navidrome.org/] for web/desktop and Substreamer [https://substreamerapp.com/] for mobile. Substreamer connects to Navidrome using the Subsonic API. > > * A couple of scripts that allow me to easily download tracks/albums/playlists from Spotify and Youtube. I used these to bootstrap the collection and export my existing playlists from each service. > > * A couple of scripts that automatically grab my latest recommendations from Spotify and LastFM, add them into Navidrome, and provide me a nearly fully automated way to parse out tracks I want to keep permanently. > > That last point is the most interesting part in my opinion. Both scripts run on a weekly cron job that downloads my Discover Weekly playlist from spotify, and current recommendations from LastFM. It then creates a playlist for each source for that weeks collection and moves it into Navidrome. > > I then browse that weeks playlist at my leisure, using the “star” feature in Navidrome to decide what to keep. Once I’m done I run another script manually that takes all of the starred tracks from those two playlists and moves them into my catalog, and then deletes the remaining tracks and the playlists. > > This means I just need to go through and listen to recommendations and click a button on what to keep, and the rest is discarded automatically. It really doesn’t get any simpler than this! > > What remains will then be available for on-demand playback through Navidrome and also added to the full catalog that powers the 24/7 radio station. > > FAQs from the last thread > > What is being used to download from X? - spotdl is being used for Spotify.pytube is being used for LastFM and Youtube. spotdl is also just downloading tracks from Youtube under the hood. > > What is the audio quality of the downloaded tracks? - Since these are coming from Youtube, everything is a 128kbps VBR Opus codec. It’s certainly not FLAC but it’s good enough for my enjoyment.