import requests
# ==========================================
# ⚠️ 请务必先去重置 Key,然后填入新的!
# ==========================================
API_KEY =
BASE_URL = "https://xxxxx/v1/videos"
def generate_video_fixed():
headers = {
"Authorization": f"Bearer {API_KEY}"
# 注意:不要自己手动写 Content-Type,让 requests 库根据 files 参数自动生成
}
# 1. 参数准备
# 对比 Curl 成功的参数:
# model="sora-2"
# size="" (Curl里是空的,我们先试着传个标准值,不行再改空)
# seconds="10"
payload = {
"model": "sora-2",
"prompt": "<环境音>低沉的盟誓声/金属摩擦声</环境音>镜头从前一镜司马照滴落液体的左手向上摇摄(tilt up),定格在他举手起誓的面部特写,眼神决绝。@oauigzny.nightwarv 司马照营帐 内,[00:02]@ej7bc290z.silversp 司马照 沉声起誓:“我司马照指天起誓,大业若成,必不负诸位,共享富贵!” 话音刚落,镜头切换至全景,众将领纷纷拔出佩刀划破手掌,动作果决,[00:09]齐声低吼:“共享富贵,虽死无悔!” ",
"size": "720x1280",
"seconds": 15
}
# 2. 核心修正点!!!
# 就算不传图片,也要给一个空的 files 对象
# 这会强制 requests 库把 Content-Type 切换成 multipart/form-data
# 格式:'字段名': (文件名, 文件内容) -> 这里我们给个假的
files = {
'placeholder': (None, '')
}
print("🚀 正在以 multipart/form-data 格式提交任务...")
try:
# files 参数必须传,哪怕是假的
response = requests.post(BASE_URL, headers=headers, data=payload, files=files)
print(f"📡 状态码: {response.status_code}")
if response.status_code == 200:
print("✅ 提交成功!")
print(response.json())
else:
print("❌ 提交失败,服务器返回:")
print(response.text)
except Exception as e:
print(f"出错: {e}")
# 运行
generate_video_fixed()