Zarządzaj projektami dubbingu

Wyświetlaj, pobieraj i usuwaj projekty dubbingu oraz ich języki docelowe.

Instrukcja · Zakłada, że wiesz, jak tworzyć projekty dubbingowe, jak pokazano w krótkim wprowadzeniu do Dubbing.

Ten przewodnik opisuje działania potrzebne do zarządzania istniejącymi projektami: wyświetlanie ich z paginacją, pobieranie pojedynczego projektu lub języka, odświeżanie wygasłego adresu URL pobierania oraz usuwanie projektów i języków, których już nie potrzebujesz.

Wyświetlanie projektów

Endpoint listy używa paginacji opartej na kursorze. Przekaż page_size (do 100) i opcjonalny filtr status, a następnie przekaż next_cursor z odpowiedzi jako cursor, aby pobrać kolejną stronę. next_cursor o wartości null oznacza, że dotarłeś do końca.

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

Pobieranie projektu lub języka

Pobierz pojedynczy projekt, aby odczytać jego status i metadane mediów, albo pojedynczy język, aby odczytać jego status i wyniki.

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)

Odświeżanie wygasłego adresu URL pobierania

Podpisany adres URL w outputs.lossless_audio jest ważny przez około godzinę. To nie jest stały link, więc zapisz pobrany plik, a nie adres URL. Aby później ponownie pobrać ukończony dubbing, pobierz język, by uzyskać nowy adres 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)

Usuwanie projektów i języków

Usuń jeden docelowy język, aby usunąć jeden dubbing bez usuwania projektu, albo usuń projekt wraz ze wszystkimi jego językami. Usunięcie jest trwałe.

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