Guía de inicio rápido de música

Aprende a generar música con la API de música.

Esta guía te mostrará cómo generar música con nuestra API de Música.

Usa la skill de música de ElevenLabs para generar pistas musicales desde tu asistente de programación con IA:

npx skills add elevenlabs/skills --skill music
La API de Música solo está disponible para usuarios de pago.

Uso de la API de Música

1

Crea una clave de API

Crea una clave de API aquí, en el panel, que usarás para acceder a la API de forma segura.

Guarda la clave como un secreto gestionado y pásala a los SDK como variable de entorno mediante un archivo .env, o directamente en la configuración de tu aplicación, según prefieras.

.env
ELEVENLABS_API_KEY=<your_api_key_here>
2

Instala el SDK

También usaremos la biblioteca dotenv para cargar nuestra clave de API desde una variable de entorno.

pip install elevenlabs
pip install python-dotenv
3

Haz la solicitud a la API

Crea un archivo llamado example.py o example.mts, según el lenguaje que elijas, y añade el siguiente código:

# example.py
from elevenlabs.client import ElevenLabs
from elevenlabs.play import play
import os
from dotenv import load_dotenv
load_dotenv()
elevenlabs = ElevenLabs(
api_key=os.getenv("ELEVENLABS_API_KEY"),
)
track = elevenlabs.music.compose(
prompt="Create an intense, fast-paced electronic track for a high-adrenaline video game scene. Use driving synth arpeggios, punchy drums, distorted bass, glitch effects, and aggressive rhythmic textures. The tempo should be fast, 130–150 bpm, with rising tension, quick transitions, and dynamic energy bursts.",
music_length_ms=10000,
model_id="music_v2_5",
)
# Save the track to a file
with open("path/to/music.mp3", "wb") as f:
for chunk in track:
f.write(chunk)

A continuación, ejecútalo:

python example.py

Deberías oír la música generada.

Planes de composición

Un plan de composición es un objeto JSON que describe con más detalle la música que quieres generar. Usa prompts de texto para crear prototipos rápidos y planes de composición cuando necesites una estructura específica de fragmentos, una sincronización precisa de la letra o arreglos complejos.

Generación de un plan de composición

Puedes generar un plan de composición a partir de un prompt mediante la API.

from elevenlabs.client import ElevenLabs
from elevenlabs.play import play
import os
from dotenv import load_dotenv
load_dotenv()
elevenlabs = ElevenLabs(
api_key=os.getenv("ELEVENLABS_API_KEY"),
)
composition_plan = elevenlabs.music.composition_plan.create(
prompt="Create an intense, fast-paced electronic track for a high-adrenaline video game scene. Use driving synth arpeggios, punchy drums, distorted bass, glitch effects, and aggressive rhythmic textures. The tempo should be fast, 130–150 bpm, with rising tension, quick transitions, and dynamic energy bursts.",
music_length_ms=10000,
model_id="music_v2_5",
)
print(composition_plan)

Lo anterior generará un plan de composición similar al siguiente:

{
"chunks": [
{
"text": "[Intro]",
"durationMs": 3000,
"positiveStyles": [
"electronic",
"fast-paced",
"rising synth arpeggio",
"glitch fx",
"filtered noise sweep",
"soft punchy kick building tension",
"high adrenaline"
],
"negativeStyles": ["soft pads", "melodic vocals", "ambient textures"],
"contextAdherence": "high"
},
{
"text": "[Peak Drop]",
"durationMs": 4000,
"positiveStyles": [
"full punchy drums",
"distorted bass stab",
"aggressive rhythmic hits",
"rapid arpeggio sequences"
],
"negativeStyles": ["smooth transitions", "clean bass", "slow buildup"],
"contextAdherence": "high"
},
{
"text": "[Final Burst]",
"durationMs": 3000,
"positiveStyles": [
"glitch stutter",
"energy burst vox chopped sample",
"quick transitions",
"snare rolls"
],
"negativeStyles": ["long reverb tails", "fadeout", "gentle melodies"],
"contextAdherence": "high"
}
]
}

Uso de un plan de composición

Puedes usar un plan de composición para generar música pasándolo al método compose.

# You can pass in composition_plan or prompt, but not both.
composition = elevenlabs.music.compose(
composition_plan=composition_plan,
model_id="music_v2_5",
)
play(composition)

Generación de música con detalles

Para cada generación de música se crea un plan de composición a partir del prompt. Puedes recuperar este plan mediante la ruta de respuesta detallada.

track_details = elevenlabs.music.compose_detailed(
prompt="Create an intense, fast-paced electronic track for a high-adrenaline video game scene. Use driving synth arpeggios, punchy drums, distorted bass, glitch effects, and aggressive rhythmic textures. The tempo should be fast, 130–150 bpm, with rising tension, quick transitions, and dynamic energy bursts.",
music_length_ms=10000,
model_id="music_v2_5",
)
print(track_details.json) # json contains composition_plan and song_metadata. The composition plan will include lyrics (if applicable)
print(track_details.filename)
# track_details.audio contains the audio bytes

Material protegido por derechos de autor

Intentar generar música o un plan de composición que contenga material protegido por derechos de autor provocará un error. Esto incluye mencionar por su nombre a una banda o músico, o usar letras protegidas por derechos de autor.

Prompts con material protegido por derechos de autor

En estos casos, la API devolverá un error bad_prompt que incluye una sugerencia del prompt que podrías usar en su lugar.

try:
# This will result in a bad_prompt error
track = elevenlabs.music.compose(
prompt="A song that sounds like 'Bohemian Rhapsody'",
music_length_ms=10000,
model_id="music_v2_5",
)
except Exception as e:
if e.body['detail']['status'] == 'bad_prompt':
prompt_suggestion = e.body['detail']['data']['prompt_suggestion']
print(prompt_suggestion) # Prints: An epic rock ballad with dramatic tempo changes, operatic harmonies, and a narrative structure that blends melancholy with bursts of theatrical intensity.
# Use the prompt suggestion to generate the track instead

Planes de composición con material protegido por derechos de autor

Si se usan estilos con material protegido por derechos de autor al generar un plan de composición, se devolverá un error bad_composition_plan. Al igual que con los prompts musicales, se devolverá un plan de composición sugerido, composition_plan_suggestion, dentro del error.

En el caso de un plan de composición o un prompt que contenga material perjudicial, no se devolverá ningún prompt sugerido.

Siguientes pasos