AutoClip – AI 驱动的视频剪辑工具:功能、使用与开发指南
在当今数字化的时代,视频内容的创作和传播变得越来越重要。无论是个人创作者还是专业的媒体机构,都需要高效、智能的视频剪辑工具来提升工作效率和创作质量。AutoClip 就是这样一款基于人工智能的视频剪辑和集合推荐系统,它能够支持自动下载哔哩哔哩视频、提取字幕、进行智能切片以及生成集合。接下来,我们将详细介绍 AutoClip 的各项功能、如何快速上手使用、项目结构、配置方法、用户指南、开发指南以及常见问题解答。
AutoClip 简介
AutoClip 是一款智能化的视频剪辑和集合推荐系统,它利用人工智能技术对视频内容进行分析,实现高质量的自动剪辑。同时,它还支持自动下载哔哩哔哩视频并提取字幕,通过人工智能自动分析切片内容并推荐相关集合。此外,用户还可以进行手动集合编辑,支持拖放排序、添加或删除切片,并且可以一键打包下载所有切片和集合。该工具采用了现代的 Web 界面,使用 React + TypeScript + Ant Design 构建,能够实时显示处理进度和日志。
AutoClip 的功能特点
智能视频剪辑
AutoClip 借助人工智能技术对视频内容进行分析,从而实现高质量的自动剪辑。这意味着用户无需手动逐帧剪辑视频,系统会自动识别视频中的关键内容,进行智能切片,大大节省了剪辑时间和精力。
哔哩哔哩视频下载
该工具支持自动下载哔哩哔哩视频,并能提取视频的字幕。用户只需提供哔哩哔哩视频的链接,系统就会自动完成下载和字幕提取的工作,方便用户获取所需的视频素材。
智能集合推荐
AutoClip 能够通过人工智能自动分析切片内容,并推荐相关的集合。这有助于用户快速整理和分类视频切片,提高视频内容的组织效率。
手动集合编辑
用户可以对集合进行手动编辑,支持拖放排序、添加或删除切片。这种灵活的编辑方式让用户能够根据自己的需求对视频集合进行个性化的调整。
一键打包下载
支持一键打包下载所有切片和集合,用户无需逐个下载视频切片,系统会自动将它们打包成一个文件,方便用户保存和分享。
现代 Web 界面
采用 React + TypeScript + Ant Design 构建的现代 Web 界面,界面美观、操作便捷,提供了良好的用户体验。
实时处理状态
能够实时显示处理进度和日志,用户可以随时了解视频处理的状态,确保整个过程的透明度和可控性。
快速开始
系统要求
在使用 AutoClip 之前,需要满足以下系统要求:
-
Python 3.8 或更高版本 -
Node.js 16 或更高版本 -
DashScope API 密钥(用于人工智能分析)
安装步骤
克隆项目
首先,需要从 GitHub 上克隆 AutoClip 项目到本地。打开终端,执行以下命令:
git clone git@github.com:zhouxiaoka/autoclip_mvp.git
cd autoclip_mvp
安装后端依赖
为了避免与其他 Python 项目的依赖冲突,我们建议使用虚拟环境。在终端中执行以下命令创建并激活虚拟环境:
# 创建虚拟环境
python3 -m venv venv
source venv/bin/activate # Linux/Mac
# 或者 venv\Scripts\activate # Windows
# 安装依赖
pip install -r requirements.txt
安装前端依赖
进入前端目录,使用 npm 安装前端依赖:
cd frontend
npm install
cd ..
配置 API 密钥
复制示例配置文件并进行编辑,添加你的 DashScope API 密钥:
# 复制示例配置文件
cp data/settings.example.json data/settings.json
# 编辑配置文件并添加你的 API 密钥
{
"dashscope_api_key": "your-dashscope-api-key",
"model_name": "qwen-plus",
"chunk_size": 5000,
"min_score_threshold": 0.7,
"max_clips_per_collection": 5,
"default_browser": "chrome"
}
启动服务
方法 1:使用启动脚本(推荐)
赋予启动脚本执行权限并运行:
chmod +x start_dev.sh
./start_dev.sh
方法 2:手动启动
分别启动后端服务和前端服务:
# 启动后端服务
source venv/bin/activate
python backend_server.py
# 打开新终端,启动前端服务
cd frontend
npm run dev
方法 3:命令行工具
可以使用命令行工具处理本地视频文件、处理现有项目或列出所有项目:
# 处理本地视频文件
python main.py --video input.mp4 --srt input.srt --project-name "My Project"
# 处理现有项目
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 的项目结构清晰,各个模块分工明确,便于开发和维护。以下是项目的主要结构:
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 # 哔哩哔哩下载器
│ └── 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
文件中配置 DashScope API 密钥:
{
"dashscope_api_key": "your-dashscope-api-key",
"model_name": "qwen-plus",
"chunk_size": 5000,
"min_score_threshold": 0.7,
"max_clips_per_collection": 5,
"default_browser": "chrome"
}
浏览器配置
可以在配置文件中选择支持的浏览器(如 Chrome、Firefox、Safari 等)用于哔哩哔哩视频下载:
{
"default_browser": "chrome"
}
用户指南
上传本地视频
-
访问 http://localhost:3000 -
点击“上传视频”按钮 -
选择视频文件和字幕文件(必需) -
填写项目名称和类别 -
点击“开始处理”
下载哔哩哔哩视频
-
在主页点击“哔哩哔哩视频下载” -
输入哔哩哔哩视频链接(必须是带有字幕的视频) -
选择浏览器(用于登录状态) -
点击“开始下载”
编辑集合
-
进入项目详情页面 -
点击集合卡片进入编辑模式 -
拖放切片调整顺序 -
添加或删除切片 -
保存更改
下载项目
-
点击项目卡片上的下载按钮 -
系统会自动打包所有切片和集合 -
下载完整的压缩文件
开发指南
后端开发
# 启动开发服务器(支持热重载)
python backend_server.py
# 运行测试
pytest tests/
前端开发
cd frontend
npm run dev # 开发模式
npm run build # 生产构建
npm run lint # 代码检查
添加新视频类别
-
在 prompt/
目录下创建新的类别文件夹 -
添加相应的提示模板文件 -
在前端 src/services/api.ts
中添加类别选项
常见问题解答
Q:哔哩哔哩视频下载失败怎么办?
A:确保你已经登录了哔哩哔哩账号,并选择了正确的浏览器。推荐使用 Chrome 浏览器。
Q:AI 分析速度慢怎么办?
A:可以调整 chunk_size
参数。较小的值会提高速度,但可能会影响质量。
Q:切片质量不好怎么办?
A:调整 min_score_threshold
参数。较高的值会提高切片质量,但会减少数量。
Q:集合数量太少怎么办?
A:调整 max_clips_per_collection
参数,增加每个集合的最大切片数量。
许可证和贡献
许可证
本项目采用 MIT 许可证,具体细节请参考 LICENSE 文件。
贡献
欢迎提交 Issues 和 Pull Requests 来为项目做出贡献。具体步骤如下:
-
Fork 此项目 -
创建一个功能分支 ( git checkout -b feature/AmazingFeature
) -
提交你的更改 ( git commit -m 'Add some AmazingFeature'
) -
推送到分支 ( git push origin feature/AmazingFeature
) -
打开一个 Pull Request
总之,AutoClip 是一款功能强大、易于使用的视频剪辑工具,它结合了人工智能技术,为视频创作者提供了高效、智能的视频处理解决方案。无论是个人用户还是专业开发者,都可以通过 AutoClip 提升视频创作的效率和质量。希望通过本文的介绍,你能够更好地了解和使用 AutoClip。如果你在使用过程中遇到任何问题,欢迎随时联系我们。