[GH-ISSUE #853] What changes are needed for free support ? #429

Closed
opened 2026-02-27 19:30:33 +03:00 by kerem · 9 comments
Owner

Originally created by @cth-latest on GitHub (Sep 22, 2021).
Original GitHub issue: https://github.com/librespot-org/librespot/issues/853

Hello guys, after reading the issues #261 and #415, I would have liked to know if anyone finally took care of doing the reverse engineering work for free account support. I would be happy to help with the integration of pubs, limited skips etc. I'm not very good at reverse engineering, so would require some help. (Also i think the spotify-analyze, is not really up to date (or maybe i'm too much retarded to use it aha))

Any help would be appreciated, thanks

Originally created by @cth-latest on GitHub (Sep 22, 2021). Original GitHub issue: https://github.com/librespot-org/librespot/issues/853 Hello guys, after reading the issues #261 and #415, I would have liked to know if anyone finally took care of doing the reverse engineering work for free account support. I would be happy to help with the integration of pubs, limited skips etc. I'm not very good at reverse engineering, so would require some help. (Also i think the spotify-analyze, is not really up to date (or maybe i'm too much retarded to use it aha)) Any help would be appreciated, thanks
kerem 2026-02-27 19:30:33 +03:00
Author
Owner

@roderickvd commented on GitHub (Sep 22, 2021):

No, and the README has been clarified to read that we won't support this:

Note: librespot only works with Spotify Premium. This will remain the case. We will not support any features to make librespot compatible with free accounts, such as limited skips and adverts.

If you would be willing to donate your time, then we can use all the help to implement the new API with support for social play and the groundwork for Spotify HiFi in the future!

<!-- gh-comment-id:924799562 --> @roderickvd commented on GitHub (Sep 22, 2021): No, and the [README ](https://github.com/librespot-org/librespot/commit/2541f123bcbb69454de901f48785988df61a7d68#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5) has been clarified to read that we won't support this: > Note: librespot only works with Spotify Premium. This will remain the case. We will not support any features to make librespot compatible with free accounts, such as limited skips and adverts. If you would be willing to donate your time, then we can use all the help to implement the [new API](https://github.com/librespot-org/librespot/tree/new-api) with support for social play and the groundwork for Spotify HiFi in the future!
Author
Owner

@roderickvd commented on GitHub (Sep 22, 2021):

Also you're right that spotify-analyze is out-of-date. It could use a refresh. In the meantime, I resort to librespot-java as an authoritative reference of the new Spotify API.

<!-- gh-comment-id:924801587 --> @roderickvd commented on GitHub (Sep 22, 2021): Also you're right that `spotify-analyze` is out-of-date. It could use a refresh. In the meantime, I resort to [`librespot-java`](https://www.google.com/search?q=librespot-java&oq=librespot-java&aqs=edge.0.69i59j0i30l3j69i60l3.1208j0j9&sourceid=chrome&ie=UTF-8) as an authoritative reference of the new Spotify API.
Author
Owner

@cth-latest commented on GitHub (Sep 22, 2021):

Also you're right that spotify-analyze is out-of-date. It could use a refresh. In the meantime, I resort to librespot-java as an authoritative reference of the new Spotify API.

If i'm not wrong @roderickvd, librespot-java don't support free accounts too.

What is the process to reverse the spotify app ? Do you have any methods to get endpoints etc ?

<!-- gh-comment-id:924845992 --> @cth-latest commented on GitHub (Sep 22, 2021): > Also you're right that `spotify-analyze` is out-of-date. It could use a refresh. In the meantime, I resort to [`librespot-java`](https://www.google.com/search?q=librespot-java&oq=librespot-java&aqs=edge.0.69i59j0i30l3j69i60l3.1208j0j9&sourceid=chrome&ie=UTF-8) as an authoritative reference of the new Spotify API. If i'm not wrong @roderickvd, librespot-java don't support free accounts too. What is the process to reverse the spotify app ? Do you have any methods to get endpoints etc ?
Author
Owner

@roderickvd commented on GitHub (Sep 22, 2021):

Also you're right that spotify-analyze is out-of-date. It could use a refresh. In the meantime, I resort to librespot-java as an authoritative reference of the new Spotify API.

If i'm not wrong @roderickvd, librespot-java don't support free accounts too.

That's right, member of the same "librespot organisation". I was referring to librespot-java for the new API, not for free accounts.

What is the process to reverse the spotify app ? Do you have any methods to get endpoints etc ?

Others are better at that than me. For the most part, it's inspecting Mercury frames, running Wireshark, and looking at web socket traffic. Myself, I look at librespot-java and try to port it.

<!-- gh-comment-id:924848675 --> @roderickvd commented on GitHub (Sep 22, 2021): > > Also you're right that `spotify-analyze` is out-of-date. It could use a refresh. In the meantime, I resort to [`librespot-java`](https://www.google.com/search?q=librespot-java&oq=librespot-java&aqs=edge.0.69i59j0i30l3j69i60l3.1208j0j9&sourceid=chrome&ie=UTF-8) as an authoritative reference of the new Spotify API. > > If i'm not wrong @roderickvd, librespot-java don't support free accounts too. That's right, member of the same "librespot organisation". I was referring to `librespot-java` for the new API, not for free accounts. > What is the process to reverse the spotify app ? Do you have any methods to get endpoints etc ? Others are better at that than me. For the most part, it's inspecting Mercury frames, running Wireshark, and looking at web socket traffic. Myself, I look at `librespot-java` and try to port it.
Author
Owner

@cth-latest commented on GitHub (Sep 22, 2021):

Does librespot-java use the new API ? Because when i sniff the HTTP requests on the mobile application i find differents endpoints like "{base}/playplay/{hash}" that i don't find in the librespot-java. I know librespot is based on the desktop application but it should be the same SDK for both i think.

I need to work on my reverse skills, i'm really week aha

<!-- gh-comment-id:924853876 --> @cth-latest commented on GitHub (Sep 22, 2021): Does librespot-java use the new API ? Because when i sniff the HTTP requests on the mobile application i find differents endpoints like "{base}/playplay/{hash}" that i don't find in the librespot-java. I know librespot is based on the desktop application but it should be the same SDK for both i think. I need to work on my reverse skills, i'm really week aha
Author
Owner

@devgianlu commented on GitHub (Sep 22, 2021):

They do not use the same API. There's also a new new API which is entirely HTTP and I haven't fully implemented (there are a couple of PRs open for that). @roderickvd is referring to the new API, which includes some HTTP and WS, but not as much as the new new API.

<!-- gh-comment-id:924858262 --> @devgianlu commented on GitHub (Sep 22, 2021): They do not use the same API. There's also a new new API which is entirely HTTP and I haven't fully implemented (there are a couple of PRs open for that). @roderickvd is referring to the new API, which includes some HTTP and WS, but not as much as the new new API.
Author
Owner

@cth-latest commented on GitHub (Sep 22, 2021):

They do not use the same API. There's also a new new API which is entirely HTTP and I haven't fully implemented (there are a couple of PRs open for that). @roderickvd is referring to the new API, which includes some HTTP and WS, but not as much as the new new API.

Thanks for you precions, your help is really appreciated. Do have you any recommendations for reversing the android app ?

<!-- gh-comment-id:924866024 --> @cth-latest commented on GitHub (Sep 22, 2021): > They do not use the same API. There's also a new new API which is entirely HTTP and I haven't fully implemented (there are a couple of PRs open for that). @roderickvd is referring to the new API, which includes some HTTP and WS, but not as much as the new new API. Thanks for you precions, your help is really appreciated. Do have you any recommendations for reversing the android app ?
Author
Owner

@devgianlu commented on GitHub (Sep 22, 2021):

They do not use the same API. There's also a new new API which is entirely HTTP and I haven't fully implemented (there are a couple of PRs open for that). @roderickvd is referring to the new API, which includes some HTTP and WS, but not as much as the new new API.

Thanks for you precions, your help is really appreciated. Do have you any recommendations for reversing the android app ?

MITM is your best friend in my opinion.

<!-- gh-comment-id:924867720 --> @devgianlu commented on GitHub (Sep 22, 2021): > > They do not use the same API. There's also a new new API which is entirely HTTP and I haven't fully implemented (there are a couple of PRs open for that). @roderickvd is referring to the new API, which includes some HTTP and WS, but not as much as the new new API. > > Thanks for you precions, your help is really appreciated. Do have you any recommendations for reversing the android app ? MITM is your best friend in my opinion.
Author
Owner

@cth-latest commented on GitHub (Sep 22, 2021):

They do not use the same API. There's also a new new API which is entirely HTTP and I haven't fully implemented (there are a couple of PRs open for that). @roderickvd is referring to the new API, which includes some HTTP and WS, but not as much as the new new API.

Thanks for you precions, your help is really appreciated. Do have you any recommendations for reversing the android app ?

MITM is your best friend in my opinion.

Yeah i already started using an HTTP sniffer for that (If it's what you mean), i got endpoints but the problem is to get the data. For the protobuff i tried to use https://github.com/marin-m/pbtk and that work on the desktop app but not on the mobile app it's a bit strange. Maybe if i'm lucky the proto are the same as desktop version.

<!-- gh-comment-id:924870331 --> @cth-latest commented on GitHub (Sep 22, 2021): > > > They do not use the same API. There's also a new new API which is entirely HTTP and I haven't fully implemented (there are a couple of PRs open for that). @roderickvd is referring to the new API, which includes some HTTP and WS, but not as much as the new new API. > > > > > > Thanks for you precions, your help is really appreciated. Do have you any recommendations for reversing the android app ? > > MITM is your best friend in my opinion. Yeah i already started using an HTTP sniffer for that (If it's what you mean), i got endpoints but the problem is to get the data. For the protobuff i tried to use https://github.com/marin-m/pbtk and that work on the desktop app but not on the mobile app it's a bit strange. Maybe if i'm lucky the proto are the same as desktop version.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/librespot#429
No description provided.