> 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.

# Hantera dubbningsprojekt

> **Note**
>
> **Instruktionsguide** · Förutsätter att du är bekant med att skapa dubbningsprojekt, enligt
> [snabbstarten för dubbning](/docs/sv/eleven-api/guides/cookbooks/dubbing).

Den här guiden beskriver de åtgärder du behöver för att hantera befintliga projekt: lista dem med paginering, hämta ett enskilt projekt eller språk, förnya en utgången nedladdnings-URL och ta bort projekt och språk som du inte längre behöver.

## Lista projekt

Liständpunkten är sidindelad med en markör. Skicka `page_size` (upp till 100) och ett valfritt `status`-filter, och skicka sedan svarets `next_cursor` som `cursor` för att hämta nästa sida. `next_cursor` med värdet `null` innebär att du har nått slutet.

```python
import os
from dotenv import load_dotenv
from elevenlabs.client import ElevenLabs

load_dotenv()

elevenlabs = ElevenLabs(api_key=os.getenv("ELEVENLABS_API_KEY"))

# Fetch every ready project, one page at a time
cursor = None
while True:
    page = elevenlabs.dubbing.project.list(
        page_size=50,
        status="ready",
        cursor=cursor,
    )
    for project in page.projects:
        print(project.project_id, project.reference)
    if page.next_cursor is None:
        break
    cursor = page.next_cursor
```

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

const elevenlabs = new ElevenLabsClient();

// Fetch every ready project, one page at a time
let cursor: string | undefined = undefined;
while (true) {
  const page = await elevenlabs.dubbing.project.list({
    pageSize: 50,
    status: "ready",
    cursor,
  });
  for (const project of page.projects) {
    console.log(project.projectId, project.reference);
  }
  if (!page.nextCursor) break;
  cursor = page.nextCursor;
}
```

## Hämta ett projekt eller språk

Hämta ett enskilt projekt för att läsa dess status och mediemetadata, eller ett enskilt språk för att läsa dess status och utdata.

```python
project_id = "proj_1601kwkyxp0hfzvtmyxwqxx6mcy3"
language_id = "lang_1001kwkyxp0je6ktn4knsfrasx5s"

project = elevenlabs.dubbing.project.get(project_id)
print(project.status, project.language_ids)

language = elevenlabs.dubbing.project.language.get(project_id, language_id)
print(language.status, language.target_language)
```

```typescript
const projectId = "proj_1601kwkyxp0hfzvtmyxwqxx6mcy3";
const languageId = "lang_1001kwkyxp0je6ktn4knsfrasx5s";

const project = await elevenlabs.dubbing.project.get(projectId);
console.log(project.status, project.languageIds);

const language = await elevenlabs.dubbing.project.language.get(projectId, languageId);
console.log(language.status, language.targetLanguage);
```

## Förnya en utgången nedladdnings-URL

Den signerade URL:en i `outputs.lossless_audio` är giltig i ungefär en timme. Den är inte en permanent länk, så spara den nedladdade filen i stället för URL:en. Om du vill ladda ned en färdig dubbning igen senare hämtar du språket för att få en ny URL.

```python
import requests

language = elevenlabs.dubbing.project.language.get(project_id, language_id)
audio = requests.get(language.outputs.lossless_audio)
with open("dubbed.wav", "wb") as f:
    f.write(audio.content)
```

```typescript
import { writeFile } from "fs/promises";

const language = await elevenlabs.dubbing.project.language.get(projectId, languageId);
const response = await fetch(language.outputs!.losslessAudio!);
const buffer = Buffer.from(await response.arrayBuffer());
await writeFile("dubbed.wav", buffer);
```

## Ta bort projekt och språk

Ta bort ett enskilt språkmål för att ta bort en dubbning medan projektet behålls, eller ta bort projektet för att ta bort det och alla dess språk. Borttagning är permanent.

```python
# Remove a single language target
elevenlabs.dubbing.project.language.delete(project_id, language_id)

# Remove the project and all of its languages
elevenlabs.dubbing.project.delete(project_id)
```

```typescript
// Remove a single language target
await elevenlabs.dubbing.project.language.delete(projectId, languageId);

// Remove the project and all of its languages
await elevenlabs.dubbing.project.delete(projectId);
```