用命令行脚本可自动完成跃问AI视频生成全流程:先获取API密钥并安装依赖,再通过requests提交提示词、轮询任务状态,最后下载MP4文件;支持批量处理、防抖延迟、进度条显示及安全文件命名。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要一次性生成几十条AI视频,又不想反复点击网页界面、手动下载每一条结果——用命令行脚本就能让跃问AI自动完成从提交提示词到保存MP4文件的全部流程。
准备环境与获取API密钥
打开跃问AI官网,登录账号后进入「开发者中心」→「API管理」→「创建新密钥」,复制生成的密钥字符串。该密钥具有调用视频生成接口的权限,【请勿在公开代码或Git仓库中硬编码此密钥】。
安装Python 3.9及以上版本,执行 pip install requests tqdm。
构造基础生成请求
新建文本文件,命名为 generate_video.py,写入以下内容:
import requests
import json
api_url = "https://api.yuewen.ai/v1/video/generate"
headers = {
"Authorization": "Bearer YOUR_API_KEY_HERE",
"Content-Type": "application/json"
}
payload = {
"prompt": "一只橘猫戴着墨镜骑摩托车,赛博朋克风格",
"aspect_ratio": "16:9",
"duration": 4
}
response = requests.post(api_url, headers=headers, json=payload)
print(response.json())
把 YOUR_API_KEY_HERE 替换成你刚复制的密钥,保存后运行 python generate_video.py。若返回包含 task_id 的 JSON,说明请求已成功提交。
轮询任务状态并自动下载
跃问AI的视频生成是异步过程:提交后只返回任务ID,需定时查询状态,待 status 变为 completed 才能下载。以下脚本封装了完整轮询逻辑:
方法一:使用 requests + time.sleep 实现最小依赖轮询
在 generate_video.py 底部追加:
import time
task_id = response.json().get("task_id")
if not task_id:
raise ValueError("未获取到task_id")
status_url = f"https://api.yuewen.ai/v1/video/status/{task_id}"
for i in range(60):
status_resp = requests.get(status_url, headers=headers)
status_data = status_resp.json()
if status_data.get("status") == "completed":
video_url = status_data.get("video_url")
if video_url:
r = requests.get(video_url)
with open(f"output_{task_id}.mp4", "wb") as f:
f.write(r.content)
print("视频已保存")
exit(0)
time.sleep(5)
这段代码每5秒查一次状态,最多等5分钟(60×5秒)。如果超时仍为 processing 或 failed,脚本会自然退出,不报错也不重试——避免无限等待阻塞批量流程。
批量生成多条视频
第一步:准备提示词列表
✅ 五大心智模型(M1-M5)全保留 ✅ 四层建筑法(L1-L4)完整表格化 ✅ @多模态绑定语法优先级表 ✅ 20+ 场景诊断表(问题/原因/修复/边界) ✅ 八大行业模板(都配了完整提示词示例) ✅ 诚实能力边界表 ✅ Agent 触发关键词 + 标准入参/出参 ✅ 表达 DNA 固定风格
新建 prompts.txt,每行一条提示词,例如:
一只柴犬在雪山顶上仰天长啸,8K高清
复古胶片风,东京街头雨夜,霓虹灯倒映水洼
水墨动画,竹林深处老僧扫落叶,留白构图
第二步:修改脚本主循环
将原脚本中固定 prompt 替换为逐行读取:
with open("prompts.txt", "r", encoding="utf-8") as f:
prompts = [line.strip() for line in f if line.strip()]
for idx, prompt in enumerate(prompts, 1):
print(f"正在提交第{idx}条:{prompt[:30]}...")
payload["prompt"] = prompt
response = requests.post(api_url, headers=headers, json=payload)
task_id = response.json().get("task_id")
if not task_id:
print(f"第{idx}条提交失败")
continue
# 接入上一步的轮询+下载逻辑(此处省略重复代码)
第三步:添加防抖延迟
在 for 循环末尾插入 time.sleep(2),避免连续请求触发频率限制。跃问AI接口默认限流为3次/秒,【不加延迟可能导致后续请求返回429错误】。
优化下载体验:添加进度条与文件命名
方法二:用 tqdm 替代 print,让下载过程可视化
替换原下载段落为:
from tqdm import tqdm
...
r = requests.get(video_url, stream=True)
total_size = int(r.headers.get('content-length', 0))
with open(f"video_{idx:03d}_{prompt[:20].replace('/', '_')}.mp4", "wb") as f:
for data in tqdm(r.iter_content(1024), total=total_size//1024, unit="KB", desc=f"下载{idx}"):
f.write(data)
文件名中 idx:03d 确保按顺序编号(001、002…),prompt[:20].replace('/', '_') 截取前20字符并替换斜杠,防止Windows系统因非法字符报错。

















