import requests, time
API_KEY, BASE = "YOUR_API_KEY", "https://apis.viggle.ai"
headers = {"Authorization": f"Bearer {API_KEY}"}
# Create render job
job = requests.post(f"{BASE}/api/render", headers=headers, data={
"character_id": "char_xxx",
"scene_id": "scene_xxx",
}).json()
# Poll until complete (no auth required)
while True:
status = requests.get(f"{BASE}/api/render/{job['job_id']}").json()
print(f"Status: {status['status']} ({status.get('progress_pct', 0)}%)")
if status["status"] == "complete":
print(f"Video: {status['cdn_url']}")
break
elif status["status"] == "failed":
raise Exception(f"{status.get('error_code')}: {status.get('error_message')}")
time.sleep(3)
# Download
video = requests.get(status["cdn_url"])
open("output.mp4", "wb").write(video.content)