Turning the web into playlists... one page at a time.
Spinbin scrapes radio station and chart playlists, generates XSPF playlist files, and publishes them via GitHub Pages. Subscribe in Parachord or any XSPF-compatible player.
| Station | Source | Add to Parachord | XSPF |
|---|---|---|---|
| KEXP Rewind | kexp.org | Add | XSPF |
| KCRW Rewind | kcrw.com | Add | XSPF |
| WFMU Rewind | wfmu.org | Add | XSPF |
| WFUV Rewind | wfuv.org | Add | XSPF |
| SomaFM Groove Salad Rewind | somafm.com | Add | XSPF |
| SomaFM Indie Pop Rocks! Rewind | somafm.com | Add | XSPF |
| XRAY.fm Rewind | xray.fm | Add | XSPF |
| Vintage Obscura Rewind | vintageobscura.net | Add | XSPF |
| Radio Paradise Rewind | radioparadise.com | Add | XSPF |
| NTS Radio Rewind | nts.live | Add | XSPF |
| WPRB Rewind | spinitron.com/WPRB | Add | XSPF |
| KALX Rewind | spinitron.com/KALX | Add | XSPF |
| WMBR Rewind | wmbr.org | Add | XSPF |
| Bagel Radio Rewind | bagelradio.com | Add | XSPF |
| SiriusXMU Rewind | xmplaylist.com/station/siriusxmu | Add | XSPF |
A GitHub Actions workflow runs once a day at 5am EST, fetches playlist data from source APIs, generates XSPF files, and publishes them to GitHub Pages.
Each XSPF feed includes a top-level <image> pointing at the station's
brand logo at https://jherskowitz.github.io/spinbin/logos/{key}.svg,
so Parachord and any XSPF-aware client can show the station's tile in
its subscriptions/library view alongside per-track album art.
- Create a scraper in
scrapers/with afetch_plays()function returning[{"title", "creator", "album", "image"}] - Add an entry to
PLAYLISTSingenerate.py - Add the station card to
pages/index.htmland a brand color + tile class - Add the new key to
KEY_TO_TILEinscripts/build_logos.py, then runpython scripts/build_logos.pyto generatepages/logos/{key}.svg - Add tests and a row to this README