YouTube 视频字幕烧录器

SKILL前端设计
前端设计 未标注权限 许可证不明确
安装这个技能

下载 YouTube 视频到本地,提取 word-level 时间轴,翻译为中文,用 PIL 逐帧烧录字幕到视频画面。支持 2x 超采样抗锯齿消除文字锯齿。适用于横屏和竖屏视频。最终输出带中文字幕的 H.264 MP4 文件,可直接上传到国内平台。

一句话选型结论

按资料字段整理

YouTube 视频字幕烧录器是前端设计类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类前端设计 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_9e3b7930/youtube-subtitle-burner
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

前端设计
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_9e3b7930仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验2026-11-06上游最后核验时间 · 数据更新 2026-11-06
正文体量7.1 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
出页面与组件

按描述生成页面结构和组件草稿。

调整样式与布局

改间距、配色与响应式布局。

生成设计说明

把设计稿整理成开发能接的说明。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在前端设计场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
YouTube 视频字幕烧录器当前 未标注权限 未标注 未标注 未标注 有
前端设计 只读 GitHub 仓库 882.3 万 Codex、Claude、Cursor 有
Vercel 组合模式 联网访问 GitHub 仓库 385.9 万 Codex、Claude、Cursor 有
Vercel React native skills 前端 只读 GitHub 仓库 246.9 万 Codex、Claude、Cursor 有
adapt 搜索 浏览器控制 GitHub 仓库 202.7 万 Codex、Claude、Cursor 有
使用我的浏览器 浏览器控制 GitHub 仓库 184.8 万 Codex、Claude、Cursor 有

SKILL.md 全文

7.1 KB
模型实际读到的说明书原文,来自技能仓库

YouTube 视频字幕烧录器

下载 YouTube 视频 → 提取字幕时间轴 → 翻译为中文 → 烧录到视频画面(含抗锯齿)。

环境准备

必需依赖

# macOS
brew install ffmpeg yt-dlp

# uv(Python 环境管理,自动处理依赖)
curl -LsSf https://astral.sh/uv/install.sh | sh

Python 脚本使用 PEP 723 内联依赖声明(# /// script),uv run 会自动创建虚拟环境并安装依赖(如 Pillow),用户无需手动管理 Python 环境。

代理设置(中国大陆)

Clash Verge fake-ip 模式下 yt-dlp 必须显式设置代理:

export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890

代理不通时用 Clash unix socket 切换节点:

curl -s --unix-socket /tmp/verge/verge-mihomo.sock \
  -X PUT 'http://localhost/proxies/%F0%9F%93%B9%20YouTube' \
  -H "Content-Type: application/json" \
  -d '{"name":"⚡ 最快线路"}'

工作流程

第一步:下载视频

# 设代理(中国大陆必需)
export http_proxy=http://127.0.0.1:7890 https_proxy=http://127.0.0.1:7890

# 下载最高画质,转为 H.264(国内平台兼容)
yt-dlp -f "bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio/best" \
  --recode-video h264 \
  -o "%(id)s_h264.mp4" \
  "YOUTUBE_URL"

⚠️ 不要用 -f best,会拿到 360p。必须用 bestvideo+bestaudio 分流下载。

第二步:提取字幕时间轴(关键步骤)

⚠️ 必须用 json3 格式,不能用 VTT。VTT 格式有 rolling cues(滚动字幕重复),直接解析会丢失开头字幕段,导致字幕延迟 2 秒以上。

# 下载 json3 格式自动字幕(word-level 精确时间轴)
yt-dlp --skip-download \
  --write-auto-subs \
  --sub-langs en \
  --sub-format json3 \
  -o "VIDEO_ID_json3.%(ext)s" \
  "YOUTUBE_URL"

然后运行解析脚本,将 json3 的 word-level 时间轴提取为句子段落:

uv run SKILL_DIR/scripts/parse_json3_subs.py \
  INPUT.json3 \
  OUTPUT_segments.json

输出格式:[{"start": 0.00, "end": 3.26, "text_zh_src": "English sentence"}, ...]

参数说明:
- 字幕按句号/问号/感叹号或 5 秒间隔分组
- 每段起始时间精确到该段第一个词的出现时间
- 首段从 0 秒开始(不会丢失开头内容)

第三步:翻译字幕

使用 LLM 将英文翻译为中文。批量处理(每批 20 条),规则:

  • 译文简洁,适合视频字幕(≤20 中文字/段)
  • 去除 [music] 等标签
  • 专有名词保持原文(Claude, YouTube, Reddit 等)
  • 输出在每段添加 text_zh 字段
uv run SKILL_DIR/scripts/translate_subs.py \
  INPUT_segments.json \
  OUTPUT_translated.json

> 注意:translate_subs.py 是批量调用 LLM 的辅助脚本。也可以直接用 agent/LLM 内联翻译,将 text_zh_src 翻译为 text_zh。

第四步:烧录字幕到视频(含抗锯齿)

这是核心步骤。ffmpeg 8.x 的 subtitles/ass filter 在某些平台不渲染,改用 Python PIL 逐帧绘制。

字幕参数(已验证):

参数 横屏 (1920x1080) 竖屏 (1080x1920)
字体 STHeiti Medium STHeiti Medium
字号 56px 58px
文字颜色 黑色 黑色
背景色 黄色半透明 (255,220,0,180) 同左
每行最大字数 15 15
底部边距 60px 200px
圆角半径 8px 8px
超采样倍数 2x 2x

字体路径: /System/Library/Fonts/STHeiti Medium.ttc
(PingFang.ttc 在 PIL 中不可用,用 STHeiti Medium 替代)

抗锯齿原理(2x 超采样):
1. 将每帧放大到 2 倍分辨率(如 1920x1080 → 3840x2160)
2. 在 2x 画布上用 2x 字号(112px)渲染字幕
3. 用 LANCZOS 算法缩回原始分辨率
4. 效果:文字边缘平滑,无锯齿

# 烧录字幕(含音频,流式管道不写临时文件)
uv run SKILL_DIR/scripts/burn_subtitles.py \
  --video INPUT_h264.mp4 \
  --subs INPUT_translated.json \
  --output OUTPUT_burned.mp4 \
  --font-size 56 \
  --supersample 2

处理流程(流式管道):

ffmpeg 解码 → Python PIL 逐帧渲染字幕 → ffmpeg 编码
         (rawvideo pipe,不写临时文件)

⚠️ 不要写临时 raw 文件,1080p × 30fps × 7分钟 ≈ 85GB,磁盘会满。

第五步(可选):生成预览

烧录完整视频前,先做 10-15 秒预览让用户确认字幕效果:

uv run SKILL_DIR/scripts/burn_subtitles.py \
  --video INPUT_h264.mp4 \
  --subs INPUT_translated.json \
  --output /tmp/preview.mp4 \
  --font-size 56 \
  --supersample 2 \
  --preview 15

完整示例

# 1. 下载视频
export http_proxy=http://127.0.0.1:7890 https_proxy=http://127.0.0.1:7890
yt-dlp -f "bestvideo[ext=mp4]+bestaudio[ext=m4a]/best" \
  --recode-video h264 -o "VIDEO_h264.mp4" "URL"

# 2. 下载 json3 字幕
yt-dlp --skip-download --write-auto-subs --sub-langs en \
  --sub-format json3 -o "VIDEO_json3.%(ext)s" "URL"

# 3. 解析时间轴
uv run SKILL_DIR/scripts/parse_json3_subs.py VIDEO_json3.en.json3 VIDEO_segments.json

# 4. 翻译(用 LLM 翻译 text_zh_src → text_zh)
# ... agent 内联翻译或用 translate_subs.py ...

# 5. 预览(15秒)
uv run SKILL_DIR/scripts/burn_subtitles.py \
  --video VIDEO_h264.mp4 --subs VIDEO_translated.json \
  --output /tmp/preview.mp4 --font-size 56 --supersample 2 --preview 15

# 6. 烧录完整视频
uv run SKILL_DIR/scripts/burn_subtitles.py \
  --video VIDEO_h264.mp4 --subs VIDEO_translated.json \
  --output VIDEO_burned.mp4 --font-size 56 --supersample 2

常见问题

字幕延迟 / 不同步

原因:使用了 VTT 格式字幕。YouTube VTT 有 rolling cues(每段重复前一段内容),解析时会丢失开头段落。
解决:必须用 json3 格式(--sub-format json3),它包含 word-level 的 tOffsetMs 时间戳。

字幕有锯齿

原因:PIL 直接在原分辨率画布渲染文字,边缘有像素锯齿。
解决:启用 --supersample 2,在 2x 分辨率渲染后用 LANCZOS 缩回。

字幕太小看不清

横屏 1080p 用 56px(之前 22px 太小已废弃)。竖屏用 58px。

ffmpeg subtitles filter 不工作

ffmpeg 8.x 的 subtitles/ass filter 在某些平台(macOS)不渲染。
解决:用 PIL 逐帧绘制(本方案已内置)。

磁盘空间不足

1080p 视频逐帧写 raw 临时文件约 85GB。
解决:burn_subtitles.py 使用流式管道(decode pipe → PIL → encode pipe),不写临时文件。

常见问题

5 问
答案由本站依据条目字段整理
YouTube 视频字幕烧录器怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_9e3b7930/youtube-subtitle-burner。安装方式为未标注。装完刷新技能列表或重开客户端。

YouTube 视频字幕烧录器支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

YouTube 视频字幕烧录器权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

YouTube 视频字幕烧录器收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

YouTube 视频字幕烧录器用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 2026-11-06。