API 참조
VidioClient는 Python에서 VIDIO API와 상호 작용하기 위한 주요 진입점입니다. 이를 사용하여 파일을 업로드하고, 하이라이트 릴 작업을 생성하고, 작업 상태를 확인하고, 출력을 렌더링하고, 처리 완료를 기다릴 수 있습니다.
현재 API 액세스는 스튜디오 플랜 이상에서 가능합니다.
클라이언트 모델
VidioClient는 VIDIO API와 작업하기 위한 간단한 인터페이스를 제공합니다. API 키로 클라이언트를 생성한 후, 입력 파일을 업로드하고, 하이라이트 릴 작업을 생성하고, 작업 상태를 폴링하고, 출력을 렌더링하며, 작업이 완료될 때까지 기다릴 수 있습니다.
속성
api_keystring
요청을 인증하는 데 사용되는 VIDIO API 키입니다.
메서드
CLASS
VidioClient(api_key)클라이언트 초기화
새 VidioClient 인스턴스를 생성합니다.
Parameters
api_keystring
귀하의 VIDIO API 키입니다.
Returns
구성된 VidioClient 인스턴스입니다.
python
from vidio import VidioClient
import os
client = VidioClient(
api_key=os.getenv("VIDIO_API_KEY")
)METHOD
client.upload(file_path)파일 업로드
로컬 파일을 VIDIO에 업로드하고 입력 키를 포함하는 업로드 결과를 반환합니다.
Parameters
file_pathstring
업로드하려는 파일의 로컬 경로입니다.
Returns
입력 키를 포함하는 업로드 결과 객체입니다.
python
result = client.upload("/path/to/video.mp4")
print(result.input_key)METHOD
client.create_highlight_reel(input_keys, video_category, output_length, aspect_ratio)하이라이트 릴 생성
하나 이상의 업로드된 입력 파일에서 하이라이트 릴 작업을 생성합니다.
Parameters
input_keyslist[string]
upload()에 의해 반환된 업로드된 파일 키의 목록입니다. 입력 키의 순서는 출력 비디오의 미디어 순서를 결정합니다.video_categorystring
예:
ball-sports와 같은 비디오 카테고리입니다. podcast, ball-sports, non-ball-sports, beauty-product-demo, wedding, travel, others가 될 수 있습니다. 최상의 결과를 위해서는 귀하의 콘텐츠와 가장 밀접하게 일치하는 카테고리를 지정하십시오. 귀하의 콘텐츠가 어떤 카테고리에도 맞지 않는 경우 others를 사용하십시오.output_lengthinteger
원하는 출력 길이(초)입니다. 출력 길이는 모든 입력 비디오의 총 길이와 같거나 적어야 합니다.
aspect_ratiostring
landscape, portrait, 또는 square와 같은 출력 가로 세로 비율입니다.음악_카테고리string, optional
출력에 적용할 미리 설정된 음악 카테고리입니다. 지원되는 값은
corporate, romantic, sports, kids_and_comedy, ambient_and_nature, horror_and_suspense, documentary, 및 trending_vlogs입니다. 출력의 길이가 음악 길이보다 짧으면 선택한 트랙이 출력에 맞게 반복 재생됩니다.음악 볼륨integer, optional
배경 음악 볼륨은
0에서 100까지입니다. 제공되지 않으면 기본값은 100입니다.원본_오디오_볼륨integer, optional
원본 소스 오디오 볼륨은
0에서 100까지입니다. 제공되지 않으면 기본값은 100입니다.Returns
`job_id`와 상태 정보를 포함하는 작업 객체입니다.
python
job = client.create_highlight_reel(
input_keys=[result.input_key],
video_category="ball-sports",
output_length=30,
aspect_ratio="landscape",
)
print(job.job_id)
print(job.status)METHOD
client.get_job(job_id)작업 가져오기
작업의 현재 상태를 가져옵니다.
Parameters
job_idstring
하이라이트 릴 작업이 생성될 때 반환된 작업 ID입니다.
Returns
최신 상태의 작업 객체입니다.
Response fields
job_idstring
작업 ID입니다.
statusstring
현재 작업 상태이며, 예:
submitted, queued, processing, processed, rendering, 또는 rendered.outputslist[OutputResult]
작업이 완전히 렌더링되고 마지막 하위 작업에서 출력 데이터가 사용 가능한 경우 반환됩니다.
startfloat | null
출력 구간의 시작 시간(가능한 경우).
endfloat | null
출력 구간의 종료 시간(가능한 경우).
thumbnailstring | null
출력물의 썸네일 경로 또는 URL.
durationfloat | null
출력의 지속 시간(초).
fpsfloat | null
출력의 초당 프레임 수.
overlayslist[OverlayResult]
출력에 포함된 정제된 오버레이.
idinteger | null
오버레이 ID.
fileIDstring | null
가능한 경우 관련 파일 ID.
originalFileNamestring | null
가능한 경우 오버레이와 연관된 원래 입력 파일 이름.
from_integer | float | null
오버레이가 시작되는 프레임 오프셋.
contentstring | null
썸네일 경로 또는 사운드 식별자와 같은 오버레이 콘텐츠 값.
durationInFramesinteger | null
프레임 단위의 오버레이 지속 시간.
typestring | null
오버레이 유형(예:
video 또는 sound).srcstring | null
오버레이 미디어의 소스 URL.
videoStartTimeinteger | float | null
해당되는 경우 원본 비디오의 시작 시간.
python
job_status = client.get_job(job.job_id)
print(job_status.status)제이슨
{
"job_id": "abc123",
"status": "렌더링됨",
"outputs": [
{
"start": null,
"end": null,
"thumbnail": "out/...jpg",
"duration": 15.22,
"overlays": [
{
"id": 0,
"fileID": "file_123",
"from": 0,
"content": "https://...",
"durationInFrames": 284,
"type": "video",
"src": "https://...",
"videoStartTime": 5425
},
{
"id": 876361,
"from": 0,
"content": "running-night-393139",
"durationInFrames": 912,
"type": "sound",
"src": "https://..."
}
],
"fps": 59.94
}
]
}METHOD
client.wait_for_job(job_id)작업 대기
하이라이트 릴 작업이 완료 상태에 도달할 때까지 API를 폴링합니다.
Parameters
job_idstring
기다릴 작업 ID입니다.
Returns
최종 완료된 작업 객체입니다.
python
final_job = client.wait_for_job(job.job_id)
print(final_job.status)METHOD
client.render(job_id)출력 렌더링
완료된 하이라이트 릴 작업에 대한 출력 비디오 렌더링을 시작합니다.
Parameters
job_idstring
완료된 하이라이트 릴 작업 ID입니다.
output_indexinteger, optional
OutputResult 목록에서 렌더링할 항목의 인덱스입니다. 기본값은 0입니다. 일반적으로 첫 번째 출력이 가장 좋은 결과입니다.Returns
렌더 상태를 가진 렌더 결과 객체입니다.
python
render_result = client.render(
job_id=job.job_id
)
print(render_result.status)METHOD
client.wait_for_render(job_id)렌더 대기
렌더가 완료되고 출력이 준비될 때까지 폴링합니다.
Parameters
job_idstring
렌더와 관련된 작업 ID입니다.
Returns
최종 렌더 결과 객체입니다.
python
final_render = client.wait_for_render(job.job_id)
print(final_render.output_url)