mcpField
M
music

music

github.com/connoradsクリエイティブ・メディア1864 回インストール1 日前に更新
リポジトリ

music について

ElevenLabsでインストゥルメンタルや歌詞付きの曲を生成するスキルです。作曲プランによる調整や、アップロードした動画に合わせたBGM生成にも対応します。

主な機能

  1. 01プロンプトから楽曲を生成
  2. 02作曲プランの作成と編集
  3. 03音声・プラン・メタデータの生成
  4. 04アップロード動画向けの楽曲生成
  5. 05インペインティング用の音声アップロード

活用シーン

  1. 01テキストの説明からインスト曲を作成
  2. 02セクション別の作曲プランで曲を調整
  3. 03動画クリップのBGMを生成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/connorads/dotfiles --skill music

インストール後、Claude Code で/musicを入力して読み込まれたか確認します。

同梱ファイルreferences/api_reference.mdreferences/installation.md

詳細

ElevenLabs Music Generation

テキストプロンプトから音楽を生成します。インストゥルメンタルトラック、歌詞付きの楽曲、コンポジションプランによる細かな制御に対応しています。

セットアップ: インストールガイドを参照してください。JavaScript では @elevenlabs/* パッケージのみを使用してください。

クイックスタート

Python
from elevenlabs import ElevenLabs

client = ElevenLabs()

audio = client.music.compose(
    prompt="A chill lo-fi hip hop beat with jazzy piano chords",
    music_length_ms=30000
)

with open("output.mp3", "wb") as f:
    for chunk in audio:
        f.write(chunk)
JavaScript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";
import { createWriteStream } from "fs";

const client = new ElevenLabsClient();
const audio = await client.music.compose({
  prompt: "A chill lo-fi hip hop beat with jazzy piano chords",
  musicLengthMs: 30000,
});
audio.pipe(createWriteStream("output.mp3"));
cURL
curl -X POST "https://api.elevenlabs.io/v1/music" \
  -H "xi-api-key: $ELEVENLABS_API_KEY" -H "Content-Type: application/json" \
  -d '{"prompt": "A chill lo-fi beat", "music_length_ms": 30000}' --output output.mp3

メソッド

メソッド説明
music.composeプロンプトまたはコンポジションプランから音声を生成します
music.composition_plan.create細かな制御ができる構造化プランを生成します
music.compose_detailed音声、コンポジションプラン、メタデータを生成します
music.video_to_musicアップロードした1つ以上の動画ファイルからBGMを生成します
music.upload後続のインペインティングワークフロー用に音声ファイルをアップロードし、必要に応じてコンポジションプランを抽出します

パラメーターの詳細については、API リファレンスを参照してください。

music.upload は、インペインティング機能を利用できるエンタープライズクライアント向けに提供されています。

動画から音楽を生成

アップロードした1つ以上の動画クリップに沿ったBGMを生成します。API は動画を順番に結合し、任意の自然言語による説明を受け付け、upbeat や cinematic など最大10個のタグでスタイルを指定できます。

Python
from elevenlabs import ElevenLabs

client = ElevenLabs()

audio = client.music.video_to_music(
    videos=["trailer.mp4"],
    description="Build suspense, then resolve with a warm cinematic finish.",
    tags=["cinematic", "suspenseful", "uplifting"],
)

with open("video-score.mp3", "wb") as f:
    for chunk in audio:
        f.write(chunk)
cURL
curl -X POST "https://api.elevenlabs.io/v1/music/video-to-music" \
  -H "xi-api-key: $ELEVENLABS_API_KEY" \
  -F "[email protected]" \
  -F "description=Build suspense, then resolve with a warm cinematic finish." \
  -F "tags=cinematic" \
  -F "tags=suspenseful" \
  -F "tags=uplifting" \
  --output video-score.mp3

現在の API スキーマにおける制約:

  • 1回のリクエストでアップロードできる動画ファイルは1~10個です
  • アップロードしたファイルの合計サイズは200 MB以下にしてください
  • 動画の合計時間は600秒以下にしてください
  • 大まかな音楽の方向性には description を、簡潔なスタイル指定には tags を使用してください

コンポジションプラン

細かな制御を行うには、まずコンポジションプランを生成して変更し、その後で音楽を生成します。

plan = client.music.composition_plan.create(
    prompt="An epic orchestral piece building to a climax",
    music_length_ms=60000
)

# Inspect/modify styles and sections
print(plan.positiveGlobalStyles)  # e.g. ["orchestral", "epic", "cinematic"]

audio = client.music.compose(
    composition_plan=plan,
    music_length_ms=60000
)

コンテンツの制限

  • 特定のアーティスト、バンド、または著作権で保護された歌詞は指定できません
  • bad_prompt エラーには、別の表現を提案する prompt_suggestion が含まれます
  • bad_composition_plan エラーには composition_plan_suggestion が含まれます

エラー処理

try:
    audio = client.music.compose(prompt="...", music_length_ms=30000)
except Exception as e:
    print(f"API error: {e}")

一般的なエラー:401(無効なキー)、422(無効なパラメーター)、429(レート制限)。

参考資料

コメント