吹き替えプロジェクトを管理する

吹き替えプロジェクトとその言語ターゲットの一覧表示、取得、削除を行います。

ハウツーガイド · ダビングクイックスタートで示したように、ダビングプロジェクトの作成方法を理解していることを前提としています。

このガイドでは、既存プロジェクトを管理するために必要な操作を説明します。ページネーションでの一覧取得、単一のプロジェクトまたは言語の取得、期限切れのダウンロードURLの更新、不要になったプロジェクトと言語の削除について扱います。

プロジェクトを一覧表示する

一覧エンドポイントはカーソルベースのページネーションを使用します。page_size(最大100)と任意のstatusフィルターを渡し、次のページを取得するにはレスポンスのnext_cursorをcursorとして渡します。next_cursorがnullの場合、最後まで到達しています。

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

プロジェクトまたは言語を取得する

単一のプロジェクトを取得してステータスとメディアメタデータを確認するか、単一の言語を取得してステータスと出力を確認します。

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)

期限切れのダウンロードURLを更新する

outputs.lossless_audioの署名付きURLは約1時間有効です。永続リンクではないため、URLではなくダウンロードしたファイルを保存してください。完了した吹き替えを後で再度ダウンロードするには、言語を取得して新しい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)

プロジェクトと言語を削除する

単一の言語ターゲットを削除すると、プロジェクトは保持したまま1つの吹き替えを削除できます。プロジェクトを削除すると、そのプロジェクトとすべての言語が削除されます。削除は元に戻せません。

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