🧪 Skills

youtube-download-review

处理 YouTube 链接的视频下载与音乐向解读。只要用户提供 YouTube 链接,并提到下载视频、合并 MP4、下载封面、字幕处理(内嵌/忽略)、推荐理由、内容

v1.0.1
❤️ 0
⬇️ 40
👁 1
Share

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.comyoutu.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 "<YOUTUBE_URL>"

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" \
  "<YOUTUBE_URL>"

3) 下载封面为 JPG

yt-dlp \
  --skip-download \
  --write-thumbnail \
  --convert-thumbnails jpg \
  -o "%(title)s/%(title)s.%(ext)s" \
  "<YOUTUBE_URL>"

4) 字幕处理(用户选“硬字幕压制”时)

字幕语言优先级:

  1. 简体中文(zh-Hanszh-CN
  2. 其他中文(zhzh-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" \
  "<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)

Sign in to join the discussion.

No comments yet. Be the first to share your thoughts!

Compatible Platforms

Pricing

Free

Related Configs