Hacker News new | ask | show | jobs
by hnexamazon 3738 days ago
I am a long-time user of Soundcloud that has recently stepped back from the service. As an EDM enthusiast, the service is the best place for finding up-and-coming talent and great remixes that you can't find anywhere else. The killer feature is the personal stream. Once you've started following a large enough pool of artists and labels, there is no better mechanism for wading through the pool of mediocrity to search out those rare gems.

Unfortunately, Soundcloud's method for organizing your content really breaks down under heavy use. I have over 1000 songs liked, and scrolling through the like list, dynamically fetching ten songs at a time, is a huge pain. Playlist creation and maintenance is even more cumbersome and limited than Spotify, which is saying something.

Worst of all, the usefulness of the stream, arguably Soundcloud's most unique and valuable listener-facing feature, really breaks down the longer you're using the service. Most heavy users I know end up following over a few hundred artists/labels/channels, accumulated over years of use, and the signal-to-noise ratio becomes unbearable. The sad thing is that the breakdown is purely a UX problem. The webapp is an infinite-scroll nightmare: forcing you to start at the top of the stream every time and fetch tracks 10 at a time. It doesn't clean up after itself, so after an hour of slowly chipping away through your feed, the browser gets so slow and unresponsive on my top-spec Macbook Pro that I often give up and don't bother trying to listen to new tracks that have been posted to my feed over 18 hours ago. Of course, as I now check Soundcloud less and less frequently, that means I am missing a ton of content.

On top of that, due to Soundcloud's reputation as solely a promotional tool within the artist community, you end up wading through a ton of 1 - 2 minute previews and other low-quality throwaways, and songs that you like can disappear from the service at any time, without notice. You cannot build a stable music library on top of the service. In fact, I used to have a process where I'd look for new songs on Soundcloud, and if I found something good, look it up on Spotify and save it within my Spotify collection, because I knew it wouldn't just disappear on me after a few months. Once Spotify upped their discovery game and the available EDM content grew, I removed Soundcloud from the process entirely.

Soundcloud used to be the best game in town for music discovery, especially EDM, but they let that slip over the last few years of struggling to monetize and Spotify's constant progression has now really chipped away that advantage. I've signed up for this GO service, but I highly doubt I'll keep it past the 30 day free trial. $10 a month for offline download and removing ads? As far as I can tell, my stream is the same mess as it was before, and they don't even distinguish between GO-exclusive and free tracks. I don't see anywhere where I can find GO-exclusive tracks within the app at all, actually.

New music discovery is hard and the big players (Spotify, Apple Music, Google Play) still haven't fully cracked it, at least for specific-niche enthusiasts like myself. When the Soundcloud stream is working well, it is the best interface I've used for finding new music I like, but the complete lack of focus and neglect on that front from this initiative means that I probably won't be coming back.

3 comments

This is a great analysis.

I would separate it in two categories.

1) the bad UX when having a big library 2) the 3rd party developer experience.

Starting from 2) I'd say SoundCloud has been fairly open in their early stage, and a lot more conservative later on. I'm not sure what's the direction they are going to take in the future. If I was running SoundCloud, I'd keep the API as a playground, not for production use, and I'd try to fix the major issue in my product instead of leaving room for someone else to crack that business.

Regarding 1) you are absolutely right. It boils down to 3 major areas of the product: classification, recommendation and search. Big players are working on that, but they are all implementing some sort of social driven collaborative filter (which is sad, if we think about how personal is the listening experience). Soundcloud should try to have a more hybrid approach introducing some more advance machine learning neural network technique to get rid of the 'cold start' effect and have a better targeting of the 'long tail' of their 125m tracks. Once they have the 'data' layer done, they should complement with a product UX experience, including curated playlists, radios, personal automatic generated playlist, and an overall better UX experience for the user-listener segment of their audience.

Great analysis of Soundcloud's problems. I love it for all the same reasons (something like 90% of the new music I've found over the past 4 years is via soundcloud), but any ability to filter/manage/sort/search your favorites or your stream is basically missing.

And, as you say, it's purely a UX problem.

Also the fact that they don't have limited permission tokens is insane. A lot of artists have a "free download for followers" policy, but the integrations that enforce that require 100% complete access to your account. As in, sign me up to follow anyone, post anything, etc. Just to verify that I'm following you.

I actually spent the last two years writing a music app that integrated with the Soundcloud API to provide the bulk of the music content. To call their iOS SDK "neglected" is an understatement, but what I found worse was the opaque failure modes and restricted access provided by the official REST API.

For example, Soundcloud provides artists with a switch to allow/forbid third-party clients using their API to access the audio streams of the songs they post. This restriction, naturally, doesn't affect the official Soundcloud apps. While it makes my app a second-class citizen for accessing Soundcloud content, I understand the motivation and reasoning for the feature.

However, how does the Soundcloud API surface these restrictions? Through one of the dozens of flags it attaches to the json response it returns when you query for a track's metadata? Ha, no, all the various "track downloadable" and "streamable" flags are all set to true. Instead, it just returns a 404 when you try to fetch the data from the track URL...except when it started returning 401 instead (an admittedly more appropriate return code)...until it started returning 404 again.

So as a developer, my only avenue for not surfacing non-playable tracks within my client was to attempt to download each track, catch any 4xx responses, ASSUME the reason is due to permissions rather than any other potential causes for 4xx errors, and hide the content within the app.

I can understand Soundcloud's lack of enthusiasm for providing decent 3rd-party integrations, but if your external API is this much of a mess, I'd hate to see what you vend internally. The fact their permissions token provides zero granularity is not surprising to me at all.

That is tragic. I'm such a huge fan of SoundCloud - I even pay for a pro account, even though I don't post that much audio, just to give them $$ - but ... sigh. These are not good problems.

And here I thought their Roshi library looked pretty good. Maybe the talent is all on the backend there.

Just thought I would let you know about this tool : https://github.com/jbhamilton/Soundcloud-Downloader