🦀 ClawHub
youtube-download-review
by @copfee
处理 YouTube 链接的视频下载与音乐向解读。只要用户提供 YouTube 链接,并提到下载视频、合并 MP4、下载封面、字幕处理(内嵌/忽略)、推荐理由、内容简介时,都应优先使用本技能。默认下载 1080p 视频 + 最高品质 m4a,自动合并为 mp4,并按视频标题创建目录输出全部产物。(此Skill 依...
TERMINAL
clawhub install youtube-download-review📖 About This Skill
name: youtube-download-review description: 处理 YouTube 链接的视频下载与音乐向解读。只要用户提供 YouTube 链接,并提到下载视频、合并 MP4、下载封面、字幕处理(内嵌/忽略)、推荐理由、内容简介时,都应优先使用本技能。默认下载 1080p 视频 + 最高品质 m4a,自动合并为 mp4,并按视频标题创建目录输出全部产物。(此Skill 依赖系统软件包:yt-dlp 和 ffmpeg)
YouTube 下载 + 硬字幕压制 + 音乐媒体解读
当用户给出 YouTube 链接并希望下载视频时,按本技能执行完整流程:
目标
输入要求
youtube.com 或 youtu.be)输出目录与文件规范
默认在当前工作目录输出,单条视频目录结构如下:<视频标题>/
<视频标题>.source.mp4
<视频标题>.mp4
<视频标题>.jpg
<视频标题>.srt # 仅字幕流程中可得时保留
推荐解读.md
说明:
<视频标题>.source.mp4:音视频合并后的原始版(不带硬字幕)<视频标题>.mp4:最终交付版(若做硬字幕则为压制后文件)必须执行的交互(字幕选项)
在处理每个链接时,先探测可用字幕能力,然后提醒用户选择:硬字幕压制(默认推荐)忽略字幕规则:
<视频标题>.source.mp4 并复制/重命名为 <视频标题>.mp4<视频标题>.mp4标准工作流
1) 校验与取元信息
1. 校验链接是否为 YouTube。 2. 用yt-dlp --dump-single-json 获取:
- title
- description
- subtitles / automatic_captions
3. 依据 title 创建目录。示例命令:
yt-dlp --dump-single-json ""
2) 下载音视频并合并为 source MP4
格式策略(按顺序回退): 1.bestvideo[height<=1080][ext=mp4] + bestaudio[ext=m4a]
2. best[height<=1080][ext=mp4]
3. best[height<=1080]示例命令:
yt-dlp \
-f "bestvideo[height<=1080][ext=mp4]+bestaudio[ext=m4a]/best[height<=1080][ext=mp4]/best[height<=1080]" \
--merge-output-format mp4 \
-o "%(title)s/%(title)s.source.%(ext)s" \
""
3) 下载封面为 JPG
yt-dlp \
--skip-download \
--write-thumbnail \
--convert-thumbnails jpg \
-o "%(title)s/%(title)s.%(ext)s" \
""
4) 字幕处理(用户选“硬字幕压制”时)
字幕语言优先级: 1. 简体中文(zh-Hans、zh-CN)
2. 其他中文(zh、zh-TW)后转简体
3. 非中文字幕自动翻译为简体中文(平台支持时)建议先尝试:
yt-dlp \
--skip-download \
--write-sub \
--write-auto-sub \
--sub-langs "zh-Hans,zh-CN,zh,zh-TW,*" \
--sub-format "srt/best" \
-o "%(title)s/%(title)s.%(ext)s" \
""
拿到字幕后,确保最终用于烧录的是简体中文 .srt(必要时做繁转简)。
5) 硬字幕压制到最终 MP4
使用 ffmpeg 将字幕烧录进画面(重编码):ffmpeg -y \
-i "<视频标题>/<视频标题>.source.mp4" \
-vf "subtitles='<视频标题>/<视频标题>.srt'" \
-c:v libx264 -crf 20 -preset medium \
-c:a copy \
"<视频标题>/<视频标题>.mp4"
注意:
若用户选“忽略字幕”,则:
<视频标题>.source.mp4 复制或重命名为 <视频标题>.mp46) 生成音乐媒体视角解读
基于title + description 输出两部分内容:
写入 <视频标题>/推荐解读.md,并在终端同步展示同内容。
推荐解读.md 模板
# 推荐解读视频信息
链接:
标题:<视频标题> 推荐理由
<1 段,音乐媒体人视角>内容简介(约50字)
<约 50 字>
终端输出模板
[完成] 已处理:<视频标题>
最终视频:<视频标题>/<视频标题>.mp4
原始合并:<视频标题>/<视频标题>.source.mp4
封面:<视频标题>/<视频标题>.jpg
解读:<视频标题>/推荐解读.md 推荐理由:
<同文件内容>
内容简介(约50字):
<同文件内容>
异常与兜底
.source.mp4 与字幕文件