Files
market/skills/minimax-music-gen/SKILL.md
Yige 8f7953948f fix: 补齐市场静态事实并保持旧客户端兼容 (#184)
## 中文

补齐已有 owner 与已锁定上游内容可证明的许可证、技能类型和收录版本。保留 Anthropic Source Available
和其他附加条件,不把所有内容统一标为 MIT,不提升 listing-only 的安装准入。

README 保留最新的双语结构及以 manifest 为准的数量口径,增加静态目录不存访问量、下载量、评分或 Stars 的边界。

发布兼容性:**本 PR 不包含**两支团队新增的本地化字段,也不包含微信支付 `latestVersion:
1.0`;旧客户端会拒绝这些新字段,另以待发布 PR 保留,等匹配客户端发布后再合并。

验证:47 项目录校验测试、19 项 i18n 测试、5 项合集生成测试通过;完整目录/i18n/翻译新鲜度检查通过,6
个固定来源合集的生成检查通过,2 个浮动来源按既有规则明确跳过。发现并修复了生成器在 Windows 使用反斜杠造成的误报:输出改为 POSIX
路径,比较规则不放宽、不重写合集数据。

## English

Fill only license, type and listed-release facts supported by existing
owners or pinned upstream content. Preserve custom license restrictions
and acquisition eligibility. Keep the current bilingual README and
manifest-derived inventory; do not author usage analytics.

This PR deliberately excludes localized team fields and the two-part
WeChat Pay version that older clients reject. Those changes remain
pending a compatible client release.

Validation passes: 47 catalog-validator tests, 19 i18n tests, five
collection-generator tests, complete catalog and translation checks, and
generated inventory checks for six pinned collections. Two mutable
sources remain explicitly skipped. Fix Windows-generated path separators
without weakening comparison or changing declared children.
2026-09-22 01:09:03 +08:00

11 KiB

name, description, license, version, type, risk_level, status, disable-model-invocation, provider, tags, requires, metadata, market
name description license version type risk_level status disable-model-invocation provider tags requires metadata market
minimax-music-gen Use this skill when the user wants to generate music using MiniMax's Music Generation API. Supports text-to-music with lyrics, instrumental generation, and music cover. Use when 用户提到 生成音乐、文生音乐、 AI 作曲、创作歌曲、写一首歌、音乐生成、AI 音乐、MiniMax 音乐、 作词作曲、纯音乐、伴奏、翻唱、cover。 MIT 1.1.5 procedural low enabled true minimax
media
audio
music
generation
minimax
tools
Bash
author updated_at i18n
desirecore 2026-05-05
default_locale source_locale locales zh-CN en-US
en-US zh-CN
zh-CN
en-US
name short_desc description body source_hash translated_by
MiniMax 音乐生成 基于 MiniMax Music 2.6 的文本生成音乐技能 Use this skill when the user wants to generate music using MiniMax's Music Generation API. Supports text-to-music with lyrics, instrumental generation, and music cover. Use when 用户提到 生成音乐、文生音乐、 AI 作曲、创作歌曲、写一首歌、音乐生成、AI 音乐、MiniMax 音乐、 作词作曲、纯音乐、伴奏、翻唱、cover。 ./SKILL.zh-CN.md sha256:403153a9c1da2ad9 human
name short_desc description body source_hash translated_by
MiniMax Music Generation Text-to-music skill powered by MiniMax Music 2.6 Use this skill when the user wants to generate music using MiniMax's Music Generation API. Supports text-to-music with lyrics, instrumental generation, and music cover. Use when the user mentions generating music, text-to-music, AI composing, creating songs, writing a song, music generation, AI music, MiniMax music, songwriting, instrumental music, accompaniment, cover, or remake. ./SKILL.md sha256:dfd9408d2a567bac human
icon category maintainer channel
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><rect x="3" y="3" width="18" height="18" rx="3" stroke="#AF52DE" stroke-width="1.5" fill="#AF52DE" fill-opacity="0.1"/><path d="M9 18V6l10-2v12" stroke="#AF52DE" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/><circle cx="6.5" cy="18" r="2.5" fill="#AF52DE" fill-opacity="0.6"/><circle cx="16.5" cy="16" r="2.5" fill="#AF52DE" fill-opacity="0.6"/></svg> media
name verified
DesireCore Official true
latest

minimax-music-gen Skill

Mandatory Rules (violations will cause functionality to fail)

  1. Must access agent-service over HTTPS — https://127.0.0.1:${PORT} with -k to skip certificate verification
  2. Use Bash curl throughout — do not use the HttpRequest tool or Python
  3. Do not use output_format: "url" — URL downloads will return empty files in scenarios such as Token Plan due to CDN authentication failures. Always use the default hex format; audio data is returned directly in the API response

Full Execution Flow

Prerequisites

  • The user has configured the MiniMax Provider (regular API or Token Plan) in Resource Manager → Compute and filled in the API Key
  • agent-service is running

Core Concepts

MiniMax Music Generation is a synchronous API (not an asynchronous task model); it returns audio data directly when called. Three modes are supported:

Mode model Description
Song generation music-2.6 Provide prompt + lyrics to generate a song with vocals
Pure instrumental music-2.6 Set is_instrumental: true; only a prompt is needed
Cover music-cover Provide a reference audio + prompt; rearrange based on the melodic skeleton

Lyrics Structure Tags

The lyrics field supports the following structure tags to organize song sections:

Tag Meaning
[verse] Verse
[chorus] Chorus
[bridge] Bridge
[intro] Intro
[outro] Outro
[interlude] Interlude

Example lyrics format:

[verse]
夜晚的城市灯火阑珊
我独自走在回家的路上

[chorus]
这一刻时间仿佛停止
所有的喧嚣都已远去

Generate a Song (with Vocals)

Note: Do not pass the output_format parameter; use the default hex format.

PORT=$(cat ${DESIRECORE_ROOT}/agent-service.port)
curl -sk -X POST "https://127.0.0.1:${PORT}/api/media-proxy" \
  -H "Content-Type: application/json" \
  -d '{
    "provider": "minimax",
    "serviceType": "music_gen",
    "endpoint": "/music_generation",
    "body": {
      "model": "music-2.6",
      "prompt": "独立民谣,温暖,治愈,吉他伴奏",
      "lyrics": "[verse]\n歌词内容\n\n[chorus]\n副歌内容",
      "audio_setting": {
        "format": "mp3",
        "sample_rate": 44100,
        "bitrate": 256000
      }
    },
    "responseType": "json"
  }'

Generate Pure Instrumental

PORT=$(cat ${DESIRECORE_ROOT}/agent-service.port)
curl -sk -X POST "https://127.0.0.1:${PORT}/api/media-proxy" \
  -H "Content-Type: application/json" \
  -d '{
    "provider": "minimax",
    "serviceType": "music_gen",
    "endpoint": "/music_generation",
    "body": {
      "model": "music-2.6",
      "prompt": "电子音乐,氛围感,空灵,合成器铺底",
      "is_instrumental": true,
      "audio_setting": {
        "format": "mp3",
        "sample_rate": 44100,
        "bitrate": 256000
      }
    },
    "responseType": "json"
  }'

Response Handling and Saving

The API returns JSON; audio data is hex-encoded and stored in the data.data.audio.data field.

Response structure:

{
  "success": true,
  "data": {
    "data": {
      "audio": {
        "data": "hex编码的音频数据...",
        "status": 2
      }
    },
    "extra_info": {
      "music_duration": 180000,
      "music_sample_rate": 44100,
      "music_channel": 2,
      "bitrate": 256000,
      "music_size": 1234567
    },
    "base_resp": { "status_code": 0, "status_msg": "success" }
  },
  "statusCode": 200
}

Note: The status field means 1 = synthesizing (streaming scenario), 2 = synthesis complete. In non-streaming mode, the returned status is 2.

Save the hex Audio Data to media-store

Extract the hex string from the data.data.audio.data field of the response JSON, convert it to binary, and upload:

PORT=$(cat ${DESIRECORE_ROOT}/agent-service.port)
# Save the API response to a temporary file (avoid letting large hex data overflow shell variables)
# Assume the curl output of the previous step has been saved to /tmp/minimax-music-resp.json

# Extract hex data and convert to binary (pure Bash, no Python dependency)
jq -r '.data.data.audio.data' /tmp/minimax-music-resp.json | xxd -r -p > /tmp/minimax-music.mp3

# Verify the file is valid (greater than 1KB and in audio format)
FILE_SIZE=$(stat -f%z /tmp/minimax-music.mp3 2>/dev/null || stat -c%s /tmp/minimax-music.mp3 2>/dev/null)
if [ "$FILE_SIZE" -lt 1024 ]; then
  echo "ERROR: 音频文件异常(${FILE_SIZE} 字节),可能生成失败"
  exit 1
fi

# Upload to media-store
curl -sk -X POST "https://127.0.0.1:${PORT}/api/media/upload" \
  -F "file=@/tmp/minimax-music.mp3;type=audio/mpeg"

Extract the mediaId field from the upload response JSON.

Display the Result

In the reply, use a dc-media protocol reference (the frontend will automatically detect the audio extension and render a player):

![音乐生成结果](dc-media://这里替换为mediaId)

Parameter Descriptions

Parameter Description Required Default
model Model name Yes "music-2.6"
prompt Music style/mood description Optional when lyrics are present; required for pure instrumental/cover —
lyrics Lyrics (structure tags supported) Required when not in pure instrumental mode —
is_instrumental Whether to generate pure instrumental No false
lyrics_optimizer Auto-generate lyrics from the prompt No false
audio_setting.format Audio format: mp3/wav/pcm No "mp3"
audio_setting.sample_rate Sample rate: 16000/24000/32000/44100 No 32000
audio_setting.bitrate Bitrate: 32000/64000/128000/256000 No 128000

Tips for Writing Prompts

The prompt is used to describe the music's style, mood, and instrumentation; commas are recommended to separate keywords:

  • Style: 独立民谣, 电子舞曲, 古典钢琴, 摇滚, R&B, 爵士, 嘻哈
  • Mood: 温暖, 忧郁, 欢快, 史诗感, 空灵, 治愈
  • Instruments: 吉他伴奏, 钢琴独奏, 弦乐铺底, 合成器, 鼓点强劲
  • Structure: 渐进式编曲, 开场留白渐入高潮, 轻柔开头爆发副歌

Example: "独立民谣,温暖治愈,木吉他为主,轻柔的鼓点,渐进式编曲"

Auto-generated Lyrics Mode

If the user only describes the desired music style without providing lyrics, set lyrics_optimizer: true and the model will auto-generate lyrics from the prompt:

PORT=$(cat ${DESIRECORE_ROOT}/agent-service.port)
curl -sk -X POST "https://127.0.0.1:${PORT}/api/media-proxy" \
  -H "Content-Type: application/json" \
  -d '{
    "provider": "minimax",
    "serviceType": "music_gen",
    "endpoint": "/music_generation",
    "body": {
      "model": "music-2.6",
      "prompt": "一首关于夏日海边回忆的歌,独立民谣,温暖,吉他",
      "lyrics_optimizer": true,
      "audio_setting": {
        "format": "mp3",
        "sample_rate": 44100,
        "bitrate": 256000
      }
    },
    "responseType": "json"
  }'

Error Handling

  • base_resp.status_code: 1002: rate limit reached, retry later
  • base_resp.status_code: 1004: API Key authentication failed
  • base_resp.status_code: 1008: insufficient balance
  • base_resp.status_code: 1026: content sensitive, modify the lyrics or prompt and retry
  • base_resp.status_code: 2013: parameter error, check required fields
  • success: false + error: "未找到匹配的供应商": No enabled MiniMax provider with music_gen service found

Notes

  • The prompt length limit is 1-2000 characters; the lyrics length limit is 1-3500 characters
  • Token Plan users: all plans use music-2.6 for free (100 tracks/day, each track ≤5 minutes)
  • Unless the user specifies otherwise, default to music-2.6 + mp3 format + 44100 sample rate
  • If the user only gives a theme without lyrics, use lyrics_optimizer: true to auto-generate lyrics
  • If the user requests pure music/accompaniment, set is_instrumental: true
  • Music generation takes a relatively long time (typically 30-90 seconds); please be patient
  • The hex data volume is large (several MB); always use a temporary file as intermediary, do not store it in shell variables