🚀 基于原版 Youtube-clipper-skill 的增强版本
采用先进的 Agentic Workflow 架构,通过专家级 Subagent 实现智能分析、高质量翻译和社交媒体发布自动化。
相比原版仓库,本项目在以下方面进行了重大升级:
采用主智能体 + 专家 Subagent 的协作模式,将复杂任务分解为专业化的子任务:
-
AnalysisAgent - 内容语义分析专家
- 深度理解视频内容结构
- 生成高质量的章节划分方案
- 支持交互式反馈循环,确保切分逻辑符合用户意图
-
TranslationAgent - 双语翻译专家
- 批量翻译优化(20条/批次)
- 95% API 调用减少,10倍速度提升
- 保持主 Agent 上下文清晰,避免翻译任务污染主流程
-
TweetAgent ⭐ 新增 - 社交媒体文案专家
- 自动生成推特风格的分享文案
- 针对每个视频片段优化内容吸引力
- 支持自定义文案风格和话题标签
集成 baoyu-post-to-x-video Skill:
- ✅ 一键将剪辑好的视频发布到 Twitter/X
- ✅ 自动附带 AI 生成的推广文案
- ✅ 支持视频预览和发布前确认
- ✅ 完整的浏览器自动化流程
通过 Subagent 架构实现:
- 主 Agent 专注于流程编排
- 专家 Agent 处理具体任务
- 避免单一 Agent 上下文过载
- 提升整体工作流的稳定性和可维护性
- 更精准的语义理解
- 支持用户自定义章节划分策略
- 交互式反馈机制,持续优化直到满意
- macOS / Linux / Windows (WSL)
- Python 3.8+
- Claude Code / Claude Desktop
- Git
# 克隆仓库到本地
git clone https://github.com/Mr-funny/Youtube-clipper-skill.git ~/youtube_clips
# 进入项目目录
cd ~/youtube_clips
# 查看实际的 Skill 代码(在 .claude 目录下)
ls -la .claude/skills/Youtube-clipper-skill/本项目采用特殊的目录结构,实际的 Skill 代码位于 .claude/skills/Youtube-clipper-skill/ 目录下。
- 克隆项目到本地
git clone https://github.com/Mr-funny/Youtube-clipper-skill.git ~/youtube_clips
cd ~/youtube_clips- 安装系统依赖
macOS:
# 安装 yt-dlp(YouTube 下载工具)
brew install yt-dlp
# 安装 FFmpeg(必须包含 libass 支持)
brew install ffmpeg
# 或者安装完整版
brew install ffmpeg-full
# 验证 FFmpeg libass 支持
ffmpeg -filters 2>&1 | grep subtitles
# 应该输出: subtitles V->V (...)Ubuntu/Debian:
sudo apt update
sudo apt install yt-dlp ffmpeg libass-dev python3-pip- 安装 Python 依赖
cd .claude/skills/Youtube-clipper-skill/
pip install yt-dlp pysrt python-dotenv- 配置环境变量
# 复制示例配置文件
cp .claude/skills/Youtube-clipper-skill/.env.example .claude/skills/Youtube-clipper-skill/.env
# 编辑配置(可选)
nano .claude/skills/Youtube-clipper-skill/.env- 验证安装
cd .claude/skills/Youtube-clipper-skill/
# 检查 yt-dlp
yt-dlp --version
# 检查 FFmpeg
ffmpeg -version
# 检查 Python 依赖
python3 -c "import yt_dlp; print('✅ yt-dlp available')"如果您希望在所有项目中使用此 Skill:
# 创建符号链接到 Claude 的全局 skills 目录
ln -s ~/youtube_clips/.claude/skills/Youtube-clipper-skill ~/.claude/skills/youtube-clipper-pro
# 或者对于 .agent 目录
ln -s ~/youtube_clips/.claude/skills/Youtube-clipper-skill ~/.agent/skills/youtube-clipper-pro- 启动 Claude Code 并进入项目目录
cd ~/youtube_clips- 告诉 Claude 执行剪辑任务
请使用 YouTube Clipper Skill 剪辑这个视频:
https://youtube.com/watch?v=VIDEO_ID
我想要:
- 自动分析并切分章节
- 生成中英双语字幕
- 生成推特分享文案
- Claude 会自动执行以下流程:
Step 0: 环境检测
├─ 检查 yt-dlp
├─ 检查 FFmpeg + libass
└─ 检查 Python 依赖
Step 1: 下载视频和字幕
└─ 使用浏览器 Cookie 绕过 YouTube 验证
Step 2: AI 智能分析(AnalysisAgent)
├─ 分析视频内容
├─ 生成章节方案
└─ 交互式反馈,直到用户满意
Step 3: 用户选择章节
└─ 选择要处理的章节(单个/多个/全部)
Step 4: 切分视频素材
└─ 为每个章节生成独立文件夹
Step 5: 并行处理(Subagent 协作)
├─ TranslationAgent: 翻译字幕
├─ TweetAgent: 生成推特文案 ⭐
└─ 烧录双语字幕到视频
Step 6: 交付成果
└─ 展示所有生成的文件
youtube_clips_pro/
└── Video_Title_ID/
├── chapters.json # 章节元数据
├── context.json # 视频上下文
├── for_analysis_agent.txt # 分析 Agent 输入
├── Video_ID.mp4 # 原始视频
│
└── Chapter_Title_1/
├── Chapter_Title_1_source.mp4 # 原始片段
├── Chapter_Title_1_final_bilingual.mp4 # 带字幕的最终版本
├── en.srt # 英文字幕
├── zh_en.srt # 中英双语字幕
├── meta.json # 章节元数据
└── tweet.md # 推特文案 ⭐
生成视频后,可以使用集成的 Twitter 发布 Skill:
请使用 baoyu-post-to-x-video Skill 将这个视频发布到 Twitter:
视频路径:youtube_clips_pro/Video_Title/Chapter_1/Chapter_1_final_bilingual.mp4
文案:使用 tweet.md 中的内容
youtube_clips/ # 项目根目录
├── .git/ # Git 仓库
├── .gitignore # Git 忽略规则
├── .gitattributes # Git 属性配置
├── README.md # 本文件
│
├── .claude/ # Claude AI 配置目录
│ ├── agents/ # Subagent 定义(如果有)
│ └── skills/ # Skills 目录
│ ├── Youtube-clipper-skill/ # 🎯 核心 Skill 代码
│ │ ├── SKILL.md # Skill 定义和工作流
│ │ ├── README.md # 详细文档
│ │ ├── .env.example # 环境变量示例
│ │ ├── scripts/ # Python 脚本
│ │ │ ├── video_clipper_pro.py # 主控制脚本
│ │ │ ├── download_video.py # 下载模块
│ │ │ ├── analyze_subtitles.py # 字幕分析
│ │ │ ├── translate_subtitles.py # 翻译模块
│ │ │ ├── burn_subtitles.py # 字幕烧录
│ │ │ └── ...
│ │ ├── references/ # 参考文档
│ │ └── templates/ # 模板文件
│ │
│ └── baoyu-post-to-x-video/ # Twitter 发布 Skill ⭐
│
└── youtube_clips_pro/ # 输出目录(.gitignore)
└── [生成的视频文件]
这是一个专为 AI Agent 设计的项目结构:
.claude/skills/是 Claude Code 读取 Skills 的标准路径- AI Agent 执行任务时会从这里加载
SKILL.md和相关脚本 - 根目录保持干净,只包含 Git 配置和说明文档
- 输出文件(
youtube_clips_pro/)被.gitignore排除,不会污染仓库
编辑 .claude/skills/Youtube-clipper-skill/.env 文件:
# FFmpeg 路径(留空则自动检测)
FFMPEG_PATH=
# 输出目录(相对于项目根目录)
OUTPUT_DIR=./youtube_clips_pro
# 视频质量限制(720, 1080, 1440, 2160)
MAX_VIDEO_HEIGHT=1080
# 翻译批次大小(推荐 20-25)
TRANSLATION_BATCH_SIZE=20
# 目标翻译语言
TARGET_LANGUAGE=中文
# 目标章节时长(秒,推荐 180-300)
TARGET_CHAPTER_DURATION=180
# YouTube 下载代理(可选)
YT_DLP_PROXY=
# 浏览器选择(chrome, firefox, safari)
BROWSER_FOR_COOKIES=chrome错误信息: Option not found: subtitles 或 filter not found
原因: FFmpeg 没有 libass 支持
解决方案:
# macOS
brew uninstall ffmpeg
brew install ffmpeg-full
# Ubuntu
sudo apt install ffmpeg libass-dev
# 验证
ffmpeg -filters 2>&1 | grep subtitles错误信息: Sign in to confirm you're not a bot
解决方案: 使用浏览器 Cookie
# 在下载命令中添加 --browser 参数
python3 scripts/video_clipper_pro.py download <URL> --browser chrome确保您已经在 Chrome 浏览器中登录 YouTube。
问题: Claude 提示找不到 youtube-clipper Skill
解决方案:
# 检查 Skill 目录是否存在
ls -la .claude/skills/Youtube-clipper-skill/SKILL.md
# 如果不存在,检查是否在正确的项目目录
pwd # 应该显示 ~/youtube_clips 或您克隆的路径
# 确保在项目根目录下启动 Claude Code
cd ~/youtube_clips错误信息: ModuleNotFoundError: No module named 'yt_dlp'
解决方案:
cd .claude/skills/Youtube-clipper-skill/
pip install yt-dlp pysrt python-dotenv
# 或者使用 pip3
pip3 install yt-dlp pysrt python-dotenv解决方案:
- 在
context.json中添加术语表 - 调整
TRANSLATION_BATCH_SIZE(减小批次可能提高质量) - 使用 TranslationAgent 的反馈机制要求重新翻译
解决方案:
- 确保已安装
baoyu-post-to-x-videoSkill - 检查浏览器是否已登录 Twitter/X
- 查看 Skill 文档了解详细配置
欢迎贡献!请:
- Fork 本仓库
- 创建您的特性分支 (
git checkout -b feature/AmazingFeature) - 提交您的更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启一个 Pull Request
本项目基于 MIT 许可证开源 - 查看 LICENSE 文件了解详情。
- op7418/Youtube-clipper-skill - 原始项目,提供了坚实的基础
- Claude Code - 强大的 AI 编程助手
- yt-dlp - YouTube 下载引擎
- FFmpeg - 视频处理利器
- baoyu-io/post-to-x-video - Twitter 发布 Skill
如有问题或建议,请:
- 提交 GitHub Issue
- 或通过 Pull Request 贡献代码