Internet Radio Music Player
Paste the following prompt into your AI chat to install this skill:
Follow https://skillhub.cn/install/skillhub.md to install @user_15292d5a/yjkj-internet-radio-music-player.
About this skill
Problem It Solves
This skill targets a local playback workflow where a user wants to start a suitable internet-radio stream with one natural-language command. Phrases like play happy music or play music for sleeping need to be mapped to concrete genres, then resolved into an available stream URL from a larger, changing set of radio streams. It also covers switching, returning to the previous stream, checking status, and inspecting playback history.
How It Works
The skill relies on Internet Radio Music DB for a genre-organized stream database, with the main logic running in scripts/play_music.py. During playback, it first resolves the request through a built-in mood map; for example, calm/sleep maps to ambient, classical, and folk. It then applies a four-level relevance sort: exact genre matches rank first, then requested-genre position in the genres list, then fewer extra subgenres, then faster stream speed. After selection, the skill performs an HTTP availability check, launches Foobar2000 with the chosen URL, and writes the current genre, current stream, and history to state.json.
Key capabilities include:
- Playback controls: Play, Stop, Next, Previous, and Resume style commands.
- Same-genre switching: Next reselects from the database by the current genre rather than jumping through random history.
- Auto-resume: after an explicit Stop, a parameterless Play resumes the last played stream.
- WebUI plugin: an embeddable panel for playback controls, genre selection, database stats, stream listing, availability checks, and rebuild entry points.
Boundaries
It is not a general-purpose music streaming client. Its behavior depends on the local stream database, live internet-radio sources, and Foobar2000. Next only switches within the same genre in the database, and stream availability depends on the remote source status. Failed database entries may be removed or rebuilt. This is best suited for engineers who want to drive local Foobar2000 radio playback through commands or a web panel.
Use Cases
- An engineer types `play happy music` in chat, and the skill maps it to dance or pop and starts a usable stream in Foobar2000.
- During local desk work, use `Stop`, `Next`, and `Status` to stop playback, switch to another stream in the same genre, and inspect the current stream.
- Embed the WebUI panel in WebChat so a user can select a genre, play, stop, switch, and check status without manual URL lookup.
- Review local playback records by inspecting, filtering, and exporting history as CSV, HTML, or JSON through `show_history.py`.
Best For
- Local Foobar2000 users: want to play internet radio from a natural-language command or chat message instead of searching and pasting stream URLs.
- Agent workflow developers: need to wire playback control, same-genre switching, and history queries into chat or a WebChat panel.
- Desktop automation maintainers: need to manage playback state, check stream availability, and expose a WebUI playback entry point.
- Music-stream data curators: need to inspect genre stats, playback history, and export records as CSV, HTML, or JSON.
Related Skills
Create a room-by-room plant watering handoff note for a sitter, with water amounts, timing, owner notes, and skip-if-unsure guidance.
A browser-based personal workbench generator that ships desktop or mobile templates with local storage, JSON backup, theming, and optional self-hosted sync.
Vehicle-specific maintenance advisor that estimates fault risk, repair actions, and price ranges with VIN, nameplate, and appearance recognition.
Combines traditional Zhou Gong dream symbols with psychological framing to produce structured interpretations of details, symbols, emotions, and life context.