- 310 registry:skill items, 1528 files, 7 categories (hub tags) - registry.json generated by @kortix/registry buildRegistry - nested SKILL.md in sn-da-* renamed SUBSKILL.md (no phantom skills) - provenance + licenses: SOURCES.md
325 lines
11 KiB
Markdown
325 lines
11 KiB
Markdown
# video-to-subtitle-summary
|
||
|
||
一个 Codex / Claude Code Skill,自动将短视频平台(抖音、小红书、B 站、YouTube 等)视频或本地视频/音频文件转换为字幕文本并生成 AI 摘要。
|
||
|
||
**核心流程:**
|
||
- **在线视频:** 提供视频链接 → 自动下载视频或直接抓字幕 → 生成字幕 → AI 总结
|
||
- **本地文件:** 提供本地视频/音频路径 → 提取音频(如需) → 选择字幕后端 → 生成字幕 → AI 总结
|
||
|
||
默认字幕后端是本地 `faster-whisper`,也支持通过环境变量切换到火山引擎 VC。
|
||
YouTube 链接会优先用 `yt-dlp` 直接抓取人工字幕或自动字幕,不需要 AI Douyin/TikHub,也不会默认下载视频或跑 ASR。
|
||
|
||
[English](./README_en.md)
|
||
|
||
## 更新说明
|
||
|
||
当前版本支持两种字幕转写后端:
|
||
- **`faster-whisper`**:默认方案,本地转写,不依赖火山引擎
|
||
- **`volcengine`**:可选方案,使用火山引擎音视频字幕服务
|
||
|
||
这意味着:
|
||
- 默认情况下不需要注册和开通火山引擎
|
||
- 只有在 `ASR_BACKEND=volcengine` 时,才需要配置 `BYTEDANCE_VC_TOKEN` 和 `BYTEDANCE_VC_APPID`
|
||
- 如果你更看重本地化与零 API 转写费用,保持默认即可
|
||
- 如果你更偏好云端转写能力,切换环境变量即可
|
||
|
||
> 抖音、小红书、B 站默认推荐使用 [AI Douyin](https://top9.cc) 解析下载直链:注册后可用免费额度试用,成功解析一次扣 1 积分。已有 TikHub 用户也可以改用自有 `TIKHUB_TOKEN`。YouTube 直接由 `yt-dlp` 抓字幕。ASR 字幕识别后端由 `ASR_BACKEND` 控制。
|
||
|
||
## 一键免部署方案
|
||
|
||
不想本地安装和配置环境时,可直接使用在线版本:
|
||
|
||
- [https://top9.cc](https://top9.cc)
|
||
|
||
## 私有化部署支持
|
||
|
||
支持程序私有化部署,可落地到企业服务器或内网环境,满足数据隔离与合规要求。
|
||
|
||
如需私有化部署方案、技术支持或商务合作,请联系:`eyr8odvl1i@163.com`
|
||
|
||
## 效果展示
|
||
|
||
输入一个视频链接或本地文件路径,自动输出:
|
||
|
||
```markdown
|
||
## 视频分析结果
|
||
|
||
### 视频信息
|
||
| 项目 | 内容 |
|
||
|------|------|
|
||
| 视频ID | 7456789012345 |
|
||
| 作者 | 某知识博主 |
|
||
| 时长 | 3:25 |
|
||
|
||
### AI生成标题
|
||
深度解析 2024 年 AI 发展趋势与个人应对策略
|
||
|
||
### AI摘要
|
||
视频主要讨论了 2024 年 AI 技术的发展趋势,包括大模型的演进方向、
|
||
AI 在各行业的落地应用,以及普通人如何把握 AI 时代的机遇...
|
||
|
||
### 核心要点
|
||
1. 大模型正在从“通用智能”向“专业智能”演进
|
||
2. AI 应用层的创业机会远大于基础模型层
|
||
3. 掌握 AI 工具使用能力将成为职场核心竞争力
|
||
|
||
### 生成文件
|
||
- 视频: /tmp/video_analysis/7456789012345/video.mp4
|
||
- 音频: /tmp/video_analysis/7456789012345/audio.mp3
|
||
- SRT字幕: /tmp/video_analysis/7456789012345/subtitle.srt
|
||
- 纯文本: /tmp/video_analysis/7456789012345/text.txt
|
||
```
|
||
|
||
## 前置条件
|
||
|
||
| 依赖 | 说明 |
|
||
|------|------|
|
||
| Codex 或 [Claude Code](https://docs.anthropic.com/en/docs/claude-code) | 支持本地 Skill 的 Agent 环境 |
|
||
| [FFmpeg](https://ffmpeg.org/) | 音视频处理工具 |
|
||
| [yt-dlp](https://github.com/yt-dlp/yt-dlp) | 视频下载和 YouTube 字幕抓取工具(B 站 / YouTube 需要) |
|
||
| [AI Douyin](https://top9.cc) API Key | 推荐的视频解析/下载代理;新用户免费额度,可避免单独注册 TikHub |
|
||
| [TikHub](https://tikhub.io/) 账号 | 可选视频接口获取方案:自带 Token 直接解析抖音/小红书/B 站 |
|
||
| Python 3.9+ + [faster-whisper](https://github.com/SYSTRAN/faster-whisper) | 当 `ASR_BACKEND=faster-whisper` 时需要 |
|
||
| [火山引擎](https://www.volcengine.com/) 账号 | 当 `ASR_BACKEND=volcengine` 时需要 |
|
||
|
||
## 快速安装
|
||
|
||
### 1. 选择字幕后端
|
||
|
||
默认推荐 `faster-whisper`:
|
||
|
||
```bash
|
||
ASR_BACKEND=faster-whisper
|
||
```
|
||
|
||
如需使用火山引擎:
|
||
|
||
```bash
|
||
ASR_BACKEND=volcengine
|
||
```
|
||
|
||
### 2. 按后端安装依赖
|
||
|
||
**方案 A:faster-whisper(默认)**
|
||
|
||
```bash
|
||
python3 ~/.codex/skills/video-to-subtitle-summary/scripts/install_faster_whisper.py
|
||
```
|
||
|
||
> 安装 helper 会先测速 PyPI 镜像,选择最快可用源,再创建独立 venv 安装。默认按 CPU 路径运行;检测到 NVIDIA/CUDA 时会自动切到 GPU。Apple Silicon 会继续走 CPU 路径。GPU 安装细节见 [docs/faster-whisper-setup.md](./docs/faster-whisper-setup.md)。
|
||
|
||
**方案 B:火山引擎 VC(可选)**
|
||
|
||
按照 [docs/bytedance-vc-setup.md](./docs/bytedance-vc-setup.md) 开通服务并获取 `APPID` / `Token`。
|
||
|
||
### 2.5 安装 FFmpeg
|
||
|
||
```bash
|
||
# macOS
|
||
brew install ffmpeg
|
||
|
||
# Ubuntu / Debian
|
||
sudo apt install ffmpeg
|
||
|
||
# Windows (使用 Chocolatey)
|
||
choco install ffmpeg
|
||
```
|
||
|
||
### 2.8 安装 yt-dlp(B 站 / YouTube 需要)
|
||
|
||
```bash
|
||
# macOS
|
||
brew install yt-dlp
|
||
|
||
# 通用(需要 Python)
|
||
python3 -m pip install -U yt-dlp
|
||
```
|
||
|
||
### 3. 复制 Skill 到 Codex / Claude Code
|
||
|
||
```bash
|
||
# 克隆仓库
|
||
git clone https://github.com/imlewc/video-to-subtitle-summary-skill.git video-to-subtitle-summary
|
||
|
||
# Codex
|
||
mkdir -p ~/.codex/skills
|
||
cp -r video-to-subtitle-summary ~/.codex/skills/video-to-subtitle-summary
|
||
|
||
# Claude Code
|
||
mkdir -p ~/.claude/skills
|
||
cp -r video-to-subtitle-summary ~/.claude/skills/video-to-subtitle-summary
|
||
```
|
||
|
||
### 4. 配置环境变量
|
||
|
||
如需处理抖音、小红书或 B 站,推荐注册 [AI Douyin](https://top9.cc) 并创建 API Key;YouTube 不需要视频解析代理。已有 TikHub 用户可改用自有 TikHub Token。然后配置你要使用的字幕后端。
|
||
|
||
**方式一:使用 .env 文件(推荐)**
|
||
|
||
```bash
|
||
cp .env.example ~/.codex/skills/video-to-subtitle-summary/.env
|
||
# 编辑 .env 文件填入你的配置
|
||
```
|
||
|
||
**方式二:写入 Shell 配置**
|
||
|
||
```bash
|
||
# 添加到 ~/.zshrc 或 ~/.bashrc
|
||
export ASR_BACKEND="faster-whisper"
|
||
|
||
# 默认推荐:AI Douyin 代理(成功解析下载直链后扣 1 积分)
|
||
export VIDEO_INFO_PROVIDER="ai-douyin"
|
||
export AI_DOUYIN_API_BASE="https://top9.cc"
|
||
export AI_DOUYIN_API_KEY="your_ai_douyin_api_key"
|
||
|
||
# 可选视频接口获取方案:自有 TikHub Token
|
||
export TIKHUB_TOKEN=""
|
||
|
||
export FW_MODEL_SIZE="small"
|
||
export FW_DEVICE="auto"
|
||
export FW_COMPUTE_TYPE=""
|
||
export FW_PYTHON=""
|
||
|
||
export BYTEDANCE_VC_TOKEN="your_bytedance_vc_token"
|
||
export BYTEDANCE_VC_APPID="your_bytedance_vc_appid"
|
||
```
|
||
|
||
说明:
|
||
- `ASR_BACKEND`:可选,默认 `faster-whisper`
|
||
- `VIDEO_INFO_PROVIDER`:可选,默认 `ai-douyin`;可改为 `tikhub`
|
||
- `AI_DOUYIN_API_BASE` / `AI_DOUYIN_API_KEY`:默认推荐的视频解析代理;抖音/小红书/B 站需要;YouTube 不需要;成功解析下载直链后扣 1 积分
|
||
- `TIKHUB_TOKEN`:可选视频接口获取方案;当 `VIDEO_INFO_PROVIDER=tikhub` 或 AI Douyin 不可用时使用
|
||
- AI Douyin 返回 `402 insufficient balance` 时,表示免费额度用完或余额不足,可在平台充值积分,或切换为自有 TikHub Token
|
||
- `FW_MODEL_SIZE` / `FW_DEVICE` / `FW_COMPUTE_TYPE`:仅 `faster-whisper` 使用
|
||
- `FW_PYTHON`:可选,指定安装了 `faster-whisper` 的 Python;留空时优先使用安装 helper 创建的默认 venv
|
||
- `BYTEDANCE_VC_TOKEN` / `BYTEDANCE_VC_APPID`:仅 `volcengine` 使用
|
||
|
||
## 使用方法
|
||
|
||
### 在线视频
|
||
|
||
在 Claude Code 中直接发送视频链接即可(支持抖音、小红书、B 站、YouTube 等):
|
||
|
||
```
|
||
请帮我提取这个视频的字幕并总结:https://v.douyin.com/xxxxxx/
|
||
```
|
||
|
||
```
|
||
请帮我总结这个小红书视频:https://www.xiaohongshu.com/explore/xxxxxx
|
||
```
|
||
|
||
```
|
||
请帮我总结这个B站视频:https://www.bilibili.com/video/BVxxxxxxxxxx/
|
||
```
|
||
|
||
```
|
||
请帮我总结这个 YouTube 视频:https://www.youtube.com/watch?v=O87FdYIPeQk
|
||
```
|
||
|
||
或者使用 skill 命令:
|
||
|
||
```
|
||
/video-to-subtitle-summary https://v.douyin.com/xxxxxx/
|
||
```
|
||
|
||
### 本地文件
|
||
|
||
直接提供本地视频或音频文件路径:
|
||
|
||
```
|
||
请帮我提取字幕并总结:/Users/me/Downloads/video.mp4
|
||
```
|
||
|
||
```
|
||
/video-to-subtitle-summary ~/Desktop/recording.mp3
|
||
```
|
||
|
||
> 本地文件模式会自动跳过视频下载步骤,音频文件还会跳过音频提取步骤,无需 AI Douyin/TikHub 视频解析代理。
|
||
|
||
### YouTube 字幕直抓
|
||
|
||
YouTube 链接优先执行:
|
||
|
||
```bash
|
||
python3 ~/.codex/skills/video-to-subtitle-summary/scripts/download_youtube_subtitles.py \
|
||
"https://www.youtube.com/watch?v=O87FdYIPeQk" \
|
||
--output-dir /tmp/video_analysis/O87FdYIPeQk \
|
||
--languages zh-Hans,zh-Hant,zh,en
|
||
```
|
||
|
||
生成 `/tmp/video_analysis/O87FdYIPeQk/subtitle.srt` 和 `/tmp/video_analysis/O87FdYIPeQk/text.txt`。如果视频没有可抓取字幕,再回退到下载音频并使用 `ASR_BACKEND` 转写。
|
||
|
||
### 查看自己的 AI Douyin 历史任务
|
||
|
||
已配置 `AI_DOUYIN_API_KEY` 后,可以查询当前 API Key 对应用户的历史任务:
|
||
|
||
```bash
|
||
python3 ~/.codex/skills/video-to-subtitle-summary/scripts/list_ai_douyin_tasks.py \
|
||
--page 1 \
|
||
--page-size 20
|
||
```
|
||
|
||
可选筛选:
|
||
|
||
```bash
|
||
python3 ~/.codex/skills/video-to-subtitle-summary/scripts/list_ai_douyin_tasks.py --status completed
|
||
python3 ~/.codex/skills/video-to-subtitle-summary/scripts/list_ai_douyin_tasks.py --search "关键词" --json
|
||
```
|
||
|
||
该脚本默认读取 skill 目录 `.env` 或环境变量中的 `AI_DOUYIN_API_BASE` / `AI_DOUYIN_API_KEY`,调用 `GET /api/v1/tasks`,只返回当前用户自己的任务。
|
||
|
||
## 安装指南
|
||
|
||
| 项目 | 文档 |
|
||
|------|------|
|
||
| AI Douyin 代理 | [配置指南](./docs/ai-douyin-setup.md) |
|
||
| TikHub API(可选视频接口获取方案) | [申请教程](./docs/tikhub-setup.md) |
|
||
| faster-whisper 运行时 | [安装指南](./docs/faster-whisper-setup.md) |
|
||
| 火山引擎 VC | [开通教程](./docs/bytedance-vc-setup.md) |
|
||
|
||
## 费用说明
|
||
|
||
| 服务 | 费用 |
|
||
|------|------|
|
||
| AI Douyin 代理 | 新用户免费额度;成功解析下载直链后扣 1 积分,额度用完可充值 |
|
||
| TikHub API(可选) | 使用自有 TikHub Token 时按 TikHub 套餐计费 |
|
||
| YouTube 字幕抓取 | 无 API 费用,依赖本地 `yt-dlp` |
|
||
| faster-whisper | 无 API 费用,消耗本地 CPU/GPU 计算资源 |
|
||
| 火山引擎 VC | 仅在 `ASR_BACKEND=volcengine` 时产生字幕接口费用 |
|
||
| Claude Code | 取决于你的订阅计划 |
|
||
|
||
> 默认方案 `faster-whisper` 不会产生火山字幕接口费用。
|
||
> 首次运行 `faster-whisper` 会下载模型文件,之后会复用本地缓存。
|
||
|
||
## 项目结构
|
||
|
||
```text
|
||
video-to-subtitle-summary/
|
||
├── README.md # 项目介绍(本文件)
|
||
├── README_en.md # English README
|
||
├── LICENSE # MIT 协议
|
||
├── SKILL.md # Skill 本体
|
||
├── .env.example # 环境变量模板
|
||
├── scripts/
|
||
│ ├── download_video_candidates.py
|
||
│ ├── download_youtube_subtitles.py
|
||
│ ├── install_faster_whisper.py
|
||
│ ├── list_ai_douyin_tasks.py
|
||
│ └── transcribe_faster_whisper.py
|
||
├── tests/
|
||
│ ├── test_download_video_candidates.py
|
||
│ ├── test_download_youtube_subtitles.py
|
||
│ ├── test_install_faster_whisper.py
|
||
│ ├── test_list_ai_douyin_tasks.py
|
||
│ └── test_transcribe_faster_whisper.py
|
||
└── docs/
|
||
├── ai-douyin-setup.md
|
||
├── tikhub-setup.md
|
||
├── faster-whisper-setup.md
|
||
└── bytedance-vc-setup.md
|
||
```
|
||
|
||
## License
|
||
|
||
[MIT](./LICENSE)
|