适合做什么
这是一条“在线工具生成型 AI 提示词(Prompts)”:让 AI 直接产出一个可运行/可部署的「视频字幕提取与 SRT 校对工作台」。它面向内容运营、课程剪辑、字幕组与独立开发者:把视频/音频上传后自动转写,生成 SRT/VTT,并提供在线校对、分段合并、时间轴微调、导出与简单质检。
交付物(你将拿到什么)
可直接运行的完整项目源码(前端+后端)、清晰的文件树、安装与运行命令、Docker 一键部署、可选 Vercel/Render 部署说明、最小可用的 API 设计、以及可执行的测试用例或 QA checklist(覆盖上传、转写、编辑、导出、错误处理与性能边界)。
功能清单(建议实现)
上传视频/音频(限制类型与大小);服务端抽取音频;转写生成分段文本与时间戳;一键导出 SRT/VTT;提供字幕编辑器(段落合并/拆分、时间轴拖拽微调、批量替换、标点与中英混排处理);支持“校对模式”(对低置信度片段高亮);提供本地/内存存储与可选持久化;导出前进行基础校验(时间不重叠、时长不为负、段落排序)。
AI 提示词(Prompts)
你是一名资深全栈工程师 + 产品经理。请从零生成一个可运行/可部署的在线工具:
【工具类别】视频处理
【工具主题】视频字幕提取与 SRT 校对工作台
【硬性要求】
1) 交付物必须包含:
- 完整项目代码(前后端可同仓库)
- 文件树(tree 形式)
- 本地运行命令(含 Node 版本建议、依赖安装、启动命令)
- 部署说明:Docker(必须)+(可选)Vercel/Render/Fly.io
- 自动化测试用例或 QA checklist(至少 20 条,按功能模块分组)
2) 必须可在本地一键启动,打开浏览器即可使用;提供清晰的 README。
3) 禁止生成任何图片/海报/渲染图/插画相关能力;只做“字幕提取、转写、编辑、导出”。
4) 需要考虑隐私与合规:默认不把用户媒体文件上传到第三方;如使用第三方模型/接口,必须提供开关与明确提示,并给出纯本地替代路径(例如使用本地转写模型或留空让用户自行接入)。
【推荐技术栈(你可调整但要说明理由)】
- 前端:Next.js (App Router) + Tailwind
- 后端:Next.js Route Handlers 或 Express
- 媒体处理:FFmpeg(服务端)
- 转写:优先给出本地方案(如 whisper.cpp / faster-whisper),若你无法直接运行请提供“接口适配层 + Mock 模式”,保证项目仍可跑通
- 数据:SQLite(可选)或仅内存存储(需说明限制)
【必须实现的产品流程】
A. 上传页:选择媒体文件 -> 展示元信息 -> 开始转写
B. 进度页:显示抽取音频/分段转写进度,失败可重试
C. 编辑页:
- 左侧段落列表(时间戳、文本、置信度)
- 右侧编辑器(支持合并/拆分、批量替换、时间轴微调)
- 一键校对:标点修复、空格与中英混排规则、敏感词标记(可选)
D. 导出页:导出 SRT 与 VTT,下载文件名包含项目名与时间
【输出格式(必须严格按顺序)】
1) 项目概述(1 段)
2) 功能清单(列表)
3) 文件树(tree)
4) 关键实现说明(分点)
5) 完整代码(按文件分块输出,包含所有必要文件)
6) 本地运行命令
7) Docker 部署(Dockerfile + docker-compose.yml + 启动说明)
8) 可选云部署说明
9) 测试用例或 QA checklist(>=20 条)
10) 已知限制与后续增强
请直接开始输出,不要省略任何文件;如果某些能力无法在无外部依赖的情况下实现,请提供可运行的 Mock/占位实现,并在 README 中写清如何替换为真实实现。
实现要点(给开发者的提示)
建议把转写能力做成可插拔 Provider:LocalWhisperProvider(本地)/ApiProvider(第三方)/MockProvider(默认可运行)。字幕编辑器需要对 SRT/VTT 做解析与序列化,并在导出前做时间戳排序与重叠检测。对大文件要做尺寸限制与分片上传(可选),同时提供后台任务队列或简单的轮询进度接口。
QA 检查清单(发布前自测方向)
上传格式与大小限制是否生效;转写失败是否有明确错误与重试;编辑器合并/拆分是否保持时间连续;导出 SRT/VTT 是否可被播放器识别;中文标点与中英空格规则是否可一键修复;极端情况(空字幕、仅音乐、静音、超长视频)是否给出提示;隐私提示与日志脱敏是否到位。