Open-Source Spotify App
github.com
github.com
A CLI UI for Spotify [0] Spotify as a daemon [1]
Basically I want a good interface for managing large playlists (so nativeish lists with multi select support for add/remove/reorder, not an album art focused UI), and support for mixing Spotify, local and network shared tracks in a single playlist.
- Daniel Ek (Spotify co-founder)
I think a fair amount of their business relies on gathering data from people and recommending music. They don’t let 3rd parties to do that.
Any Snapchat client, however, can save snaps. So to ensure none of them does, only the official client should be available.
A truly tragic loss IMHO
Spotiamp still mostly works but libspotify clients are deprecated, so search is broken and you need to jam spotify url's in to add music.
Who sampled lists every sample a song used. Take good life by Kanye West for example https://www.whosampled.com/Kanye-West/Good-Life/
So I think what he means is using who sampled data and Spotify music to create a player where you can click x-ray and it shows you the samples from that segment of the song
It's nice that you've chosen the GPL, as I also prefer that license, but what value do you see in this software that only you can modify for use? Do you intend to release an Android or other port, at some point?
I don't intend to release this app on any other platform but others who want to may feel free - I think GPL allows for this. In the end, I don't really care what others do with my app as long as they consult me about what they want to do with it, which MIT is too loose for. If others want to release an app based on mine, they can feel free.
GPL is generally the best choice for that.
> In the end, I don't really care what others do with my app as long as they consult me about what they want to do with it
There’s no popular license that I know of that requires people to tell you about their fork. They can just release it and publish the code along with it.
> Tivoization is the creation of a system that incorporates software under the terms of a copyleft software license, but uses hardware restrictions to prevent users from running modified versions of the software on that hardware. [...] Stallman believes this practice denies users some of the freedom that [GPL] was designed to protect.
Seemed pretty obvious to me.
I've been working on the cli client and shuffling things about directory wise so I don't think it compiles anymore atm. But the library works fine. Actually in retrospect I think I might revert and splt them into separate repos...
Is this at all related or inspired by their original C SDK?
I, uh, wrote my own little "player" with this: https://youtu.be/8ejnGARQIJ0
More likely, it’s by sending a stream of data or otherwise its sending encrypted chunks for which Spotify has a decoder integrated. That’s how the desktop client works at least.
Your prediction seems unlikely to me for the reason that any transmission of unencrypted data like that exposes Spotify to having their whole library scraped.
Not that it’s technically impossible already, but I would say incredibly infeasible.
The currently supported SDKs are for web, iOS and Android which perform the decryption via EME or platform specific DRM support. They also require app specific oauth authentication.
However, libspotify's playback endpoints still work, likely due to them still supporting older hardware devices (other endpoints, most notably search are now broken). This is ultimately what most open source native clients use, either using archived builds of libspotify (for e.g. Clementine or mopidy) or reimplentations of it (librespot, Spotifyd).
Because the new API is so locked down it's likely that open source apps won't ever migrate to it (without the raw audio data they can't integrate it with most of their features), and will have to drop support when the last endpoints supporting libspotify style playback are pulled.
I believe that librespot (at least one of the implementations) now supports audio from Spotify's new HTTP endpoints, rather than via the 'Mercury' protobuf stuff that libspotify uses. The point being that it might still have a future after Spotify finally kills the remaining parts of libspotify.
Disclaimer: I'm a Mopidy developer.
[0] https://jodal.no/2016/02/18/guide-to-poor-api-management/
Edit: oh, and you do need an API key to use libspotify, which Spotify no longer provide. So that kills off any new users from adopting libspotify/pyspotify, even if they could live with the short-commings.
> 'and provides users with important metrics like their top tracks, top artists, and recently played tracks, queryable by time range'
Is your feature selling point the time range ? I'm confused.. Looks like spotify has this already...
EDIT: I get it now: Change the title to : Manage your own Spotify
Any extra functionality ?
If you enjoy it, keep it up and just use it as a nice playground to show off.
> all I’ve created is something that’s possible with the Spotify api
Yup.. In a great way. Don't put yourself down. This is cool
There is never any harm to educate others; I'm not so strong on Swift at all, but I really appreciate the area that I dig into too. This project, is well worthy of a follow.
I used to listen to a Carnatic Classical playlist (Here’s a playlist for you… Carnatic Classical by Spotify https://open.spotify.com/playlist/37i9dQZF1DWZqTcNLmb3sH?si=...) and now it’s just changed to something completely different. Honestly this made me want to leave!
If I find a playlist I like, either from spotify or somewhere else, I make sure to make a local copy of that playlist in my account to make sure it doesn't change. Because when you add such a playlist you don't copy it, you subscribe to it.
(Ctrl+a to select all songs, ctrl+c, make new playlist, ctrl+v. Might be an even easier and more direct way but I don't have spptify in front of me).
It's really nice for 1 person.
I'd love to send 100 questions on.
You've committed a lot time to it.. A lot of us have ideas of somthing simular, but we get busy... This is the time to cut and run.
Are you currently employeyed ? (no need to give who).
How much time did you commit to this, kinda cool piece that is expected a lot of time!
As I said before, I have 100 questions!
Full disclosure: I'm a cpp heart with a current role in cs
To answer your questions, I will be interning at a company starting January. I worked on this project for less than a month. Since I'm a 1st year in college, I also have my studies but I try to code at least 2 hours a day.
You kinda fit the bill of : yeah I do it because I can.
Much love
A lot of the initial work will be using the Spotify API and others to aggregate musician data.
I've registered the LLC and my cofounder and I have been brainstorming the software, but haven't really started anything yet.
Have been too busy with the holidays and vacation.
Edit: email is in my about
Is audio piracy not a thing anymore?
Thanks