더빙 프로젝트 관리

더빙 프로젝트와 해당 언어 대상을 나열, 조회 및 삭제합니다.

방법 가이드 · 더빙 빠른 시작에 설명된 대로 더빙 프로젝트를 만드는 방법을 알고 있다고 가정합니다.

이 가이드에서는 기존 프로젝트를 관리하는 데 필요한 작업을 다룹니다. 페이지네이션을 사용한 목록 조회, 단일 프로젝트 또는 언어 조회, 만료된 다운로드 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)