🧪 Skills
youtube-download-review
处理 YouTube 链接的视频下载与音乐向解读。只要用户提供 YouTube 链接,并提到下载视频、合并 MP4、下载封面、字幕处理(内嵌/忽略)、推荐理由、内容
v1.0.1
Description
name: youtube-download-review description: 处理 YouTube 链接的视频下载与音乐向解读。只要用户提供 YouTube 链接,并提到下载视频、合并 MP4、下载封面、字幕处理(内嵌/忽略)、推荐理由、内容简介时,都应优先使用本技能。默认下载 1080p 视频 + 最高品质 m4a,自动合并为 mp4,并按视频标题创建目录输出全部产物。(此Skill 依赖系统软件包:yt-dlp 和 ffmpeg)
YouTube 下载 + 硬字幕压制 + 音乐媒体解读
当用户给出 YouTube 链接并希望下载视频时,按本技能执行完整流程:
- 下载视频与音频并合并为 MP4
- 下载封面并转为 JPG
- 根据标题目录归档
- 生成音乐媒体视角的推荐理由与约 50 字简介
目标
- 视频分辨率上限 1080p,优先 MP4 容器
- 音频优先最高品质 m4a
- 自动生成可播放的 MP4 文件
- 若用户选择字幕,执行简体中文字幕优先并硬字幕压制
- 每个视频单独目录保存,目录名为视频标题
输入要求
- 必须是 YouTube 链接(
youtube.com或youtu.be) - 可单条或多条链接;多条时逐条处理
输出目录与文件规范
默认在当前工作目录输出,单条视频目录结构如下:
<视频标题>/
<视频标题>.source.mp4
<视频标题>.mp4
<视频标题>.jpg
<视频标题>.srt # 仅字幕流程中可得时保留
推荐解读.md
说明:
<视频标题>.source.mp4:音视频合并后的原始版(不带硬字幕)<视频标题>.mp4:最终交付版(若做硬字幕则为压制后文件)- 按用户确认,默认保留上述两个视频文件,便于回退和二次处理
必须执行的交互(字幕选项)
在处理每个链接时,先探测可用字幕能力,然后提醒用户选择:
硬字幕压制(默认推荐)忽略字幕
规则:
- 用户选“硬字幕压制”:执行字幕下载与烧录流程
- 用户选“忽略字幕”:直接输出
<视频标题>.source.mp4并复制/重命名为<视频标题>.mp4 - 若字幕不可用或不可翻译为简中:明确告知,并继续产出无字幕版
<视频标题>.mp4
标准工作流
1) 校验与取元信息
- 校验链接是否为 YouTube。
- 用
yt-dlp --dump-single-json获取:titledescriptionsubtitles/automatic_captions
- 依据
title创建目录。
示例命令:
yt-dlp --dump-single-json "<YOUTUBE_URL>"
2) 下载音视频并合并为 source MP4
格式策略(按顺序回退):
bestvideo[height<=1080][ext=mp4] + bestaudio[ext=m4a]best[height<=1080][ext=mp4]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" \
"<YOUTUBE_URL>"
3) 下载封面为 JPG
yt-dlp \
--skip-download \
--write-thumbnail \
--convert-thumbnails jpg \
-o "%(title)s/%(title)s.%(ext)s" \
"<YOUTUBE_URL>"
4) 字幕处理(用户选“硬字幕压制”时)
字幕语言优先级:
- 简体中文(
zh-Hans、zh-CN) - 其他中文(
zh、zh-TW)后转简体 - 非中文字幕自动翻译为简体中文(平台支持时)
建议先尝试:
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" \
"<YOUTUBE_URL>"
拿到字幕后,确保最终用于烧录的是简体中文 .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复制或重命名为<视频标题>.mp4
6) 生成音乐媒体视角解读
基于 title + description 输出两部分内容:
- 推荐理由:以资深音乐媒体人口吻,聚焦音乐性、编曲/制作、情绪表达、文化语境或舞台表现
- 内容简介:约 50 字,信息密度高,避免空泛褒奖
写入 <视频标题>/推荐解读.md,并在终端同步展示同内容。
推荐解读.md 模板
# 推荐解读
## 视频信息
- 链接:<YouTube URL>
- 标题:<视频标题>
## 推荐理由
<1 段,音乐媒体人视角>
## 内容简介(约50字)
<约 50 字>
终端输出模板
[完成] 已处理:<视频标题>
- 最终视频:<视频标题>/<视频标题>.mp4
- 原始合并:<视频标题>/<视频标题>.source.mp4
- 封面:<视频标题>/<视频标题>.jpg
- 解读:<视频标题>/推荐解读.md
推荐理由:
<同文件内容>
内容简介(约50字):
<同文件内容>
异常与兜底
- 链接不可访问:说明原因并提示检查链接或网络
- 1080p 不可用:回退到可用最高画质(仍优先 MP4)
- m4a 不可用:回退最佳可用音频,并在结果中说明
- 封面转换失败:保留原始缩略图格式并说明
- 字幕不可得或不可翻译:说明并继续产出无字幕 MP4
- ffmpeg 不可用:明确提示安装 ffmpeg,并保留
.source.mp4与字幕文件
质量要求
- 不删除用户已有文件
- 不覆盖无关目录内容
- 多链接任务按“一个链接一个目录”稳定输出
- 文案避免模板腔,保持专业、克制、可读
Reviews (0)
Sign in to write a review.
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!