Génération musicale ElevenLabs
Générez de la musique à partir de descriptions textuelles - supports les pistes instrumentales, les chansons avec paroles et un contrôle granulaire via des plans de composition.
Configuration : Voir le Guide d'installation. Pour JavaScript, utilisez uniquement les packages
@elevenlabs/*.
Démarrage rapide
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
Méthodes
| Méthode | Description |
|---|---|
music.compose |
Générer un audio à partir d'une description ou d'un plan de composition |
music.composition_plan.create |
Générer un plan structuré pour un contrôle granulaire |
music.compose_detailed |
Générer un audio + plan de composition + métadonnées |
music.video_to_music |
Générer une musique de fond à partir d'un ou plusieurs fichiers vidéo uploadés |
music.upload |
Uploader un fichier audio pour des workflows d'inpainting ultérieurs et optionnellement extraire son plan de composition |
Voir la Référence API pour les détails complets des paramètres.
music.upload est disponible pour les clients enterprise ayant accès à la fonctionnalité d'inpainting.
Vidéo vers musique
Générez une musique de fond qui suit un ou plusieurs clips vidéo uploadés. L'API combine les vidéos dans l'ordre, accepte une description optionnelle en langage naturel et vous permet de diriger le style avec jusqu'à 10 tags tels que upbeat ou cinematic.
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 "videos=@trailer.mp4" \
-F "description=Build suspense, then resolve with a warm cinematic finish." \
-F "tags=cinematic" \
-F "tags=suspenseful" \
-F "tags=uplifting" \
--output video-score.mp3
Contraintes du schéma API actuel :
- Upload 1 à 10 fichiers vidéo par requête
- Gardez la taille d'upload combinée totale à 200 MB ou moins
- Gardez la durée vidéo combinée totale à 600 secondes ou moins
- Utilisez
descriptionpour les directives musicales de haut niveau ettagspour des indices de style concis
Plans de composition
Pour un contrôle granulaire, générez d'abord un plan de composition, modifiez-le, puis composez :
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
)
Restrictions de contenu
- Impossible de référencer des artistes spécifiques, des groupes ou des paroles protégeables par droits d'auteur
- Les erreurs
bad_promptincluent uneprompt_suggestionavec une formulation alternative - Les erreurs
bad_composition_planincluent unecomposition_plan_suggestion
Gestion des erreurs
try:
audio = client.music.compose(prompt="...", music_length_ms=30000)
except Exception as e:
print(f"API error: {e}")
Erreurs courantes : 401 (clé invalide), 422 (paramètres invalides), 429 (limite de débit).