剪辑神器➕1-AutoClip智能视频切片器

🎬 AutoClip是基于AI的智能视频切片和合集推荐系统,支持从B站视频自动下载、字幕提取、智能切片和合集生成。
官网:https://zhouxiaoka.github.io/autoclip_intro/
开源:https://github.com/zhouxiaoka/autoclip_mvp
✨ 功能特性
- 🔥 智能视频切片:基于AI分析视频内容,自动生成高质量切片
- 📺 B站视频下载:支持B站视频自动下载和字幕提取
- 🎯 智能合集推荐:AI自动分析切片内容,推荐相关合集
- 🎨 手动合集编辑:支持拖拽排序、添加/删除切片
- 📦 一键打包下载:支持所有切片和合集的一键打包下载
- 🌐 现代化Web界面:React + TypeScript + Ant Design
- ⚡ 实时处理状态:实时显示处理进度和日志
环境要求
- Python 3.8+
- Node.js 16+
- 通义千问API密钥(用于AI分析)
安装步骤
克隆项目
git clone git@github.com:zhouxiaoka/autoclip_mvp.git
cd autoclip_mvp
提示:截止发文时间,项目中遗忘了uploads文件夹,你需要自行创建该文件夹或代码修改,位置如下图,创建:
mkdir -p uploads
安装后端依赖
# 创建虚拟环境
python3 -m venv venv
source venv/bin/activate # Linux/Mac
# 或 venv\Scripts\activate # Windows
# 安装依赖
pip install -r requirements.txt
安装前端依赖
cd frontend
npm install
cd ..
配置API密钥
# 复制示例配置文件
cp data/settings.example.json data/settings.json
# 编辑配置文件,填入你的API密钥
{
"dashscope_api_key": "你的通义千问API密钥",
"model_name": "qwen-plus",
"chunk_size": 5000,
"min_score_threshold": 0.7,
"max_clips_per_collection": 5,
"default_browser": "chrome"
}
启动服务
方式一:使用启动脚本(推荐)
chmod +x start_dev.sh
./start_dev.sh
方式二:手动启动
# 启动后端服务
source venv/bin/activate
python backend_server.py
# 新开终端,启动前端服务
cd frontend
npm run dev
方式三:命令行工具
# 处理本地视频文件
python main.py --video input.mp4 --srt input.srt --project-name "我的项目"
# 处理现有项目
python main.py --project-id <project_id>
# 列出所有项目
python main.py --list-projects
访问地址
- 🌐 前端界面: http://localhost:3000
- 🔌 后端API: http://localhost:8000
- 📚 API文档: http://localhost:8000/docs
你也可以在后台配置相关参数
切片处理进程
效果预览
其它
📁 项目结构
autoclip_mvp/
├── backend_server.py # FastAPI后端服务
├── main.py # 命令行入口
├── start_dev.sh # 开发环境启动脚本
├── requirements.txt # Python依赖
├── .gitignore # Git忽略文件
├── README.md # 项目文档
│
├── frontend/ # React前端
│ ├── src/
│ │ ├── components/ # React组件
│ │ ├── pages/ # 页面组件
│ │ ├── services/ # API服务
│ │ ├── store/ # 状态管理
│ │ └── hooks/ # 自定义Hooks
│ ├── package.json # 前端依赖
│ └── vite.config.ts # Vite配置
│
├── src/ # 核心业务逻辑
│ ├── main.py # 主处理逻辑
│ ├── config.py # 配置管理
│ ├── api.py # API接口
│ ├── pipeline/ # 处理流水线
│ │ ├── step1_outline.py # 大纲提取
│ │ ├── step2_timeline.py # 时间轴生成
│ │ ├── step3_scoring.py # 评分计算
│ │ ├── step4_title.py # 标题生成
│ │ ├── step5_clustering.py # 聚类分析
│ │ └── step6_video.py # 视频生成
│ ├── utils/ # 工具函数
│ │ ├── llm_client.py # AI客户端
│ │ ├── video_processor.py # 视频处理
│ │ ├── text_processor.py # 文本处理
│ │ ├── project_manager.py # 项目管理
│ │ ├── error_handler.py # 错误处理
│ │ └── bilibili_downloader.py # B站下载
│ └── upload/ # 文件上传
│ └── upload_manager.py
│
├── data/ # 数据文件
│ ├── projects.json # 项目数据
│ └── settings.json # 配置文件
│
├── uploads/ # 上传文件存储
│ ├── tmp/ # 临时下载文件
│ └── {project_id}/ # 项目文件
│ ├── input/ # 原始文件
│ └── output/ # 处理结果
│ ├── clips/ # 切片视频
│ └── collections/ # 合集视频
│
├── prompt/ # AI提示词模板
│ ├── business/ # 商业财经
│ ├── knowledge/ # 知识科普
│ ├── entertainment/ # 娱乐内容
│ └── ...
│
└── tests/ # 测试文件
├── test_config.py
└── test_error_handler.py
🔧 配置说明
API密钥配置
在 data/settings.json
中配置你的通义千问API密钥:
{
"dashscope_api_key": "your-api-key-here",
"model_name": "qwen-plus",
"chunk_size": 5000,
"min_score_threshold": 0.7,
"max_clips_per_collection": 5,
"default_browser": "chrome"
}
浏览器配置
支持Chrome、Firefox、Safari等浏览器用于B站视频下载:
{
"default_browser": "chrome"
}
📖 使用指南
1. 上传本地视频
- 访问 http://localhost:3000
- 点击”上传视频”按钮
- 选择视频文件和字幕文件(必须)
- 填写项目名称和分类
- 点击”开始处理”
2. 下载B站视频
- 在首页点击”B站视频下载”
- 输入B站视频链接(必须是有字幕的视频)
- 选择浏览器(用于获取登录状态)
- 点击”开始下载”
3. 编辑合集
- 进入项目详情页面
- 点击合集卡片进入编辑模式
- 拖拽切片调整顺序
- 添加或删除切片
- 保存更改
4. 下载项目
- 在项目卡片上点击下载按钮
- 自动打包所有切片和合集
- 下载完整的zip文件
🛠️ 开发指南
后端开发
# 启动开发服务器(支持热重载)
python backend_server.py
# 运行测试
pytest tests/
前端开发
cd frontend
npm run dev # 开发模式
npm run build # 生产构建
npm run lint # 代码检查
添加新的视频分类
- 在
prompt/
目录下创建新的分类文件夹 - 添加对应的提示词模板文件
- 在前端
src/services/api.ts
中添加分类选项
其它问题
如果你下载仓库文件并运行后发现已多了一个下载的案例,但不能查看,需要及时清除失效的视频避免终端持续报404