manus-skills/.kortix/opencode/skills/media/video-to-subtitle-summary/README.md
zhukang 1c7abd81d1 All 310 Manus skill-hub community skills as a Kortix marketplace registry
- 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
2026-09-15 13:37:20 +08:00

325 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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)