AI Agent Hub
Back to skills
Internet Radio Music Player icon

Internet Radio Music Player

Life Service Updated 2026.08.30

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.