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

# Nasynchronisatieprojecten beheren

> **Note**
>
> **Handleiding** · Hierbij wordt ervan uitgegaan dat je bekend bent met het maken van nasynchronisatieprojecten, zoals getoond in de
> [Dubbing quickstart](/docs/nl/eleven-api/guides/cookbooks/dubbing).

Deze handleiding behandelt de bewerkingen die je nodig hebt om bestaande projecten te beheren: ze weergeven met paginering, één project of taal ophalen, een verlopen download-URL vernieuwen en projecten en talen verwijderen die je niet meer nodig hebt.

## Projecten weergeven

Het list-endpoint gebruikt cursorpaginering. Geef `page_size` door (maximaal 100) en eventueel een `status`-filter, en geef vervolgens de `next_cursor` uit de response door als `cursor` om de volgende pagina op te halen. Een `next_cursor` van `null` betekent dat je het einde hebt bereikt.

```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;
}
```

## Een project of taal ophalen

Haal één project op om de status en mediametadata te lezen, of één taal om de status en outputs te lezen.

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

## Een verlopen download-URL vernieuwen

De ondertekende URL in `outputs.lossless_audio` is ongeveer een uur geldig. Het is geen permanente link, dus sla het gedownloade bestand op in plaats van de URL. Als je een voltooide nasynchronisatie later opnieuw wilt downloaden, haal je de taal op om een nieuwe URL te krijgen.

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

## Projecten en talen verwijderen

Verwijder één doeltaal om één nasynchronisatie te verwijderen terwijl je het project behoudt, of verwijder het project om het samen met alle talen te verwijderen. Verwijderen is 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);
```