基于AI的智能视频库管理与整理工具,帮助用户自动分析、标准化命名和组织视频文件。支持TMDB元数据获取、智能文件迁移和媒体服务器兼容。
这是一套用于整理和标准化视频文件库的工具集,包含多个Python脚本,可以帮助您扫描、分析、组织和迁移视频文件。VideoVault利用大语言模型和TMDB API实现智能分析和标准化命名,使您的媒体库与主流媒体服务器平台兼容。
这套工具集主要提供以下功能:
- 视频文件扫描:扫描指定目录中的视频文件,识别类型,生成原始文件清单
- 智能分析分类:通过大语言模型处理原始数据,识别影片类型和标题信息
- 标准化命名:通过TMDB API获取准确的英文标题和年份信息
- 文件迁移:根据分析结果执行文件移动和重命名,创建结构化的文件夹体系
- 元数据获取:补充下载封面海报、信息文档和字幕文件(开发中)
- Python 3.7 或更高版本
- 依赖包:requests, pandas, openpyxl, python-dotenv 等
-
克隆仓库
git clone https://github.com/yourusername/VideoVault.git cd VideoVault
-
安装依赖
pip install -r requirements.txt
-
配置环境变量
cp .env.example .env # 编辑.env文件,填入您的API密钥
视频文件管理是一个简单的四步流程:
首先,使用find_videos_new.py
扫描您的视频库,生成包含所有视频文件路径的清单:
# 使用默认配置扫描
python find_videos_new.py
# 或指定目录和输出文件
python find_videos_new.py --dir /path/to/videos --output custom_list.txt
执行main.py处理文件清单,通过大语言模型进行智能分析:
python main.py analyze --input video_files.txt
此步骤将:
- 将文件清单数据通过API发送给大语言模型进行分析
- 生成完整的文件迁移方案
- 自动通过TMDB API获取准确的标题和年份信息
审核迁移方案后,运行文件迁移脚本:
python main.py migrate --plans 迁移方案_*.json
或者使用一体化命令完成从扫描到迁移的全过程:
python main.py all --dir /path/to/videos
此脚本将创建目标文件夹结构,并按照方案移动和重命名文件。
配置文件使用环境变量和config.py
进行管理:
-
复制
.env.example
为.env
并填写您的API密钥:TMDB_API_KEY=your_api_key_here OPENAI_API_KEY=your_openai_api_key_here
-
如需自定义基础路径,可在
.env
文件中设置:VIDEOVAULT_BASE_DIR=/path/to/your/videos
工具默认使用以下文件夹结构进行整理:
- 电影/
- 华语电影/
- 欧美电影/
- 日韩电影/
- 其他地区/
- 剧集/
- 华语剧集/
- 欧美剧集/
- 日韩剧集/
- 动画剧集/
- 纪录片/
- 动画电影/
- 公开课/
- 综艺/
- 其他/
您可以在config.py
中修改FOLDER_STRUCTURE
变量来自定义此结构。
文件将被重命名为以下格式:
- 电影:
中文名 - 英文名 (年份).扩展名
- 剧集:
中文名 - 英文名 (年份) - SxxExx.扩展名
对于大型视频库,工具采用以下策略:
- 使用省略表示法减少数据量:例如
E[01-24]
表示从E01到E24的所有剧集 - 支持分批执行迁移,可以暂停和继续处理
- 自动处理相同模式的系列文件
find_videos_new.py
- 文件扫描工具video_analysis.py
- 视频文件分析工具file_migration.py
- 文件迁移执行工具tmdb_helper.py
- TMDB API交互模块config.py
- 配置文件.env.example
- 环境变量示例配置requirements.txt
- 项目依赖
- 备份:首次使用前,建议备份您的视频库
- API限制:TMDB API和大语言模型API都有使用限制,大量处理可能受到影响
- 权限:确保脚本有足够的权限读取和写入文件
完成处理后的媒体库与以下媒体管理软件兼容:
- Plex
- Infuse
- Emby
- Jellyfin
- Kodi
本项目使用MIT许可证 - 详情请查看LICENSE文件