怎么把商品信息表(Excel)导入 AI,自动生成对应商品视频?
可以。把商品信息表(Excel)导入 AI/自动化流程,直接生成对应商品视频,常见做法是把数据转成脚本再批量渲染。下面给你一个落地的可执行方案,含两种实现路径和示例代码骨架,方便你据此落地。
一、可选实现路径
- 路径A:全手段自动化(推荐性价比高、可控性强)
- 工具组合:Python + MoviePy(视频拼接与文本渲染)+ (可选) 云/本地 GPU 渲染用于加速
- 优点:完全自控、易扩展,能无缝接入图片、字幕、音乐、语音等元素
- 路径B:低代码/模板驱动渲染
- 通过现成的模板化渲染工具或服务(如 After Effects 的数据驱动模板、CapCut/Descript 等的模板化流程若提供自动化入口)
- 优点:上手快、对非开发人员友好;缺点是灵活性和批量扩展性略低
二、数据与模板设计要点
- Excel 表字段建议(示例)
- ProductID, ProductName, Price, ImagePath, Duration(秒)、Language、Subtitle、Description、Features、CTA
- 视频模板要点
- 画幅:9:16(竖屏,常见手机观看)、分辨率如 1080x1920
- 风格模板:背景色、字体、Logo、转场、音乐风格等固定
- 内容结构:镜头骨架如 Hook + 展示图片 + 文字卖点 + 价格/促销 + CTA
- 数据处理要点
- 图片资源路径要可访问(本地路径或云存储 URL)
- 价格、语言等字段格式化规则(千分位、货币符号、语言变体等)
三、路径A(Python + MoviePy)实现要点
1) 数据准备
- 将 Excel 导出为 Excel 文件或直接用 Pandas 读取
- 读取后把每一行转成一个字典,作为单条视频的输入
2) 基本工作流
- 逐行生成视频的脚本信息(标题、卖点、价格、描述、CTA)
- 使用 MoviePy 将以下元素组合成一个视频:
- 背景色/图片背景
- 商品图片(ImageClip)
- 文本覆盖(TextClip)作为标题、要点、价格等
- 可选:利用 TTS 生成语音旁白,加入 AudioClip
- 转场和简单动画(可用淡入淡出等简单效果)
- 导出单条视频(MP4)
3) 关键点与注意
- 画面尺寸与文本排版要一致,避免字体越界
- 大规模时要做好缓存与错误处理(比如缺少图片时的兜底
- 若需要多语言,数据层只放文本变量,模板层不改动结构
- 方便后续扩展:可把生成逻辑改成函数或类,便于批量调用
四、简易示例(Python + MoviePy,竖屏 1080x1920,单语言单版本)
注:以下代码为骨架示例,需按你们具体字段调整。
依赖
python 3.x
pip install pandas moviepy pillow
示例代码骨架
读取 Excel、逐条生成视频
import pandas as pd
from moviepy.editor import *
import os
1) 读取 Excel
df = pd.read_excel("products.xlsx") # 确保包含 ProductID, ProductName, Price, ImagePath, Duration
2) 处理每条记录并生成视频
output_dir = "output_videos"
os.makedirs(output_dir, exist_ok=True)
def make_video(row):
# 2.1 基本参数
duration = int(row.get('Duration', 15))
w, h = 1080, 1920 # 竖屏
bg_color = (255, 255, 255)
# 2.2 背景与素材
bg = ColorClip(size=(w, h), color=bg_color).set_duration(duration)
# 2.3 商品图片
img_path = row.get('ImagePath', '')
if not os.path.exists(img_path):
img_path = 'default_product.jpg' #兜底图片
img = ImageClip(img_path).resize(width=800).set_duration(duration).set_pos('center')
# 2.4 标题文本
title = str(row.get('ProductName', '商品名称'))
title_clip = TextClip(title, fontsize=60, color='black', font='Arial-Bold').set_duration(duration).set_pos(('center', 100))
# 2.5 价格文本
price = row.get('Price', '')
price_clip = TextClip(f"Price: {price}", fontsize=40, color='red').set_duration(duration).set_pos(('center', 260))
# 2.6 简短描述/卖点(可选)
desc = str(row.get('Subtitle', ''))
desc_clip = TextClip(desc, fontsize=32, color='white', bg_color='black').set_duration(duration).set_pos(('center', 320))
# 2.7 组合
final = CompositeVideoClip([bg, img, title_clip, price_clip, desc_clip]).set_duration(duration)
# 2.8 输出
pid = row.get('ProductID', 'unknown')
out_path = os.path.join(output_dir, f"{pid}.mp4")
final.write_videofile(out_path, fps=25, codec='libx264', audio=False)
for idx, row in df.iterrows():
make_video(row)
print("全部生成完成")
可选:加入语音旁白
使用 AWS Polly/GCP TTS/本地 TTS 将文本合成为音频,再通过 AudioClip 叠加到视频中
代码要点:生成音频文件后,用 AudioFileClip(音频路径) 与视频结合
五、路径B(低代码/模板驱动)简要思路
- 通过一个可导入数据的模板(如 After Effects 的数据驱动模板或 CapCut/Descript 的模板化流程),
- 将 Excel 转换为 JSON,字段对应模板中的文本占位符
- 使用模板的自动化入口批量渲染
- 优点:对非开发人员友好,快速落地;缺点是对大规模定制的灵活性相对较低
六、落地要点与最佳实践
- 数据质量:Excel 字段统一、图片可访问、价格格式规范
- 统一模板:确保所有视频风格一致,方便后续批量扩展
- 错误处理:缺图片、缺字段时的兜底逻辑
- 性能与规模:初期可用少量 SKU 做试点,验证流程与产出质量,再扩展到全量
- 版本与可维护性:把数据模板与渲染模板分离,便于版本控制与回滚
如果你愿意,我可以基于你们实际的 Excel 字段和你们的具体风格模板,给出一个“可直接运行”的完整脚本(包含 Excel 读取、数据校验、文本排版、图片叠层、可选语音旁白、输出路径等),并附上一个 small 规模的测试数据集和输出示例。你可以把你们的字段结构简单描述一下,或发一份样例表,我就给你定制一份可落地的实现方案和代码。
