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

# Gérer les projets de doublage

> **Note**
>
> **Guide pratique** · Suppose que vous savez créer des projets de doublage, comme indiqué dans le
> [guide de démarrage rapide du doublage](/docs/fr/eleven-api/guides/cookbooks/dubbing).

Ce guide présente les opérations nécessaires pour gérer les projets existants : les lister avec pagination, récupérer un projet ou une langue, actualiser une URL de téléchargement expirée et supprimer les projets et langues dont vous n’avez plus besoin.

## Lister les projets

Le point de terminaison de liste utilise une pagination par curseur. Transmettez `page_size` (jusqu’à 100) et un filtre `status` facultatif, puis retransmettez le `next_cursor` de la réponse en tant que `cursor` pour récupérer la page suivante. Un `next_cursor` de valeur `null` indique que vous avez atteint la fin.

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

## Récupérer un projet ou une langue

Récupérez un seul projet pour lire son état et les métadonnées du média, ou une seule langue pour lire son état et ses sorties.

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

## Actualiser une URL de téléchargement expirée

L’URL signée dans `outputs.lossless_audio` est valide pendant environ une heure. Il ne s’agit pas d’un lien permanent ; stockez donc le fichier téléchargé plutôt que l’URL. Pour télécharger à nouveau un doublage terminé ultérieurement, récupérez la langue afin d’obtenir une nouvelle 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);
```

## Supprimer des projets et des langues

Supprimez une seule cible de langue pour retirer un doublage tout en conservant le projet, ou supprimez le projet pour le retirer avec toutes ses langues. La suppression est définitive.

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