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 |
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.
- Create a scraper in
scrapers/with afetch_plays()function returning[{"title", "creator", "album", "image"}] - Add an entry to
PLAYLISTSingenerate.py - Add tests, update
pages/index.htmland this README