204
submitted 1 year ago* (last edited 1 year ago) by Zetaphor@zemmy.cc to c/piracy@lemmy.dbzer0.com

cross-posted from: https://zemmy.cc/post/25499

You may have seen my previous post over here, after I had just gotten everything setup initially.

I've now expanded this with an additional script, a github repo, 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). This is powered by Azuracast 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 for web/desktop and Substreamer 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.

top 31 comments
sorted by: hot top controversial new old
[-] shoomba@lemmy.sdf.org 22 points 1 year ago

This is awesome. I’m gonna save this and unfortunately probably do nothing with it. It’s something I’d like to do but I don’t listen to a whole lot of music and spotify is cheap enough it’s not worth the effort for me. But this is quite impressive.

[-] minishoemaze@lemmy.world 15 points 1 year ago

This is awesome. I'm gonna save this and unfortunately probably do nothing with it.

I relate to this so hard

[-] flora_explora@beehaw.org 1 points 1 year ago

Why pay for Spotify when you can just use a cracked version via xManager? ;)

[-] Mateleo@lemmy.dbzer0.com 1 points 1 year ago
[-] flora_explora@beehaw.org 1 points 1 year ago
[-] Creyapnilla@lemmy.world 11 points 1 year ago

128kbps VBR

So...early 90s quality? 😬

[-] Zetaphor@zemmy.cc 6 points 1 year ago

It's good enough for my purposes, which mostly involve streaming it over 96kbps for playback on wireless headphones. It's a small price to pay for the convenience of the automation.

[-] Zpiritual@lemmy.world 8 points 1 year ago

So 128kbps transcoded to 96kbps? Seems like quite a significant price to pay, but whatever you're happy with works for you :)

[-] BraBraBra@lemmy.world 2 points 1 year ago

You'd be hard pressed to find the difference.

[-] Zetaphor@zemmy.cc 1 points 1 year ago

I never have been able to, even while wearing wired studio monitors

[-] Zpiritual@lemmy.world 1 points 1 year ago

Transcoding kills audio but whatever :)

[-] BraBraBra@lemmy.world 1 points 1 year ago

It depends on how many layers of transcoding is happening. Listening to a random file, you won't be able to tell wether is 320 or 128 just by listening to it.

[-] Zetaphor@zemmy.cc 1 points 1 year ago* (last edited 1 year ago)

I've honestly never been able to discern a difference in quality between 96kbps and 320, even while wearing my ATHM50's, maybe my hearing just sucks. 🤷‍♂️

Azuracast let's me stream up to 320, but I choose to use 96 to save bandwidth.

[-] entropicdrift@lemmy.sdf.org 0 points 1 year ago

Opus is way better than MP3 and even AAC at the same bitrate

[-] Creyapnilla@lemmy.world -1 points 1 year ago

Keep telling yourself that 🤣

[-] entropicdrift@lemmy.sdf.org 0 points 1 year ago* (last edited 1 year ago)
[-] IronKrill@lemmy.ca 8 points 1 year ago* (last edited 1 year ago)

Since these are coming from Youtube, nearly everything is a 320kbps MP3.

Where are you getting that format and quality from? I use youtube-dl and non-premium audio for everything is ~128kbps VBR Opus, which aligns with other sources I can find. If I use Premium then I can get up to ~256kbps m4a but still not 320 and I see no mention of 320 availability online. Is there a trick you are using?

[-] Zetaphor@zemmy.cc 6 points 1 year ago

That was my mistake, and I'll edit the post. I just verified that you are correct by checking a random subset of the MP3's I have. I clearly got wrong information from somewhere.

[-] pumpsnabben@sopuli.xyz 8 points 1 year ago

Very interesting, how does Spotify and LastFM get your listening habits to create the recommended lists?

[-] Zetaphor@zemmy.cc 8 points 1 year ago

Spotify pretty much has them down from my years of use. Even if you're not coming back and listening regularly it will still update that playlist every week.

LastFM is getting my actual up to date listening habits as I use their scrobbling service with my music clients, including Navidrome.

[-] Arotrios@kbin.social 5 points 1 year ago

We will watch your career with great interest, young Skysinger.

Great work, and an excellent tool for those looking to create their own online radio stations.

[-] Zetaphor@zemmy.cc 7 points 1 year ago

I'm a dev of nearly 20 years, but all of this was written by ChatGPT as described in the repo readme 😅

https://github.com/Zetaphor/personal-auto-radio#created-by-chatgpt

[-] Arotrios@kbin.social 6 points 1 year ago

We will watch your domination of the airwaves with great interest, ~~young~~ old Skysinger.

[-] chrisbit@cocte.au 4 points 1 year ago

Nice write-up. Not really for me as I prefer to keep my library made up of whole albums and min. 320kbps since I ditched Spotify.

Check out Symfonium if you haven't and you're using Android - it's by far the best subsonic client I've used.

[-] Zetaphor@zemmy.cc 2 points 1 year ago

Substreamer is working well for me, and additionally it's free.

[-] em2@lemmy.ml 3 points 1 year ago

Thanks for posting this! Just what I was looking for more that YouTube music pricing is going up for me and so is Spotify.

[-] wizardbeard@lemmy.dbzer0.com 2 points 1 year ago

It's worth noting that on android, you can use Revanced Manager to patch the Youtube Music app to get almost all of the premium features for free.

revanced.app

Only thing you can't do is the local downloads for when your service is crap.

[-] em2@lemmy.ml 1 points 1 year ago

Oooh, thanks!

[-] sheepishly@kbin.social 1 points 1 year ago

Interesting! I've been thinking about doing something similar with Youtube videos, make a little fake TV channel. I'll definitely be taking a look through your code.

load more comments
view more: next ›
this post was submitted on 23 Jul 2023
204 points (97.2% liked)

Piracy: ꜱᴀɪʟ ᴛʜᴇ ʜɪɢʜ ꜱᴇᴀꜱ

54420 readers
196 users here now

⚓ Dedicated to the discussion of digital piracy, including ethical problems and legal advancements.

Rules • Full Version

1. Posts must be related to the discussion of digital piracy

2. Don't request invites, trade, sell, or self-promote

3. Don't request or link to specific pirated titles, including DMs

4. Don't submit low-quality posts, be entitled, or harass others



Loot, Pillage, & Plunder

📜 c/Piracy Wiki (Community Edition):


💰 Please help cover server costs.

Ko-Fi Liberapay
Ko-fi Liberapay

founded 1 year ago
MODERATORS