cottongin c88826ac4d fix: wire show_day/show_hour config into API, simplify AddTrackRequest
- create_app now accepts show_day/show_hour params instead of
  hardcoding Wednesday 22:00
- main.py passes config values through to create_app
- Removed soundcloud_url from AddTrackRequest (not implemented);
  track_id is now required

Made-with: Cursor
2026-03-12 01:46:23 -04:00
2026-03-12 01:44:00 -04:00

NtR SoundCloud Fetcher

Fetches SoundCloud likes from NicktheRat's profile, builds weekly playlists aligned to the Wednesday 22:00 ET show schedule, and serves them via a JSON API.

Quick Start

pip install -e ".[dev]"
export NTR_ADMIN_TOKEN="your-secret-here"
ntr-fetcher

The API starts at http://127.0.0.1:8000.

API

Endpoint Description
GET /playlist Current week's playlist
GET /playlist/{n} Track at position n
GET /shows List all shows
GET /shows/{id} Specific show's playlist
GET /health Service health check
POST /admin/refresh Trigger SoundCloud fetch (token required)

Configuration

Environment variables (prefix NTR_):

Variable Default Description
NTR_PORT 8000 API port
NTR_HOST 127.0.0.1 Bind address
NTR_DB_PATH ./ntr_fetcher.db SQLite path
NTR_POLL_INTERVAL_SECONDS 3600 Poll frequency
NTR_ADMIN_TOKEN (required) Admin bearer token
NTR_SOUNDCLOUD_USER nicktherat SoundCloud user

Development

pip install -e ".[dev]"
pytest
Description
Fetches SoundCloud likes from NicktheRat's profile, builds weekly playlists aligned to the Wednesday 22:00 ET show schedule, and serves them via a JSON API.
Readme MIT 238 KiB
Languages
Python 90.1%
HTML 9.9%