Vai alla navigazione

Gestisci i progetti di doppiaggio

Elenca, recupera ed elimina i progetti di doppiaggio e le relative lingue di destinazione.

Guida pratica · Presuppone che tu abbia familiarità con la creazione di progetti di doppiaggio, come mostrato nella guida rapida al doppiaggio.

Questa guida illustra le operazioni necessarie per gestire i progetti esistenti: elencarli con la paginazione, recuperare un singolo progetto o una lingua, aggiornare un URL di download scaduto ed eliminare i progetti e le lingue che non ti servono più.

Elenca i progetti

L’endpoint dell’elenco usa la paginazione basata su cursore. Passa page_size (fino a 100) e un filtro status facoltativo, quindi passa il next_cursor della risposta come cursor per recuperare la pagina successiva. Un next_cursor di null indica che hai raggiunto la fine.

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

Recupera un progetto o una lingua

Recupera un singolo progetto per leggerne lo stato e i metadati dei contenuti multimediali, oppure una singola lingua per leggerne lo stato e gli output.

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)

Aggiorna un URL di download scaduto

L’URL firmato in outputs.lossless_audio è valido per circa un’ora. Non è un link permanente, quindi conserva il file scaricato anziché l’URL. Per scaricare di nuovo un doppiaggio completato in seguito, recupera la lingua per ottenere un nuovo 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)

Elimina progetti e lingue

Elimina una singola lingua di destinazione per rimuovere un doppiaggio mantenendo il progetto, oppure elimina il progetto per rimuoverlo insieme a tutte le sue lingue. L’eliminazione è 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)