Repository navigation
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.