import os
import time
import requests
API_KEY = os.environ["API_KEY"]
BASE_URL = "https://api.yelinai.com/v1/video/generations"
headers = {
"Authorization": f"Bearer {API_KEY}",
}
files = {
"model": (None, "seedance-2.0"),
"prompt": (None, "@IMG_1 中的人物在海边散步"),
"duration": (None, "5"),
"aspect_ratio": (None, "16:9"),
"files": open("/path/to/image.jpg", "rb"),
}
create_resp = requests.post(BASE_URL, headers=headers, files=files, timeout=60)
create_resp.raise_for_status()
task_id = create_resp.json()["task_id"]
while True:
query_resp = requests.get(f"{BASE_URL}/{task_id}", headers=headers, timeout=60)
query_resp.raise_for_status()
task = query_resp.json()
status = task.get("status")
if status == "completed":
video_url = task.get("video_url")
video_resp = requests.get(video_url, timeout=120)
video_resp.raise_for_status()
with open(f"{task_id}.mp4", "wb") as f:
f.write(video_resp.content)
break
if status == "failed":
raise RuntimeError(task.get("error") or task)
time.sleep(20)