Hacker News new | ask | show | jobs
by derkades 175 days ago
It is not hard. But please don't misuse it and ruin the fun for everyone. It is nice to be able to use the music relatively easily for hobby projects. My music server has functionality to play tracks from Spotify this way:

https://codeberg.org/raphson/music-server/src/branch/main/sp...

1 comments

Where the magic actually happens: https://github.com/librespot-org/librespot
I wonder how many premium accounts Anna’s Archive had to use to scrape the whole thing. Surely Spotify has scrape protection and wouldn’t allow a single account to stream (download) millions of separate tracks.
I have a feeling they didn't use premium accounts since they downloaded at 160kbit/s, which is the highest quality that free accounts can get.

Premium gets 320kbit/s (or lossless)

to use this method of scraping, logging in with a premium account is required.

so either they found a way around that lock, but not the quality lock, or they just decided 160k is good enough (it generally is), and decided to stick with that for filesize & bandwidth savings

I haven't looked at the code but I would be surprised if the premium account "requirement" is anything more than an if statement that can be commented out.
Pretty sure that requirement is server-side?
What do you mean? You can still stream any song with a free account. It's just that there will be ads. Additionally, in mobile apps, there will be ridiculous artificial limitations to make sure your experience is as miserable as it could possibly be.

My understanding is that the premium requirement is there to avoid having the repo taken down.

My understanding, based on a related comment in this thread, was that premium accounts get higher quality; in that case, I figured any such checks would be server-side.

If you were referring to a separate check in the above repo's code, my mistake.

You are correct
I believe that changed recently and Spotify started blocking the key requests from free accounts.
Then how do people with free accounts listen to music lol

(It is plausible they added some new DRM but it's not going to be anything too crazy)

Seems like librespot is not directly suppporting the fetching of audio to files, and intentionally so, in order to not get targeted by Spotify. Obviously you can dump the audio to file as it "plays", but that would be be very slow.

So I suppose if one wanted to use librespot for archiving, one would have to modify it to support this use case.