my perpetually-unfinished side project; read-it-later but for streaming music.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Noah Hall 3f963da56b add license - CNPLv5+ 1 year ago
api just more info in some comments for now 2 years ago
browser/src some work on handling bad inputs in the api and giving useful feedback in the extension 2 years ago
customauth refactor queue and position management ^_^ 3 years ago
frontend/src truncate artist/title rather than breaking Item rows at small page widths 2 years ago
player change favicon color to match extension icon 2 years ago
stats preliminary work for stats app surfaced in admin 4 years ago
watershed small settings changes for live db 2 years ago
.eslintrc.json ok i think everything works again, maybe last webpack/deps commit for a while 3 years ago
.gitignore fix favicon issues lol 2 years ago
LICENSE add license - CNPLv5+ 1 year ago add license - CNPLv5+ 1 year ago fabfile changes/updates 2 years ago rename playq->watershed 4 years ago
package.json Bump jquery from 3.3.1 to 3.5.0 1 year ago
requirements.txt Merge pull request #15 from nthall/dependabot/pip/djangorestframework-3.9.1 1 year ago
watershed.nginx.conf sample, maybe not-perfect-yet nginx & uwsgi confs, for intended easy/lazy deploy workflow 2 years ago
watershed.uwsgi.ini sample, maybe not-perfect-yet nginx & uwsgi confs, for intended easy/lazy deploy workflow 2 years ago
webpack.config.js changes for building production webpack bundles 2 years ago
yarn.lock Bump minimist from 1.2.0 to 1.2.5 1 year ago

Watershed - A listen-later queue for streaming music

Watershed is an app for saving music to listen later. It's not complete but I got tired of keeping it private and not finishing it. I hope to release something usable soon.

Project Status

I still really like the idea of finishing this up and "releasing" a production deployment, but life and other ideas and new fascinations keep getting in the way.

The server is down right now but I will stand it back up soon. In theory, though, you should have everything you need here to run your own.


  • The browser extension is currently available in two ways:
    • Chrome: By invitiation only in the Chrome Store
    • Firefox: Direct file transfer (or checkout and build) to get the extension, then follow manual installation instructions
    • No other browsers have been tested for support. It'd be neat if someone wanted to play around with that.
  • The webapp is markedly less useful without the browser extension :(


  • I don't expect anyone to contribute but if this is interesting to you I'd love to hear from you and talk about it.
  • Some obvious areas for improvement are:
    • Testing
    • Updating React (again!? again.)
    • Docs/docstrings
    • Adding compatibility for other streaming sources, e.g.:
      • Youtube playlists

Building the extension

Webpack is the tool that builds both the player frontend and the browser extension. Once you have the project cloned, building the extension should theoretically be as simple as:

  1. yarn install
  2. webpack --config webpack.config.js --browser
  3. This outputs to browser/dist/ -- that's the folder you want for manually installing in Firefox. I don't remember how Chrome works in this regard anymore.

If that doesn't work, at least you know where to poke around. Gosh it'd make my day if you opened an issue about it; I'd be happy to help.


This software is licensed under the Cooperative Non-Violent Public License, version 5+.