> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Snabbstart för musik

Den här guiden visar hur du genererar musik med vårt Music API.

> **Tip**
>
> Använd [ElevenLabs musikskill](https://github.com/elevenlabs/skills/tree/main/music) för att generera musikspår från din AI-kodningsassistent:
>
> ```bash
> npx skills add elevenlabs/skills --skill music
> ```

> **Info**
>
> Music API är endast tillgängligt för betalande användare.

## Använda Music API

#### Skapa en API-nyckel

[Skapa en API-nyckel i dashboarden här](https://elevenlabs.io/app/api/api-keys), som du använder för att säkert [få åtkomst till API:t](/docs/sv/api-reference/authentication).

Spara nyckeln som en hanterad hemlighet och skicka den till SDK:erna antingen som en miljövariabel via en `.env`-fil eller direkt i appens konfiguration, beroende på vad du föredrar.

**`.env`**

```js title=".env"
ELEVENLABS_API_KEY=<your_api_key_here>
```

#### Installera SDK:t

#### SDK

Vi använder också biblioteket `dotenv` för att läsa in vår API-nyckel från en miljövariabel.

```python
pip install elevenlabs
pip install python-dotenv
```

```typescript
npm install @elevenlabs/elevenlabs-js
npm install dotenv
```

#### CLI

Installera ElevenLabs CLI. Homebrew (macOS) och Scoop (Windows) rekommenderas.

**`Homebrew (macOS)`**

```bash title="Homebrew (macOS)"
brew install elevenlabs/tap/elevenlabs
```

**`Scoop (Windows)`**

```powershell title="Scoop (Windows)"
scoop bucket add elevenlabs https://github.com/elevenlabs/scoop-bucket
scoop install elevenlabs
```

**`npm`**

```bash title="npm"
npm install -g @elevenlabs/cli
```

**`curl`**

```bash title="curl"
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/elevenlabs/cli/releases/latest/download/elevenlabs-cli-installer.sh | sh
```

> **Tip**
>
> Arbetar du med en AI-kodningsassistent? Kör `elevenlabs generate-skills` i ditt projekt för att skapa en
> `SKILL.md` för varje kommandogrupp i `skills/`, så att assistenten känner till hela CLI:ts yta
> utan att du behöver klistra in dokumentation. Använd `--output-dir` för att lägga dem någon annanstans. Detta läser CLI:ts egen
> inbäddade API-definition, så det kräver ingen API-nyckel och fungerar offline — och det följer
> den version av CLI:t som du har installerad.

Autentisera sedan — detta öppnar webbläsaren så att du kan auktorisera CLI:t:

```bash
elevenlabs auth login
```

#### Gör API-anropet

#### SDK

Skapa en ny fil med namnet `example.py` eller `example.mts`, beroende på vilket språk du väljer, och lägg till följande kod:

```python
# 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)
```

```typescript
// example.mts
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";
import { Readable } from "stream";
import { createWriteStream } from "fs";
import { pipeline } from "stream/promises";
import "dotenv/config";

const elevenlabs = new ElevenLabsClient();

const track = await 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.",
  musicLengthMs: 10000,
  modelId: "music_v2_5",
});

// Save the track to a file
await pipeline(Readable.from(track), createWriteStream("path/to/music.mp3"));
```

Kör sedan den:

```python
python example.py
```

```typescript
npx tsx example.mts
```

Du bör höra den genererade musiken spelas upp.

#### CLI

Generera ett spår och spara det i en fil:

```bash
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 \
  --output music.mp3
```

Öppna `music.mp3` för att höra resultatet.

## Kompositionsplaner

En kompositionsplan är ett JSON-objekt som beskriver musiken du vill generera mer detaljerat. Använd textprompter för snabb prototypframtagning och kompositionsplaner när du behöver en specifik chunkstruktur, exakt tidssättning av låttext eller komplexa arrangemang.

#### [Guide till kompositionsplaner](/docs/sv/eleven-api/guides/how-to/music/composition-plans)

Lär dig strukturera låtar med chunkar, stilar och låttexter för exakt kontroll.

### Generera en kompositionsplan

En kompositionsplan kan genereras från en prompt med API:t.

```python
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)
```

```typescript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";
import "dotenv/config";

const elevenlabs = new ElevenLabsClient();

const compositionPlan = await elevenlabs.music.compositionPlan.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.",
  musicLengthMs: 10000,
  modelId: "music_v2_5",
});

console.log(JSON.stringify(compositionPlan, null, 2));
```

Ovanstående genererar en kompositionsplan som liknar följande:

```json
{
  "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"
    }
  ]
}
```

### Använda en kompositionsplan

En kompositionsplan kan användas för att generera musik genom att skicka den till metoden `compose`.

```python
# 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)
```

```typescript
// You can pass in compositionPlan or prompt, but not both.
const composition = await elevenlabs.music.compose({
    compositionPlan,
    modelId: "music_v2_5",
});

await play(composition);
```

## Generera musik med detaljer

För varje musikgenerering skapas en kompositionsplan från prompten. Du kan välja att hämta den här planen via slutpunkten för detaljerade svar.

```python
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
```

```typescript
const trackDetails = await elevenlabs.music.composeDetailed({
  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, 30–150 bpm, with rising tension, quick transitions, and dynamic energy bursts.',
  musicLengthMs: 10000,
  modelId: "music_v2_5",
});

console.log(JSON.stringify(trackDetails.json, null, 2)); // json contains composition_plan and song_metadata. The composition plan will include lyrics (if applicable)
console.log(trackDetails.filename);
// trackDetails.audio contains the audio bytes
```

## Upphovsrättsskyddat material

Försök att generera musik eller en kompositionsplan som innehåller upphovsrättsskyddat material resulterar i ett fel. Det gäller även om du nämner ett band eller en musiker vid namn eller använder upphovsrättsskyddade låttexter.

### Prompter med upphovsrättsskyddat material

I dessa fall returnerar API:t ett `bad_prompt`-fel som innehåller ett förslag på vilken prompt du kan använda i stället.

```python
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
```

```typescript
try {
  // This will result in a bad_prompt error
  const track = await elevenlabs.music.compose({
    prompt: "A song that sounds like 'Bohemian Rhapsody'",
    musicLengthMs: 10000,
    modelId: "music_v2_5",
  });
} catch (error) {
  if (error.body.detail.status === 'bad_prompt') {
    const promptSuggestion = error.body.detail.data.prompt_suggestion;
    console.log(promptSuggestion); // Logs: 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
  }
}
```

### Kompositionsplaner med upphovsrättsskyddat material

Om stilar som använder upphovsrättsskyddat material används när en kompositionsplan genereras returneras ett `bad_composition_plan`-fel. Precis som för musikprompter returneras en föreslagen kompositionsplan, `composition_plan_suggestion`, i felet.

> **Warning**
>
> Om en kompositionsplan eller prompt innehåller skadligt material returneras inget förslag på prompt.

## Nästa steg

#### [Streama musik](/docs/sv/eleven-api/guides/how-to/music/streaming)

Streama genererad musik i realtid i stället för att vänta på hela filen

#### [Musikinpainting](/docs/sv/eleven-api/guides/how-to/music/inpainting)

Ändra eller utöka specifika avsnitt i ett befintligt musikspår

#### [API-referens](/docs/sv/api-reference/music/compose)

Utforska alla parametrar och svarsformat för Music API