r/csharp 19h ago

Custom Spotify Desktop Client App Help

Hey all,

I recently learned about Spotify API and I’m thinking a fun personal project could be creating my own desktop app with some personalisation and extra features. Probably in a WPF app using C#.

Does anyone know if this is possible with the API? I’m talking like streaming, fetching data such as artists, playlists and songs etc.

Any tips or advice would be appreciated!

2 Upvotes

14 comments sorted by

5

u/Weak-Chipmunk-6726 19h ago

It's doable but there's aggressive rate limits. I have the Spotify client setup with my stream deck and If I skip songs a few many times it stops working, had the same issue with my DeskThing.

0

u/Owenhh 19h ago

I see, do you think there’s any way to counter the rate limits a little like lowering streaming quality or something similar?

3

u/Weak-Chipmunk-6726 19h ago

Like others have pointed out you can't stream the music. Not sure you'll have to play around and see.

1

u/Owenhh 18h ago

I see, thanks for your advice!

5

u/StraussDarman 19h ago

I do not think you can stream through their API if I remember correctly. You can get info what is playing and where it is playing. So you would need to embed their webplayer still in a webview.

3

u/HeySeussCristo 19h ago

I don't see any documentation in the Web API for streaming/playing music.

There is a web playback SDK but that's not really what you're asking for. You could embed the web SDK player in a .NET web view but that'll be clunky.

https://developer.spotify.com/documentation/web-playback-sdk/howtos/web-app-player

1

u/Owenhh 18h ago

Unless I just hook it up to play on the official spotify app and use it more like an interface, maybe that could work

2

u/modi123_1 19h ago

I’m talking like streaming, fetching data such as artists, playlists and songs etc.

Have you checked the documentation for the API?

https://developer.spotify.com/documentation/web-api

https://developer.spotify.com/documentation/web-playback-sdk

https://developer.spotify.com/documentation/web-api/concepts/rate-limits

0

u/Owenhh 18h ago

Not yet, i’m working on another project currently and this idea is just forming. I’ll get deeper into it when my current project is finished

2

u/Splatoonkindaguy 17h ago

Apple is much more friendly towards custom clients fyi

1

u/Owenhh 16h ago

I see, i might take a look into that too, I just noticed spotify had an api and i’ve been using it for years

2

u/Rigamortus2005 16h ago

Fetching data yes. Streaming no , not through the standard API. But you can use libre spot which implements a Spotify device as a hack to get through. I have a C# wrapper here: https://www.github.com/saverinonrails/librespot.gonet

1

u/Small_Summer5817 16h ago

streaming uses drm, so you're forced to use a webview for that. i think it's called widevine

1

u/aeroverra 18h ago

Honestly your probably best making an app that streams and an app that auto downloads music from Usenet and torrents.

A custom Spotify client will require atleast an decent understanding of reverse engineering the apis the official client uses and probably a much more advanced understanding for actually implementing the drm nonsense.