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