classical-887 について
NPR Composer API から WRHV 88.7 FM のプレイリストを取得し、楽曲の再生リンクを示すコマンドラインスキルです。任意の Spotify 機能で、プレイリストの作成、監査、整理、書き出しと操作履歴の確認ができます。
主な機能
- 01現在と最近の放送曲を表示
- 02放送履歴の検索と絞り込み
- 03Markdown と JSON のレポート生成
- 04Spotify プレイリストの作成と名前変更
- 05プレイリストの監査、書き出し、整理
- 06Spotify プレイリスト操作の記録
活用シーン
- 01最近放送された楽曲を探す
- 02再生リンク付きのプレイリストレポートを作る
- 03放送曲から Spotify プレイリストを作成
- 04所有する Spotify プレイリストを確認・整理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ tdimino/ claude-code-minoan --skill classical-887インストール後、Claude Code で/classical-887を入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.mdreferences/api-reference.mdspotify-setup.mdscripts/classical_887.py詳細
Classical 887
WRHV 88.7 FM(Classical WMHT)で現在放送中の曲を確認できます。ハドソンバレーのクラシック音楽局です。NPR Composer API に問い合わせて、リアルタイムのプレイリストデータを取得し、YouTube、Spotify、Apple Music、IMSLP、IDAGIO、Internet Archive、Musopen で聴くためのクリック可能なリンクを提供します。
使用する場面
- 88.7 で現在放送中の曲を確認する
- 聴き直すためのリンク付きで最近のトラックを取得する
- Markdown のプレイリストレポートを作成する
- ラジオで聴いた特定の曲を探す
- ラジオのトラックから Spotify プレイリストを作成する
- Spotify プレイリストの名前を変更する
- 所有する Spotify プレイリストを監査する(一覧表示、検索、並べ替え)
- 増え続けた Spotify プレイリストを整理する(安全な一括削除)
- 整理する前にプレイリストのトラックデータを JSON にエクスポートする
- プレイリスト操作履歴を確認する
前提条件
requestsPython パッケージ(uv pip install --system requests)- API キーは不要です — NPR の公開 Composer API を使用します
- Spotify 連携(任意):
spotipyパッケージ(uv pip install --system spotipy)と Spotify Developer App の認証情報
使い方
# 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*"
パラメーター
| フラグ | 説明 | デフォルト |
|---|---|---|
--now | 現在放送中の曲を表示します | オン(他のモードが指定されていない場合) |
--recent N | 直近の N 件のトラックを表示します(1–100) | オフ |
--date YYYY-MM-DD | 指定した日付の全トラックを取得します | オフ |
--period PERIOD | today、yesterday、week、month のいずれかの期間のトラックを取得します | オフ |
--search QUERY | 作曲家、曲、演奏者で結果を絞り込みます | オフ |
--verbose | 詳細情報をすべて表示します(アルバム、レーベル、カタログ、全演奏者) | オフ |
--json | 生の JSON 出力を表示します | オフ |
--markdown [FILE] | クリック可能なリンク付きの Markdown レポートを書き出します | classical-playlist.md |
--sort FIELD | time(新しい順)、duration(長い順)、composer(A–Z)で並べ替えます | time |
--spotify-playlist [NAME] | Spotify プレイリストを作成または更新します | Classical 88.7 FM |
--spotify-rename NEW_NAME | 既存の Spotify プレイリストの名前を変更します(--spotify-playlist で現在の名前を指定しない限り、デフォルトでは Classical 88.7 FM の名前を変更します) | オフ |
--spotify-description DESC | 名前の変更時に新しい説明を設定します(--spotify-rename と併用) | オフ |
--spotify-log-report | プレイリスト操作ログを Markdown レポートとして表示します | オフ |
--spotify-audit | 所有する Spotify プレイリストをすべて一覧表示します(--search および --sort と併用できます) | オフ |
--spotify-cleanup PATTERN | グロブパターンに一致するプレイリストを削除します(--confirm がない場合はドライラン) | オフ |
--spotify-export [DIR] | 一致するプレイリストのトラックを JSON ファイルにエクスポートします | . |
--confirm | 整理を実行します(このオプションがない場合、--spotify-cleanup はプレビューのみです) | オフ |
--max N | 安全上限:1 回の実行で削除するプレイリストの最大数 | 上限なし |
--spotify-client-id ID | Spotify アプリのクライアント ID(または SPOTIFY_CLIENT_ID 環境変数) | — |
--spotify-client-secret SECRET | Spotify アプリのクライアントシークレット(または SPOTIFY_CLIENT_SECRET 環境変数) | — |
出力
デフォルトでは、作曲家、曲、演奏者、再生時間、聴取リンク(YouTube、Spotify、Apple Music、IMSLP、IDAGIO、Internet Archive、Musopen)が表示されます。
Markdown レポートには、現在放送中の曲のヘッダー、7 つのプラットフォームへのリンクを含む最近のトラック一覧、作曲家の索引が含まれます。
プレイリストログ
すべての --spotify-playlist 操作は、~/.claude/skills/classical-887/playlist-log.jsonl に JSONL エントリを自動的に追記します。各エントリには次の情報が記録されます。
- 日付と操作(作成/追加)
- プレイリスト名と Spotify URL
- 追加されたトラック(作曲家、曲、演奏者、再生時間、Spotify URI)
- Spotify で見つからなかったトラック
- 合計数(一致/不一致)
--spotify-log-report でログを Markdown レポートとして表示できます。ログファイルは追記専用で、標準の jq コマンドで検索できます。
# 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
データソース
NPR Composer API(api.composer.nprstations.org/v1/widget/)。WMHT のプレイリストウィジェット(classicalwmht.org/playlist)で使用されています。
API の全ドキュメント:references/api-reference.md
放送局情報
WRHV 88.7 FM(ニューヨーク州ポキプシー)、WMHT-FM 89.1(スケネクタディ)の同時放送です。放送局の詳細については、references/api-reference.md をご覧ください。
- ストリーム:wmht.org/classical
- プレイリスト:classicalwmht.org/playlist
フォールバック
NPR Composer API が利用できない場合:
# Check the playlist page directly
firecrawl scrape "https://classicalwmht.org/playlist" --only-main-content
リファレンスドキュメント
| ファイル | 内容 |
|---|---|
references/api-reference.md | NPR Composer API:エンドポイント、リクエスト/レスポンスのスキーマ、フィールドリファレンス |
references/spotify-setup.md | Spotify Developer App のセットアップ、OAuth、環境変数、Dev Mode に関する注意事項 |