Cumulus
Cumulus copied to clipboard
Playback rate limits
Cumulus v0.10.0 on macOS 10.11.6
After login I can see my feed.
As soon as I try to play anything from my list, the player just skips through everything, loading all track data into the player (image, artist, track, time remaining).
I'm getting a similar issue
On Mar 11, 2017, at 10:04 AM, Django Doucet [email protected] wrote:
Cumulus v0.10.0 on macOS 10.11.6
After login I can see my feed.
As soon as I try to play anything, the player just skips through everything, loading all track metadata into the player (.
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.
tried v.0.9.0, same deal
I’m using v0.9.0 and it’s skipping through, how should I fix this? /cc @gillesdemey
This might be helpful @gillesdemey:
I ran with NODE_ENV=development
and got a whole bunch errors in the console that said:
https://api.soundcloud.com/tracks/224674551/stream?client_id=f17c1d67b83c86194fad2b1948061c9e 429 (Unknown)
I checked one of the error pages and I saw this:
{"errors":[{"meta":{"rate_limit":{"bucket":"by-client","max_nr_of_requests":15000,"time_window":"PT24H","name":"plays"},"remaining_requests":0,"reset_time":"2017/03/12 12:22:59 +0000"}}]}
It looks like there’s rate limiting stopping Cumulus from working. :(
I think it's pretty obvious at this point that Cumulus' application credentials are exceeding the 15.000 plays / 24h rate limit.
https://developers.soundcloud.com/docs/api/rate-limits
I'm not quite sure if we can increase the rate limit, so at this point all we can do is show some sort of exception to the user 😔
ok :)
@gillesdemey I too am having this issue. I would escalate this issue to critical bug.
I hope SoundCloud doesn't give you guys the Twitter dev treatment.
Having the same issue, making Cumulus unusable.
@dougos Everyone is having the same issue, it appears that Soundcloud introduced rate limits on their API making it unusable in case a lot of users are using the same app.
There is not much we can do at this point except reach out to them asking to increase the limit for our API key.
I used to use soundnode and then I switched to cumulus because it ran into the same rate-limiting problem. Back on the hunt. Thank you to the devs for making such an insanely beautiful and minimal app. I will miss it. My productivity will miss it. Purple heart :purple_heart: much love, respect :v:
Thanks for the kind words @benjaminclark.
I've requested to have the API rate limit increased, waiting to hear back from them 🤞
otherwise a few api keys could be used, and switch between them on rate-limit error
@mediaformat We've discussed this approach internally and we're not going to go down this road since this goes against their Terms of Use. See: https://developers.soundcloud.com/docs/api/terms-of-use#quotas
As much as we'd like to, as an open-source community we have the obligation to play by the rules. 😉
ok, I hadn't seen that page!
Fairplay to you guys :1st_place_medal:
Dang
😢
Should we start some sort of petition? I'm thinking some kind of link to retweet a tweet to Soundcloud or something?
Would someone with the know-how be interested in writing a how-to build from source with your own API key?
Also—would it be possible to add an "API Key" field somewhere in settings so users could use their own without having to build from source? Or would that also be a TOS violation?
Also - would it be possible to add an "API Key" field somewhere in settings so users could use their own without having to build from source?
Seems like quite the hassle, SoundCloud now requires users to request API credentials through a form (and it might take up to a month for them to get back to you).
@afischer
If you have Yarn & Grunt installed:
-
git clone https://github.com/gillesdemey/Cumulus.git && cd Cumulus
-
open app/js/app.js
& replace the client_id on line 47 with your API key. -
yarn outdated
-
yarn upgrade [insert all listed dependencies from above.]
-
yarn
-
grunt build
It took me about 3 weeks to get API access.
edit: I'll submit a PR when I get time if this no longer works for you.
@araphiel — Thanks. Guess I need to apply and wait a month for credentials 🙄
Not to get off topic but SC really needs to find a way to make some money... It would really be a shame to see them go under.
In the mean time, just copy the client_id from your browser's dev tools (visiting soundcloud.com) and apply it using the approach described by @araphiel.

In the meantime you can give this alternative SoundCloud player a try :) https://cloud-player.io It also ships a native desktop app for Windows and Mac Code is open source available here and build with Angular2
@Zarlex how do you tackle the rate limit problem?
So far the app is not used by many people so i'm not exceeding the 15000 requests/day :)
Having same issue. 😞
I had a similar experience as @araphiel: it took SoundCloud a couple weeks to process the form and issue API keys for me to use in a custom build – looking forward to using Cumulus again!
Combining suggestions from @araphiel and @jsphpl we have an easy workaround. To re-cap,
-
git clone https://github.com/gillesdemey/Cumulus.git && cd Cumulus
- Navigate to soundcloud.com in your browser and grab your client_id from the developer tools network panel. You can see it in API calls like
https://api.soundcloud.com/e1/me/track_likes/ids?limit=5000&linked_partitioning=1&client_id=YOUR-CLIENT-ID-SHOULD-BE-SHOWN-HERE&app_version=1495114752
- open
app/js/app.js
& replace theclient_id
on line 47 with your soundcloud client_id -
yarn upgrade
-
yarn
-
grunt build
- Run your locally built app
🎵
@shyam-habarakada is there a build step missing? I'm getting Error: Cannot find module 'electron-settings'
Uncaught Exception:
Error: Cannot find module 'electron-settings'
at Module._resolveFilename (module.js:470:15)
at Function.Module._resolveFilename (/Users/markhughes/src/Cumulus/dist/Cumulus-darwin-x64/Cumulus.app/Contents/Resources/electron.asar/common/reset-search-paths.js:35:12)
at Function.Module._load (module.js:418:25)
at Module.require (module.js:498:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/Users/markhughes/src/Cumulus/dist/Cumulus-darwin-x64/Cumulus.app/Contents/Resources/app/index.js:12:22)
at Object.<anonymous> (/Users/markhughes/src/Cumulus/dist/Cumulus-darwin-x64/Cumulus.app/Contents/Resources/app/index.js:135:3)
at Module._compile (module.js:571:32)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:488:32)
@MarkehMe I'm on OSX and got around that by downgrading NPM to 4.6.1. No idea why that works or if it's good practice.