Gerenciar projetos de dublagem

Liste, recupere e exclua projetos de dublagem e seus idiomas de destino.

Guia prático · Pressupõe que você já sabe criar projetos de dublagem, como mostrado no guia rápido de Dublagem.

Este guia aborda as operações necessárias para gerenciar projetos existentes: listá-los com paginação, recuperar um único projeto ou idioma, atualizar uma URL de download expirada e excluir projetos e idiomas dos quais você não precisa mais.

Listar projetos

O endpoint de listagem usa paginação por cursor. Passe page_size (até 100) e um filtro status opcional; depois, passe o next_cursor da resposta como cursor para buscar a próxima página. Um next_cursor igual a null significa que você chegou ao fim.

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 um projeto ou idioma

Busque um único projeto para consultar seu status e os metadados da mídia, ou um único idioma para consultar seu status e suas saídas.

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)

Atualizar uma URL de download expirada

A URL assinada em outputs.lossless_audio é válida por cerca de uma hora. Ela não é um link permanente, então armazene o arquivo baixado em vez da URL. Para baixar novamente uma dublagem concluída mais tarde, busque o idioma para obter uma URL nova.

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)

Excluir projetos e idiomas

Exclua um único idioma de destino para remover uma dublagem e manter o projeto, ou exclua o projeto para removê-lo junto com todos os seus idiomas. A exclusão é 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)