mcpbeat

Openrouter Text2music

qinghonglin/data2story-openrouter-text2music

Generate music (NOT speech) via OpenRouter using Google Lyria 3 Pro.

2k tokens
context cost
the whole folder, loaded on every use
3
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
149
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/QinghongLin/data2story-skill --skill openrouter-text2music

The instruction itself

5 sections, as written by the author

openrouter-text2music

Text → music via OpenRouter. Default model: google/lyria-3-pro-preview.

⚠️ This is a music-generation model, not TTS. It produces 48kHz stereo audio with instrumentation, and can include vocals and timed lyrics based on the prompt. For narration/voiceover, use a dedicated TTS tool (e.g., OpenAI tts-1, ElevenLabs).

Usage

Resolve TOOL_DIR = the directory containing this SKILL.md. Commands below use TOOL_DIR as a symbolic placeholder; replace it with the resolved, quoted path before running Bash.

export OPENROUTER_API_KEY=sk-or-v1-...

python3 TOOL_DIR/scripts/generate_music.py \
  --prompt "Driving synthwave, 120 BPM, nostalgic lead over a pulsing arpeggio, no vocals" \
  --download PROJECT_DIR/assets/bg_music.wav

Flags

| Flag | Default | Description |

|---|---|---|

| --prompt | required | Text prompt (genre, mood, instruments, tempo, optional lyrics) |

| --download | required | Output audio file path |

| --model | google/lyria-3-pro-preview | Alt: google/lyria-3-clip-preview (shorter clips) |

Pricing

  • lyria-3-pro-preview: $0.08 per song

Notes

  • Request uses POST /api/v1/chat/completions with modalities: ["audio","text"].
  • Response parsing handles several shapes: message.audio, a content part with type=audio, or a data:audio/... URL embedded in the text content.
  • Output format is typically WAV (48kHz stereo); the script saves whatever bytes the API returns — choose the extension to match.

How to use it

Copy the folder

Take qinghonglin/data2story-openrouter-text2music from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.