Synchronisationsprojekte verwalten

Synchronisationsprojekte und ihre Sprachziele auflisten, abrufen und löschen.

Anleitung · Setzt voraus, dass Sie mit dem Erstellen von Synchronisationsprojekten vertraut sind, wie im Dubbing-Schnellstart gezeigt.

Dieser Leitfaden behandelt die Vorgänge zur Verwaltung bestehender Projekte: Sie mit Paginierung auflisten, ein einzelnes Projekt oder eine Sprache abrufen, eine abgelaufene Download-URL aktualisieren und nicht mehr benötigte Projekte und Sprachen löschen.

Projekte auflisten

Der Listen-Endpunkt verwendet Cursor-Paginierung. Übergeben Sie page_size (bis zu 100) und einen optionalen status-Filter. Übergeben Sie dann den next_cursor der Antwort als cursor, um die nächste Seite abzurufen. Ein next_cursor von null bedeutet, dass Sie das Ende erreicht haben.

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

Ein Projekt oder eine Sprache abrufen

Rufen Sie ein einzelnes Projekt ab, um Status und Medienmetadaten zu lesen, oder eine einzelne Sprache, um ihren Status und ihre Ausgaben zu lesen.

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)

Eine abgelaufene Download-URL aktualisieren

Die signierte URL in outputs.lossless_audio ist etwa eine Stunde lang gültig. Sie ist kein permanenter Link. Speichern Sie daher die heruntergeladene Datei statt der URL. Um eine abgeschlossene Synchronisation später erneut herunterzuladen, rufen Sie die Sprache ab, um eine neue URL zu erhalten.

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)

Projekte und Sprachen löschen

Löschen Sie ein einzelnes Sprachziel, um eine Synchronisation zu entfernen und das Projekt zu behalten. Oder löschen Sie das Projekt, um es zusammen mit allen Sprachen zu entfernen. Das Löschen ist dauerhaft.

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