每上一个新品就要配一条展示视频,手动用各家 AI 视频网页端一条条生成效率太低。这篇分享一个用 API 批量出片的方案——从商品文案自动生成视频,适合做跨境电商或带货短视频的朋友参考。

一、思路

电商博主的痛点很直接:每周上新十几个 SKU,每个要一条 15 秒展示视频发 TikTok Shop 或独立站。手动操作单条就要 15 分钟。

自动化的思路分两步:

  1. LLM 把中文商品描述转成英文视频 prompt(视频模型对英文效果更好)
  2. 视频模型根据 prompt 生成视频

我用的 ai.tikhub.io,它同时提供 Chat 端点和视频端点(Kling/Veo),两步 API 调用走同一个入口,代码写起来比较简洁。

二、代码实现

Step 1:商品描述 → 视频 prompt

import os, requests

BASE_URL = os.getenv("AI_BASE_URL", "https://ai.tikhub.io")
API_KEY = os.getenv("AI_API_KEY")
HEADERS = {"Content-Type": "application/json", "Authorization": f"Bearer {API_KEY}"}

def product_to_video_prompt(product_desc: str) -> str:
    """用 LLM 把商品文案转成视频生成 prompt"""
    resp = requests.post(
        f"{BASE_URL}/v1/chat/completions",
        headers=HEADERS,
        json={
            "model": "gpt-4o",
            "messages": [
                {"role": "system", "content":
                    "你是电商视频创意专家。根据商品描述,生成一条 15 秒产品展示视频的英文 prompt。"
                    "包含:场景背景、产品出场方式、镜头运动、光线色调。风格干净高级。只输出英文。"},
                {"role": "user", "content": product_desc}
            ],
            "max_tokens": 300
        }, timeout=30
    )
    return resp.json()["choices"][0]["message"]["content"]

Step 2:提交视频生成 + 等待下载

import time

def generate_video(prompt: str, model: str = "kling-v3", save_path: str = "out.mp4"):
    """提交视频任务 → 轮询 → 下载"""
    # 提交
    resp = requests.post(
        f"{BASE_URL}/v1/videos", headers=HEADERS,
        json={"model": model, "prompt": prompt}, timeout=30
    )
    task_id = resp.json().get("id") or resp.json().get("task_id")

    # 轮询等完成
    for _ in range(40):  # 最多等 10 分钟
        data = requests.get(f"{BASE_URL}/v1/videos/{task_id}", headers=HEADERS).json()
        if data.get("status") == "completed":
            video_url = data.get("video_url") or data.get("url")
            with open(save_path, "wb") as f:
                for chunk in requests.get(video_url, stream=True).iter_content(8192):
                    f.write(chunk)
            return save_path
        if data.get("status") == "failed":
            raise RuntimeError(f"失败: {data.get('error')}")
        time.sleep(15)

    raise TimeoutError("生成超时")

串起来:批量处理

import csv, os
from concurrent.futures import ThreadPoolExecutor, as_completed

def process_product(sku, description, output_dir, model="kling-v3"):
    print(f"[{sku}] 生成 prompt → 提交 {model}...")
    prompt = product_to_video_prompt(description)
    path = generate_video(prompt, model=model, save_path=f"{output_dir}/{sku}.mp4")
    print(f"[{sku}] 完成 → {path}")
    return {"sku": sku, "prompt": prompt, "path": path}

# 读取商品 CSV,并发生成
os.makedirs("output", exist_ok=True)
with open("products.csv", encoding="utf-8") as f:
    products = list(csv.DictReader(f))

with ThreadPoolExecutor(max_workers=3) as pool:
    futures = {pool.submit(process_product, p["sku"], p["description"], "output"): p for p in products}
    for f in as_completed(futures):
        try: f.result()
        except Exception as e: print(f"失败: {e}")

三、运行效果

准备 products.csv

sku,description
SKU001,极简北欧风落地灯,黑色金属灯杆,暖光LED
SKU002,便携手冲咖啡套装,含滤杯手冲壶温度计
SKU003,无线降噪耳机,头戴式,40小时续航,银色
export AI_BASE_URL="https://ai.tikhub.io" && export AI_API_KEY="你的Key"
python run.py
[SKU001] 生成 prompt → 提交 kling-v3...
[SKU002] 生成 prompt → 提交 kling-v3...
[SKU001] 完成 → output/SKU001.mp4
[SKU003] 完成 → output/SKU003.mp4
[SKU002] 完成 → output/SKU002.mp4

3 个商品,从文案到视频全自动,总共 5 分钟左右。

四、Kling vs Veo 怎么选

Kling v3: 速度快(2–3 分钟/条),产品特写和转场效果不错,适合日常批量出片。

Veo 3.1: 金属、玻璃、织物的材质感更真实,光影更有电影感,但慢(5 分钟+)。适合主推款。

我们的做法:常规 SKU 用 Kling 快速出量,主推款换成 veo-3.1-generate-001 精出——改一个参数的事。

五、几个小 tips

prompt 一定要用英文且写详细。 中文直接当 prompt 效果差很多,所以才加了 LLM 转写这步。而且不能只说"拍一个灯",要明确场景、镜头、光线。

并发控制在 3–4。 视频生成比 Chat 吃资源得多,太多会排队很久。


参考资源:

Logo

电商企业物流数字化转型必备!快递鸟 API 接口,72 小时快速完成物流系统集成。全流程实战1V1指导,营造开放的API技术生态圈。

更多推荐