# video-craft **Repository Path**: lsongiu/video-craft ## Basic Information - **Project Name**: video-craft - **Description**: 一键生成并发布视频的工具 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-31 - **Last Updated**: 2026-06-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # VideoCraft - AI短视频批量生成工具 一款基于 Spring Boot 的 AI 短视频自动生成工具,支持从文案生成到视频合成的全流程自动化。 ## ✨ 核心功能 | 功能 | 说明 | |------|------| | 🎬 **AI视频生成** | LLM生成文案 → TTS语音合成 → 素材获取 → 视频合成 | | 🔄 **批量混剪** | 多片段组合,批量生成大量不重复短视频 | | 🎯 **字幕生成** | 自动生成 SRT 字幕,支持样式自定义 | | 📦 **视频管理** | 列表查看、下载、清理已生成视频 | | 📤 **自动发布** | Selenium 自动化发布到抖音/快手/小红书 | ## 🛠️ 技术栈 | 类别 | 技术 | |------|------| | 后端 | Java 17 + Spring Boot 2.7 | | 前端 | Thymeleaf + Bootstrap 5 | | 视频处理 | FFmpeg | | HTTP客户端 | WebClient | | 自动化 | Selenium + Chromium | ## 🚀 快速开始 ### 方式一:Docker 一键启动(推荐) ```bash # 1. 克隆项目 git clone https://gitee.com/lsongiu/video-craft.git cd video-craft # 2. 配置环境变量(可选) export OPENAI_API_KEY=*** export DEEPSEEK_API_KEY=*** export XUNFEI_APP_ID=your-app-id export XUNFEI_API_KEY=*** export XUNFEI_API_SECRET=*** # 3. 一键启动 ./start.sh start # 4. 访问服务 浏览器打开: http://localhost:8080 ``` ### 方式二:手动构建 ```bash # 环境要求: Java 17+, Maven 3.8+, FFmpeg # 安装 FFmpeg sudo apt install ffmpeg # Ubuntu/Debian brew install ffmpeg # macOS # 运行项目 mvn spring-boot:run ``` ### 启动脚本命令 ```bash ./start.sh start # 启动服务 ./start.sh stop # 停止服务 ./start.sh restart # 重启服务 ./start.sh logs # 查看日志 ./start.sh status # 查看状态 ./start.sh build # 重新构建镜像 ./start.sh clean # 清理所有数据 ``` ## 📁 项目结构 ``` video-craft/ ├── start.sh # 一键启动脚本 ├── docker-compose.yml # Docker 编排配置 ├── Dockerfile # 完整版镜像(含 Chromium) ├── Dockerfile.lite # 轻量版镜像(仅视频生成) ├── pom.xml └── src/main/ ├── java/com/videocraft/ │ ├── controller/ # Web 接口 │ ├── service/ │ │ ├── llm/ # LLM 服务 │ │ ├── audio/ # TTS 服务 │ │ ├── video/ # FFmpeg 处理 │ │ ├── resource/ # 素材获取 │ │ └── publisher/ # 自动发布 │ └── model/ └── resources/ ├── application.yml └── templates/ # 页面模板 ``` ## ⚙️ 配置说明 ### 环境变量 | 变量 | 说明 | 必需 | |------|------|------| | `OPENAI_API_KEY` | OpenAI API Key | LLM | | `DEEPSEEK_API_KEY` | DeepSeek API Key | LLM | | `AZURE_SPEECH_KEY` | Azure 语音服务 Key | TTS | | `TENCENT_SECRET_ID` | 腾讯云 SecretId | TTS | | `TENCENT_SECRET_KEY` | 腾讯云 SecretKey | TTS | | `XUNFEI_APP_ID` | 讯飞 AppID | TTS | | `XUNFEI_API_KEY` | 讯飞 API Key | TTS | | `XUNFEI_API_SECRET` | 讯飞 API Secret | TTS | | `PEXELS_API_KEY` | Pexels API Key | 素材 | ### LLM 服务(任选一个) | 服务 | 环境变量 | 说明 | |------|----------|------| | OpenAI | `OPENAI_API_KEY` | GPT-4 / GPT-3.5 | | DeepSeek | `DEEPSEEK_API_KEY` | 国产,性价比高 | | Ollama | 无需配置 | 本地运行,免费 | ### TTS 服务(任选一个) | 服务 | 音色特点 | 配置项 | |------|----------|--------| | Azure | 自然流畅,多音色 | `AZURE_SPEECH_KEY` | | 腾讯云 | 中文效果好 | `TENCENT_SECRET_*` | | 讯飞 | 中文效果好 | `XUNFEI_*` | ## 📖 使用指南 ### Web 界面 1. **首页** - 功能介绍和使用流程 2. **视频生成** - 输入主题,配置参数,一键生成 3. **配置管理** - 配置 LLM、TTS、素材源 4. **发布管理** - 管理已生成视频 ### API 接口 ```bash # 生成视频 POST /api/video/generate { "topic": "如何提高工作效率", "llmProvider": "DeepSeek", "ttsProvider": "Xunfei", "voice": "xiaoyan", "enableSubtitle": true } # 视频管理 GET /api/video/list # 视频列表 GET /api/video/download/{id} # 下载视频 DELETE /api/video/{id} # 删除视频 POST /api/video/cleanup # 清理临时文件 ``` ## 🐳 Docker 部署详解 ### 镜像版本 | 版本 | Dockerfile | 大小 | 功能 | |------|------------|------|------| | 完整版 | `Dockerfile` | ~500MB | 视频生成 + 自动发布 | | 轻量版 | `Dockerfile.lite` | ~300MB | 仅视频生成 | ### 使用轻量版 ```bash # 启动轻量版(不含 Chromium) docker-compose --profile lite up -d video-craft-lite ``` ### Dockerfile 说明 Dockerfile 使用**多阶段构建**,自动完成: 1. 第一阶段:Maven 编译打包 2. 第二阶段:只复制 JAR 到精简 JRE 镜像 **本地无需安装 Java/Maven**,只需 Docker 即可。 ``` 源码 ──► Maven构建 ──► JAR ──► 运行镜像 │ └── 只包含运行必需文件 ``` ## 🎯 支持的服务 ### LLM 文案生成 | 服务 | 状态 | 说明 | |------|------|------| | OpenAI | ✅ | GPT 系列 | | DeepSeek | ✅ | 国产大模型 | | Ollama | ✅ | 本地运行 | ### TTS 语音合成 | 服务 | 状态 | 说明 | |------|------|------| | Azure Speech | ✅ | 微软语音服务 | | 腾讯云 TTS | ✅ | 腾讯语音合成 | | 讯飞 TTS | ✅ | 科大讯飞 | ### 素材资源 | 服务 | 状态 | 说明 | |------|------|------| | Pexels | ✅ | 免费视频素材 | | Pixabay | 🚧 | 开发中 | ## 📝 开发计划 - [ ] Pixabay 素材源 - [ ] 批量混剪功能 - [ ] WebSocket 实时进度 - [ ] 视频模板系统 - [ ] 更多 TTS 服务商 ## 📄 License MIT License