Repository navigation
Releases: mrbrainz/Soundcloud-Stream-Manager
Release list
SCSM 2.0.1 — reliability fixes
SCSM 2.0.1 — reliability fixes
A patch release fixing several real-world bugs found and root-caused during live use since 2.0.0. No new features, no settings changes needed.
Fixed
- Legacy download button not appearing on initial page load — a feature's very first scan of the page could race ahead of the client ID becoming available, silently giving up for good instead of retrying once it showed up. Recovering used to require toggling the setting off and back on. (#83)
- A single stalled network request could quietly break every feature — every feature shares one small request queue; if SoundCloud left one request hanging forever (observed live), it permanently blocked that queue with no timeout, degrading (and eventually stopping) every feature that reads track data. (#85)
- A rate-limited request was treated as a permanent failure — a transient "too many requests" response from SoundCloud's API used to be treated exactly like "this track doesn't exist," permanently giving up on a track that actually was downloadable. Now retried with backoff instead. (#87)
- Search-link and download-button icons rendering badly on playlists in the feed — a playlist posted or reposted as a whole (not a single track) uses different markup than a normal feed row; icons used to get crammed into the track title itself on the first track and clipped entirely on the rest. Now suppressed on this row shape entirely, matching how the sidebar is already excluded. (#82)
Cleanup
- Removed a leftover debug scaffold (
content/content.js) that logged internal wiring details to the console on every page load — no functional change.
Install
Not on the Chrome Web Store yet — download soundcloud-stream-manager-v2.0.1.zip below, unzip it, then in Chrome: chrome://extensions → enable Developer mode → Load unpacked → select the unzipped folder.
Already have 2.0.0 loaded unpacked? Just replace the folder's contents with the new zip's and hit the reload icon on the extension's card in chrome://extensions — no need to remove and re-add it.
SCSM 2.0.0 — Manifest V3 rewrite
SCSM 2.0 — full rewrite
A from-scratch rebuild of Soundcloud Stream Manager as a Manifest V3 Chrome extension, replacing the old javascript: bookmarklet entirely. Same goal as always — prune the noise out of your SoundCloud stream — new foundation: a real settings UI, live-applying toggles, and a much sturdier way of reading SoundCloud's own data.
Install
Not on the Chrome Web Store yet — download soundcloud-stream-manager-v2.0.0.zip below, unzip it, then in Chrome: chrome://extensions → enable Developer mode → Load unpacked → select the unzipped folder.
Features
- Show repost age — annotates "Reposted X ago" with how old the track's original upload actually is.
- Show playlist membership — badges each track with which of your own playlists already contain it, kept in sync live as you add/remove tracks.
- Hide tracks older than X days — collapses any track (repost or original upload) past a configurable age.
- Hide tracks longer than X minutes — collapses anything past a configurable length, e.g. to skip full mixes.
- Hide tracks already in a playlist — collapses anything you've already sorted into one of your own playlists.
- Hide tracks by genre — collapses anything tagged with a genre on your hidden list; hover any genre tag in the feed for a one-click "hide this genre" shortcut.
- Show search links — one-click search links to Deezer, Apple Music, Beatport, and Spotify per track.
- Show legacy download button — restores a direct download link for any track SoundCloud itself allows downloading.
- Page-type scoping — choose which SoundCloud page types (feed, discover, track, profile, playlist) each feature is allowed to run on, live-applied even across in-app navigation.
A hidden track never disappears outright — it collapses to one summary line (title + why it was hidden) with a "show" link that restores it on demand. A row that trips more than one filter at once stays correctly hidden/shown across all of them together, not just whichever filter happened to act first.
Under the hood
- Live-apply settings throughout — flip a toggle in the popup and every open SoundCloud tab updates immediately, no refresh needed.
- A shared per-track metadata cache and a single MutationObserver/debounce loop, so N features watching the same tracks don't multiply network calls or DOM observers.
- Client ID and playlist-sync detection both bridge across Chrome's isolated/main JS-world split, since SoundCloud's own page data and API instrumentation live in a world content scripts can't see into directly.
- A full mock test harness (
extension/test/) — static fixtures exercising real, unmodified extension source against mockedchrome.storage/fetch/cookies — backs essentially every change in this rewrite, alongside live verification against soundcloud.com itself for anything the mocks can't prove.
Design
A dark neon "brainrot" visual language across the popup and the project site — chunky toggle cards, gradient branding, a hover easter egg on the popup's title. All copy has a plain-English tooltip on hover for anyone who doesn't want to parse the slang.
The old v1 bookmarklet (src/scsm.js, the drag-to-bookmarks-bar flow) has been fully removed — its history is still in git log if anyone ever needs it.