classical-887

Check what's playing on WRHV 88.7 FM (Classical WMHT) — the classical music station in the Hudson Valley. Queries the NPR Composer API for real-time playlist data and provides clickable links to listen on YouTube, Spotify, Apple Music, IMSLP, IDAGIO, Internet Archive, and Musopen.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "classical-887" with this command: npx skills add tdimino/claude-code-minoan/tdimino-claude-code-minoan-classical-887

Classical 887

Check what's playing on WRHV 88.7 FM (Classical WMHT) — the classical music station in the Hudson Valley. Queries the NPR Composer API for real-time playlist data and provides clickable links to listen on YouTube, Spotify, Apple Music, IMSLP, IDAGIO, Internet Archive, and Musopen.

When to Use

  • Checking what's playing right now on 88.7

  • Getting recent tracks with links to listen again

  • Building a Markdown playlist report

  • Finding a specific piece heard on the radio

  • Creating Spotify playlists from radio tracks

  • Renaming Spotify playlists

  • Auditing owned Spotify playlists (list, search, sort)

  • Cleaning up accumulated Spotify playlists (safe bulk removal)

  • Exporting playlist track data to JSON before cleanup

  • Reviewing playlist operation history

Prerequisites

  • requests Python package (uv pip install --system requests )

  • No API key required — uses NPR's public Composer API

  • Spotify integration (optional): spotipy package (uv pip install --system spotipy ) + Spotify Developer App credentials

Usage

What's playing right now (default)

python3 ~/.claude/skills/classical-887/scripts/classical_887.py

Last 10 tracks

python3 ~/.claude/skills/classical-887/scripts/classical_887.py --recent 10

Today's full playlist (pages through all tracks for today)

python3 ~/.claude/skills/classical-887/scripts/classical_887.py --period today

Last week as Markdown report

python3 ~/.claude/skills/classical-887/scripts/classical_887.py --period week --markdown ~/Desktop/classical-week.md

Last month as Markdown report

python3 ~/.claude/skills/classical-887/scripts/classical_887.py --period month --markdown ~/Desktop/classical-month.md

Specific date (Valentine's Day)

python3 ~/.claude/skills/classical-887/scripts/classical_887.py --date 2026-02-14

Search for a composer across a date range

python3 ~/.claude/skills/classical-887/scripts/classical_887.py --period week --search bach

Full performer details (album, label, catalog number)

python3 ~/.claude/skills/classical-887/scripts/classical_887.py --recent 5 --verbose

Raw JSON output

python3 ~/.claude/skills/classical-887/scripts/classical_887.py --now --json

Create Spotify playlist from today's tracks

python3 ~/.claude/skills/classical-887/scripts/classical_887.py --period today --spotify-playlist

Add yesterday's tracks to the persistent playlist

python3 ~/.claude/skills/classical-887/scripts/classical_887.py --period yesterday --spotify-playlist

Custom playlist name from a specific date

python3 ~/.claude/skills/classical-887/scripts/classical_887.py --date 2026-02-14 --spotify-playlist "Valentine's Classical"

Last week's Bach on Spotify

python3 ~/.claude/skills/classical-887/scripts/classical_887.py --period week --search bach --spotify-playlist "Bach on 88.7"

Rename the default playlist

python3 ~/.claude/skills/classical-887/scripts/classical_887.py --spotify-rename "Hudson Valley Classical"

Rename a specific playlist with a new description

python3 ~/.claude/skills/classical-887/scripts/classical_887.py --spotify-playlist "Bach on 88.7" --spotify-rename "Bach Collection" --spotify-description "Curated Bach from WRHV 88.7 FM"

View playlist operation log as Markdown

python3 ~/.claude/skills/classical-887/scripts/classical_887.py --spotify-log-report

Audit all owned Spotify playlists

python3 ~/.claude/skills/classical-887/scripts/classical_887.py --spotify-audit

Audit with search filter and sort by track count

python3 ~/.claude/skills/classical-887/scripts/classical_887.py --spotify-audit --search "Rediscover*" --sort tracks

Dry run cleanup (preview only, no deletion)

python3 ~/.claude/skills/classical-887/scripts/classical_887.py --spotify-cleanup "Rediscover*"

Execute cleanup with safety cap

python3 ~/.claude/skills/classical-887/scripts/classical_887.py --spotify-cleanup "Rediscover*" --confirm --max 10

Export playlist tracks to JSON before cleanup

python3 ~/.claude/skills/classical-887/scripts/classical_887.py --spotify-export ~/Desktop/exports --search "Rediscover*"

Parameters

Flag Description Default

--now

Show what's playing now On (if no other mode)

--recent N

Show last N tracks (1–100) Off

--date YYYY-MM-DD

Fetch all tracks from a specific date Off

--period PERIOD

Fetch tracks from: today , yesterday , week , month

Off

--search QUERY

Filter results by composer, piece, or performer Off

--verbose

Full details (album, label, catalog, all performers) Off

--json

Raw JSON output Off

--markdown [FILE]

Write Markdown report with clickable links classical-playlist.md

--sort FIELD

Sort by: time (newest first), duration (longest), composer (A–Z) time

--spotify-playlist [NAME]

Create/append to a Spotify playlist Classical 88.7 FM

--spotify-rename NEW_NAME

Rename an existing Spotify playlist (defaults to renaming Classical 88.7 FM unless --spotify-playlist specifies the current name) Off

--spotify-description DESC

Set new description when renaming (used with --spotify-rename ) Off

--spotify-log-report

View the playlist operation log as a Markdown report Off

--spotify-audit

List all owned Spotify playlists (combine with --search and --sort ) Off

--spotify-cleanup PATTERN

Remove playlists matching glob pattern (dry run unless --confirm ) Off

--spotify-export [DIR]

Export matching playlist tracks to JSON files .

--confirm

Execute cleanup (without this, --spotify-cleanup is preview only) Off

--max N

Safety cap: max playlists to remove per invocation No limit

--spotify-client-id ID

Spotify app client ID (or SPOTIFY_CLIENT_ID env var) —

--spotify-client-secret SECRET

Spotify app client secret (or SPOTIFY_CLIENT_SECRET env var) —

Output

Default shows: composer, piece, performers, duration, and listen links (YouTube, Spotify, Apple Music, IMSLP, IDAGIO, Internet Archive, Musopen).

Markdown report includes: now-playing header, recent tracks table with 7 platform links, and a composer index.

Playlist Log

Every --spotify-playlist operation automatically appends a JSONL entry to ~/.claude/skills/classical-887/playlist-log.jsonl . Each entry records:

  • Date and action (created/appended)

  • Playlist name and Spotify URL

  • Tracks added (composer, piece, performers, duration, Spotify URI)

  • Tracks not found on Spotify

  • Total counts (matched/unmatched)

View the log as a Markdown report with --spotify-log-report . The log file is append-only and can be queried with standard jq commands:

Count total operations

wc -l ~/.claude/skills/classical-887/playlist-log.jsonl

Show all playlist names used

cat ~/.claude/skills/classical-887/playlist-log.jsonl | jq -r '.playlist_name' | sort -u

Total tracks matched across all operations

cat ~/.claude/skills/classical-887/playlist-log.jsonl | jq '.matched_count' | paste -sd+ | bc

Data Source

NPR Composer API (api.composer.nprstations.org/v1/widget/ ), which powers the WMHT playlist widget at classicalwmht.org/playlist .

Full API documentation: references/api-reference.md

Station Info

WRHV 88.7 FM (Poughkeepsie, NY), simulcast of WMHT-FM 89.1 (Schenectady). Full station details in references/api-reference.md .

  • Stream: wmht.org/classical

  • Playlist: classicalwmht.org/playlist

Fallback

If the NPR Composer API is unavailable:

Check the playlist page directly

firecrawl scrape "https://classicalwmht.org/playlist" --only-main-content

Reference Documentation

File Contents

references/api-reference.md

NPR Composer API: endpoints, request/response schema, field reference

references/spotify-setup.md

Spotify Developer App setup, OAuth, env vars, Dev Mode notes

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

travel-requirements-expert

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

twilio-api

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

twitter

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

academic-research

No summary provided by upstream source.

Repository SourceNeeds Review