본문으로 건너뛰기
cccskills
무료GitHub에 공개

classical-887

Check what's playing on WRHV 88.7 FM (Classical WMHT), fetch recent tracks, build playlist reports, search for pieces, and create or manage Spotify playlists from radio tracks. Triggers on 'Classical 887', 'WRHV', 'what's playing', 'classical radio', 'Hudson Valley radio', 'Spotify playlist from radio'.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

연동 도구YouTube
설치 방법 보기

포함된 파일(5)

  • SKILL.md8.2 KB
  • README.md2.6 KB
  • references/api-reference.md4.4 KB
  • references/spotify-setup.md7.8 KB
  • scripts/classical_887.py62.4 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

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

FlagDescriptionDefault
--nowShow what's playing nowOn (if no other mode)
--recent NShow last N tracks (1–100)Off
--date YYYY-MM-DDFetch all tracks from a specific dateOff
--period PERIODFetch tracks from: today, yesterday, week, monthOff
--search QUERYFilter results by composer, piece, or performerOff
--verboseFull details (album, label, catalog, all performers)Off
--jsonRaw JSON outputOff
--markdown [FILE]Write Markdown report with clickable linksclassical-playlist.md
--sort FIELDSort by: time (newest first), duration (longest), composer (A–Z)time
--spotify-playlist [NAME]Create/append to a Spotify playlistClassical 88.7 FM
--spotify-rename NEW_NAMERename an existing Spotify playlist (defaults to renaming Classical 88.7 FM unless --spotify-playlist specifies the current name)Off
--spotify-description DESCSet new description when renaming (used with --spotify-rename)Off
--spotify-log-reportView the playlist operation log as a Markdown reportOff
--spotify-auditList all owned Spotify playlists (combine with --search and --sort)Off
--spotify-cleanup PATTERNRemove playlists matching glob pattern (dry run unless --confirm)Off
--spotify-export [DIR]Export matching playlist tracks to JSON files.
--confirmExecute cleanup (without this, --spotify-cleanup is preview only)Off
--max NSafety cap: max playlists to remove per invocationNo limit
--spotify-client-id IDSpotify app client ID (or SPOTIFY_CLIENT_ID env var)—
--spotify-client-secret SECRETSpotify 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.

Fallback

If the NPR Composer API is unavailable:

# Check the playlist page directly
firecrawl scrape "https://classicalwmht.org/playlist" --only-main-content

Reference Documentation

FileContents
references/api-reference.mdNPR Composer API: endpoints, request/response schema, field reference
references/spotify-setup.mdSpotify Developer App setup, OAuth, env vars, Dev Mode notes

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Search academic papers, build literature reviews, and synthesize research findings — combines Exa MCP (research_paper category, arxiv filtering) with arxiv-mcp-server for paper discovery, download, and deep analysis. Triggers on academic paper, literature review, research synthesis, arxiv, find papers, scholarly search.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tdimino/claude-code-minoan412026년 10월 16일 업데이트

Automates browser interactions for web testing, form filling, screenshots, and data extraction. Use when the user needs to navigate websites, interact with web pages, fill forms, take screenshots, test web applications, or extract information from web pages.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tdimino/claude-code-minoan412026년 10월 16일 업데이트

This skill should be used when creating, auditing, or maintaining AGENTS.md files and Codex CLI configuration for any project—including initializing AGENTS.md for cross-agent compatibility (Codex, Cursor, Copilot, Devin, Jules, Amp, Gemini CLI), generating config.toml or .rules files, scaffolding .agents/skills/, converting CLAUDE.md to AGENTS.md, or auditing existing agent configs for bloat and staleness. Complementary to codex-orchestrator (which executes subagents; this skill creates the config files they consume).

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tdimino/claude-code-minoan412026년 10월 16일 업데이트

Academic research skill for Biblical Hebrew, Semitic linguistics, cuneiform studies, and comparative Ancient Near Eastern research. Provides Sefaria API for Hebrew Bible, CDLI/ORACC for cuneiform databases, and web discovery via Omnisearch, Exa, Firecrawl, and Obscura for finding scholarly sources across JSTOR, Perseus, Persée, Google Scholar, and academia.edu. Triggers on Hebrew quotes, cuneiform, Sefaria, ANE research, Minoan, search for scholarship, find papers, literature review, scholarly search, academic search, Genesis/Tehom, Ugaritic, Talmudic sources, extract from PDF, OCR academic.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tdimino/claude-code-minoan412026년 10월 16일 업데이트

Build comprehensive ARCHITECTURE.md files following matklad's canonical guidelines — bird's-eye views, ASCII/Mermaid diagrams, codemaps, invariants, and layer boundaries. Triggers on document the architecture, create ARCHITECTURE.md, map this codebase, architectural overview.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tdimino/claude-code-minoan412026년 10월 16일 업데이트

Generate physically-based atmospheric scattering shaders — sky domes, planetary atmospheres, LUT-optimized pipelines, depth-aware post-processing. Four modes — sky-dome, atmosphere-post, planet, lut. Triggers on atmospheric scattering, sky shader, sunset rendering, planet atmosphere, Rayleigh scattering, Mie scattering, volumetric sky, sky dome, atmosphere post-processing, aerial perspective, transmittance LUT, sky rendering, realistic sky, planetary rendering.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tdimino/claude-code-minoan412026년 10월 16일 업데이트

tdimino의 스킬 모두 보기

이 스킬의 문제 신고