Skip to content

SCSM 2.0.0 — Manifest V3 rewrite

Choose a tag to compare

@mrbrainz mrbrainz released this 07 Sep 12:00
· 15 commits to master since this release
892a8d1

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 mocked chrome.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.