Skip to content

mybolide/vidoeTags

Repository files navigation

VideoTags

VideoTags Logo

使用AI模型为视频自动生成标签和描述的工具

功能特点环境要求安装使用方法工作流程许可证

功能特点

  • 视频标签生成:使用Gemini AI模型自动为视频生成标签和描述
  • 🕒 视频时间轴分析:智能识别视频内容变化,生成详细时间轴信息
  • ☁️ 七牛云存储集成:支持将处理后的视频上传到七牛云存储
  • 🔄 重复检测:通过MD5哈希值检测重复视频,避免重复处理
  • 📂 批量处理:支持目录批量处理视频文件
  • 📊 视频技术信息提取:自动获取视频分辨率、时长等技术信息
  • 🌌 太空视频下载:从Pexels API下载宇宙探索相关视频素材

环境要求

  • Node.js (v14 或更高版本)
  • 七牛云账户
  • Gemini API 密钥
  • Pexels API 密钥 (用于下载宇宙视频)
  • FFmpeg (通过ffmpeg-static包自动安装,或手动安装并配置路径)

安装

  1. 克隆仓库:
git clone https://github.com/mybolide/vidoeTags.git
cd vidoeTags
  1. 安装依赖:
npm install
  1. 配置环境变量:

复制 .env.example 文件为 .env,然后编辑 .env 文件填入必要的配置:

cp .env.example .env

必要的配置项:

配置项 说明
PROJECT_ROOT 项目根目录的绝对路径
GEMINI_API_KEY Gemini AI API密钥
PEXELS_API_KEY Pexels API密钥 (用于下载视频素材)
QINIU_ACCESS_KEY 七牛云访问密钥
QINIU_SECRET_KEY 七牛云秘密密钥
QINIU_BUCKET 七牛云存储桶名称
QINIU_DOMAIN 七牛云域名
FFMPEG_PATH FFmpeg安装路径
IS_PROXY 是否使用代理 (true/false)
PROXY 代理服务器地址 (如 http://127.0.0.1:10808)

FFmpeg配置

本项目需要FFmpeg处理视频。有两种方式配置:

  1. 自动安装:项目依赖中包含ffmpeg-static,会自动下载FFmpeg(某些系统可能存在兼容问题)

  2. 手动安装(推荐):

    • FFmpeg官网下载适合你系统的FFmpeg
    • 解压到任意目录(例如:D:\plugins\ffmpeg)
    • 在.env文件中设置FFMPEG_PATH指向该目录(确保目录下有ffmpeg.exe和ffprobe.exe)

使用方法

下载宇宙探索视频

npm run download-space-videos

这将从Pexels API下载宇宙探索相关的视频素材到sourceVideo目录。

处理单个视频

npm run process-video

这将处理环境变量中指定的视频文件。

批量处理视频目录

node generateVideoAnalysis.js

这将处理 sourceVideo 目录中的所有视频文件。

工作流程

  1. 读取视频文件:从指定路径读取视频文件
  2. 计算哈希值:计算视频文件的MD5哈希,用于重复检测
  3. 提取视频信息:使用FFmpeg获取视频分辨率和时长等技术信息
  4. AI分析:使用Gemini AI模型分析视频内容,生成标签、描述和时间轴信息
  5. 七牛云上传:将视频上传至七牛云存储
  6. 保存元数据:将视频信息和分析结果保存到JSON数据文件

项目结构

vidoeTags/
├── assets/             # 项目资源文件
│   └── icon.svg        # 项目图标
├── sourceVideo/        # 源视频存储目录
├── data/
│   └── videoData.json  # 处理结果数据文件
├── src/
│   ├── dataService.js     # 数据处理服务
│   ├── ffmpegService.js   # FFmpeg视频信息提取服务
│   ├── geminiService.js   # Gemini AI服务
│   ├── processVideoScript.js # 视频处理主脚本
│   ├── qiniuService.js    # 七牛云服务
│   └── videoProcessor.js  # 视频处理器
├── .env                # 环境变量配置
├── .env.example        # 环境变量示例
├── downloadSpace.js    # 宇宙视频下载脚本
├── generateVideoAnalysis.js # 批量处理脚本
└── package.json        # 项目依赖

输出格式

处理后的视频信息将保存在 data/videoData.json 文件中,格式如下:

{
  "id": "唯一ID",
  "hash": "视频MD5哈希值",
  "url": "七牛云URL",
  "tags": ["标签1", "标签2", "..."],
  "summary": "视频内容描述",
  "duration": 视频时长(秒),
  "resolution": "1920x1080",
  "width": 1920,
  "height": 1080,
  "sourceFile": "源文件路径",
  "model": "使用的AI模型",
  "timeline": [
    {
      "start": 起始时间(秒),
      "end": 结束时间(秒),
      "tags": ["片段标签1", "片段标签2"],
      "summary": "片段描述"
    }
  ]
}

贡献指南

欢迎提交问题和拉取请求。对于重大更改,请先开issue讨论您想要更改的内容。

许可证

ISC

About

使用AI模型为视频自动生成标签和描述的工具

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors