Gérer les projets de doublage

Listez, récupérez et supprimez les projets de doublage et leurs cibles de langue.

Guide pratique · Suppose que vous savez créer des projets de doublage, comme indiqué dans le guide de démarrage rapide du doublage.

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.

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

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.

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)

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.

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)

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.

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