1仕組みと動作原理
単一のPythonスクリプトがvolcengine-ark SDK経由でByteDanceのSeedance-1.5-proモデルを呼び出し、テキストまたは最初のフレーム画像から動画を生成します。
使用字节跳动 Seedance-1.5-pro 模型 (doubao-seedance-1-5-pro-251215) 根据文本或图片生成视频。
実行前にSDKのインストールが必要です:pip install 'volcengine-python-sdk[ark]'。
pip install 'volcengine-python-sdk[ark]'
認証情報は環境変数からARK_API_KEYまたはSEEDANCE_API_KEYを強制的に読み取ります(デフォルト値なし、未設定時は即座に終了)。
API_KEY = require_env_key("ARK_API_KEY", ["SEEDANCE_API_KEY"])
サービスエンドポイントはVolcano Engine Arkに固定されており、デフォルトモデルはdoubao-seedance-1-5-pro-251215です。
BASE_URL = "https://ark.cn-beijing.volces.com/api/v3"
非同期タスクモデル:createでタスク作成 → getでステータス(queued/running/succeeded/failed)をポーリング → 成功後にダウンロード。
result = client.content_generation.tasks.get(task_id=task_id)
画像からの動画生成は、contentリストにimage_url項目(最初のフレーム画像)を追加することで実現します。
"type": "image_url", "image_url": {"url": image_url}
生成完了後、requestsを使用して動画をローカルファイルにストリーミングダウンロードします。
response = requests.get(url, stream=True, timeout=120)
APIキーおよび設定はリポジトリの共有モジュールenv_utils経由で読み込まれ、システム環境変数と.envの3段階の優先度をサポートします。
from env_utils import load_env, require_env_key
2コア機能
3外部依存関係
| Kind | Dependency / Endpoint |
|---|---|
| api | 火山方舟 Ark API(视频生成后端) |
| package | volcengine-python-sdk[ark](Ark SDK) |
| package | requests(下载生成结果) |
| network | 生成视频/尾帧下载(服务端返回的 URL) |
| reference | Seedance-1.5-pro 提示词指南 |
4推奨統制措置と判定根拠
- scripts/: ローカルスクリプトまたはコマンドの実行: python3 scripts/generate_video.py "<prompt>" --wait -o out.mp4(SKILに基づくエージェントの動作
- 网络端点: 外部ネットワークアクセスの宣言: Volcano Engine Ark API https://ark.cn-beijing.volces.com/api/v3(動画生成タスクの作成/確認)
- 本地工作目录: ファイルの読み書きと成果物の出力: -o で指定されたパスへの生成動画ダウンロード(デフォルトは output.mp4)
5二重目の独立検証
- [ok] SDK 调用与模型 — SKILL.md description 与 generate_video.py 的 Ark 客户端、默认模型 ID 一致。
- [ok] 凭证强制读取 — generate_video.py 模块级 require_env_key 调用与 SKILL.md 的 ARK_API_KEY/SEEDANCE_API_KEY 说明互证。
- [ok] 固定端点 — BASE_URL 与风险扫描 generate_video.py:40 命中同值,且 SKILL.md Python 示例 base_url 一致。
- [ok] 异步任务与轮询 — create_video_task/get_task_status/wait_for_video 三个函数正文完整展开,状态分支 queued/running/succeeded/failed 与 SKILL.md 一致。
- [ok] 下载行为 — download_file 用 requests 流式写盘;风险扫描仅两点写盘命中(open/write),无其它隐藏落盘。
- [ok] 跨 skill 共享模块 — 脚本 import env_utils 并把 ../common 加入 sys.path,属仓库共享模块,非本 skill 独有依赖。
- [ok] 是否有绕过/降级 — 风险扫描「危险旗标/沙箱」均无命中;全文无 AutomationControlled、无 TLS 关闭,判橙非红据成立。
- [ok] 是否存在本地命令执行面 — 「执行外部程序」无命中;脚本不 spawn 子进程,无可控命令拼接。
6結論
f9f1f149e8b1bcd1…