import requests
import openai
import time
API_KEY = "YOUR_API_KEY"
BASE_URL = "https://api.yelinai.com"
# Step 1: Generate initial video (Async API)
print("Step 1: Generating initial video...")
video_response = requests.post(
f"{BASE_URL}/v1/videos",
headers={
"Content-Type": "application/json",
"Authorization": f"Bearer {API_KEY}"
},
json={
"model": "sora-2",
"prompt": "A cute cartoon character dancing",
"size": "1280x720",
"seconds": "10"
}
)
task = video_response.json()
task_id = task["id"]
print(f"Video task ID: {task_id}")
# Step 2: Wait for video generation to complete
print("Step 2: Waiting for video generation...")
while True:
status_response = requests.get(
f"{BASE_URL}/v1/videos/{task_id}",
headers={"Authorization": f"Bearer {API_KEY}"}
)
status = status_response.json()
if status["status"] == "completed":
print("Video generation complete!")
break
elif status["status"] == "failed":
print("Video generation failed")
exit(1)
time.sleep(10)
# Step 3: Create character from video
print("Step 3: Creating character...")
character_response = requests.post(
f"{BASE_URL}/sora/v1/characters",
headers={
"Content-Type": "application/json",
"Authorization": f"Bearer {API_KEY}"
},
json={
"model": "sora-2-character",
"from_task": task_id,
"timestamps": "1,3"
}
)
character = character_response.json()
username = character["username"]
print(f"Character created! Username: @{username}")
# Step 4: Generate new video with character
print("Step 4: Generating new video with character...")
new_video_response = requests.post(
f"{BASE_URL}/v1/videos",
headers={
"Content-Type": "application/json",
"Authorization": f"Bearer {API_KEY}"
},
json={
"model": "sora-2",
"prompt": f"@{username} performing on stage, audience cheering",
"size": "1280x720",
"seconds": "10"
}
)
new_task = new_video_response.json()
print(f"New video task ID: {new_task['id']}")