Gestiona proyectos de doblaje

Enumera, consulta y elimina proyectos de doblaje y sus idiomas de destino.

Guía práctica · Da por hecho que sabes crear proyectos de doblaje, como se muestra en la guía de inicio rápido de Doblaje.

Esta guía explica las operaciones necesarias para gestionar proyectos existentes: listarlos con paginación, recuperar un proyecto o idioma concreto, actualizar una URL de descarga caducada y eliminar proyectos e idiomas que ya no necesites.

Listar proyectos

La ruta de listado usa paginación por cursor. Pasa page_size (hasta 100) y un filtro status opcional; después, vuelve a pasar el next_cursor de la respuesta como cursor para obtener la página siguiente. Un next_cursor con valor null significa que has llegado al final.

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

Recuperar un proyecto o idioma

Recupera un proyecto concreto para consultar su estado y los metadatos del contenido multimedia, o un idioma concreto para consultar su estado y resultados.

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)

Actualizar una URL de descarga caducada

La URL firmada de outputs.lossless_audio es válida durante aproximadamente una hora. No es un enlace permanente, así que guarda el archivo descargado en lugar de la URL. Para volver a descargar un doblaje completado más tarde, recupera el idioma para obtener una URL nueva.

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)

Eliminar proyectos e idiomas

Elimina un único idioma de destino para borrar un doblaje sin eliminar el proyecto, o elimina el proyecto para borrarlo junto con todos sus idiomas. La eliminación es permanente.

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