管理配音项目

列出、获取和删除配音项目及其语言目标。

操作指南 · 假设你已熟悉如何创建配音项目,如 配音快速入门所示。

本指南介绍管理现有项目所需的操作:使用分页列出项目、获取单个项目或语言、刷新过期的下载 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)

删除项目和语言

删除单个语言目标可移除一条配音并保留项目;删除项目则会移除项目及其所有语言。删除操作不可恢复。

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