Back to skills
extension
Category: Productivity & OfficeAPI key requirement unconfirmed

youtube-collect

|

personAuthor: sunny31221hubOpenAPI

YouTube 采集

安装方法

  1. 先问使用者用的是什么 AI 工具(如 Claude Code、Codex、Cursor),回答记作 X

  2. 只安装给 X,不安装或链接其他任何工具:

    npx -y --registry=https://registry.npmmirror.com skills add https://modelscope.cn/skills/sunny31221/youtube-collect -a X -y
    

    --registry 为 npmmirror 镜像,保证国内不翻墙也能装;-a X 表示只装给 X 这一个工具) X 不在上述命令支持范围时,按该工具自身的技能机制安装,装完确认 X 能识别本技能即可

  3. 装完后询问是否现在使用本技能

依赖什么

  • yt-dlp:取字幕、视频信息、封面图的命令行工具
  • Python 3:yt-dlp 的运行环境

装不上 / 跑不通怎么办:

| 情况 | 处理 | |---|---| | 没有 yt-dlp | 按下方「去哪装」装一次 | | 报错 Sign in to confirm you're not a bot | 命令加 --cookies-from-browser chrome(见流程第 0 步) | | yt-dlp 装了但取不到字幕 | 该视频可能关闭了字幕。跳过字幕步骤,在 02_笔记信息.md 里写明「无字幕」,仅采集标题与数据 | | 版本太旧报错 | 升级 yt-dlp(YouTube 接口变动频繁,旧版常失效) |

去哪装(推荐降级链:国际源失败 → 国内镜像):

# macOS
brew install yt-dlp                                   # 国际源
pip3 install -U yt-dlp                                # 备选(官方 PyPI)

# 国内镜像(上面两条都慢或失败时)
pip3 install -U yt-dlp -i https://pypi.tuna.tsinghua.edu.cn/simple      # 清华
pip3 install -U yt-dlp -i https://mirrors.aliyun.com/pypi/simple/       # 阿里云

# Windows
winget install yt-dlp
pip install -U yt-dlp -i https://pypi.tuna.tsinghua.edu.cn/simple

装完验证:

yt-dlp --version

触发场景

  • "采集这个 YouTube 视频" + 链接
  • "YouTube 入库" / "把这条 YouTube 链接存进对标素材"
  • 采集编排器识别到 youtube.com / youtu.be 链接后分流到本技能

输出位置

AI第二大脑/02_规律研究/对标内容采集/YouTube/
└── NNN_标题_频道_视频ID/
    ├── 01_原始素材/
    │   └── 01-封面图/
    │       └── cover.jpg
    ├── 02_笔记信息.md
    ├── 04_文案结构化梳理.md
    └── 05_视频脚本.md
  • 编号:取目标目录已有最大编号 +1(三位补零),不假设从 001 开始
  • 文件夹名编号_标题_频道_视频ID,标题与频道名里的 / 换成全角「/」
  • 去重:同一视频 ID 已存在时跳过,不重复建文件夹

流程

0. 带上浏览器 cookies

YouTube 现在会把无 cookies 的请求挡成机器人(报错 Sign in to confirm you're not a bot)。所有 yt-dlp 命令都加:

--cookies-from-browser chrome

换成 edge / firefox / safari 也行,用你本机登录过 YouTube 的那个浏览器。取不到 cookies 时先让使用者在那个浏览器里打开一次 YouTube 并登录。

1. 读视频信息

yt-dlp --cookies-from-browser chrome --skip-download --no-warnings --print "%(id)s|%(title)s|%(channel)s|%(view_count)s|%(duration_string)s|%(upload_date)s" "<链接>"

2. 取字幕

先看这个视频有哪些字幕:

yt-dlp --cookies-from-browser chrome --list-subs --skip-download "<链接>"

按优先级选:中文人工字幕 → 中文自动字幕 → 英文人工字幕 → 英文自动字幕。

# 中文字幕(zh-Hans / zh-CN / zh 按上一步列出的实际语言代码填)
yt-dlp --cookies-from-browser chrome --skip-download --write-auto-subs --write-subs \
  --sub-langs "zh-Hans,zh-CN,zh" --sub-format "vtt" \
  -o "<素材文件夹>/05_视频脚本.%(ext)s" "<链接>"

# 中文都没有时退回英文
yt-dlp --cookies-from-browser chrome --skip-download --write-auto-subs --write-subs \
  --sub-langs "en.*" --sub-format "vtt" \
  -o "<素材文件夹>/05_视频脚本.%(ext)s" "<链接>"

VTT 里带时间轴、&nbsp; 和自动字幕的滚动重复行。转逐字稿时去掉这些:删掉 --> 时间轴行、去掉 HTML 标签、把 &nbsp; 换成空格、丢掉与前一行完全相同的行。剩下的文字照抄,不改写、不顺句、不补标点——它是素材原文。

字幕是自动生成时可能有误转词,在 05_视频脚本.md 里注明「自动字幕,可能含误转词」。

3. 建素材文件夹

先跑脚本把文件夹建出来(编号、去重、目录结构由脚本决定,不让 AI 数):

python3 "<本技能目录>/scripts/create_note_folder.py" \
  --platform YouTube --type 视频 \
  --id <视频ID> --title "<标题>" --author "<频道名>" \
  --published <YYYY-MM-DD> --url "<链接>"

返回 JSON 里的 folder 就是素材文件夹路径,后面所有文件都写进它。

4. 下载封面

yt-dlp --cookies-from-browser chrome --skip-download --write-thumbnail --convert-thumbnails jpg \
  -o "<素材文件夹>/01_原始素材/01-封面图/cover.%(ext)s" "<链接>"

5. 写 02_笔记信息.md

固定结构:

# <标题>

| 字段 | 内容 |
|------|------|
| 编号 | <三位编号> |
| 视频ID | <id> |
| 来源 | YouTube |
| 频道 | <频道名> |
| 播放量 | <数字>(<采集日期> 实测) |
| 时长 | <时长> |
| 发布时间 | <YYYY-MM-DD> |
| 原文链接 | <链接> |
| 入库时间 | <YYYY-MM-DD> |

---

## 视频简介

<简介原文;没有就写「无」>

## 章节

<视频自带章节,一行一条;没有就写「无」>

播放量必须来自本次实测,不沿用别处看到的数字。

6. 写 05_视频脚本.md

逐字稿很长时,先整理结构化部分,再把逐字稿原样放在文末存档:

# 视频脚本(结构化整理):<标题>

> 来源:YouTube <频道名>(播放 <播放量>);转录:<官方字幕直取 / 自动字幕,可能含误转词>

---

## 一、核心观点

<3-8 条,每条一句话>

## 二、全文整理(按核心观点分组)

### 观点 N:<小标题>

<这一段的原话要点,可引原句>

---

## 三、提取的文字(转录原文存档,逐句原样)

<逐字稿,不加标点、不改写>

7. 写结构化梳理

05_视频脚本.md 是原始素材,还要再出一份便于下游提炼规律的梳理件 04_文案结构化梳理.md

# 文案结构化梳理

> 来源:<编号> <标题>([[05_视频脚本.md]])
> 梳理日期:<YYYY-MM-DD>
> 说明:本文件做结构化梳理:中心思想、核心论点、逐段小标题 + 一句话总结。总结保留原文的具体论据、数据与比喻,不删减关键信息;完整原文见 05 号文件。

---

## 一、中心思想

<一段话说清这条视频主张什么;下面附一句可直接引用的一句话说概括>

## 二、核心论点(N 条)

1. **<论点>**:<展开,保留原文的数据、例子、比喻>

(逐条列完)

## 三、逐段梳理

### <原文小标题>|<一句话总结>

- **一句话总结**:<这一段讲了什么>
- **原文示例**:<引原句,可核对>
- **可复用点**:<这条做法在哪能用>

(按原文段落顺序,一段一条)

## 四、结构规律提炼

<3-5 条,讲这条视频的骨架怎么搭的:几段式、每段承担什么、开头与结尾各做什么>

要点:梳理件里的每一句都要能追回 05 的原文;不新增视频里没有的数据或例子。

8. 完成后报告

报告:标题、频道、播放量、字幕来源(官方 / 自动 / 无)、落盘路径。有跳过或失败的项目一并说明。

采集完实际长这样

2026-09-12 实测两条,两种情形都遇到过:

有字幕的(Kevin Stratvert《Claude Skills Explained》,11:00,自动英文字幕):

对标内容采集/YouTube/
└── 002_Claude Skills Explained教程_Kevin Stratvert_wO8EboopboU/
    ├── 01_原始素材/01-封面图/cover.jpg
    ├── 02_笔记信息.md      元信息表 + 视频简介 + 章节
    ├── 04_文案结构化梳理.md 中心思想 + 核心论点 + 逐段梳理 + 结构规律
    └── 05_视频脚本.md      核心观点 + 全文整理 + 文末逐字稿存档(214 行 / 约 1 万字)

逐字稿的头部:

# 视频脚本(结构化整理):Claude Skills Explained - Step-by-Step Tutorial for Beginners

> 来源:YouTube Kevin Stratvert(播放 364,436);转录:自动字幕,可能含误转词

---

## 一、核心观点

...

## 三、提取的文字(转录原文存档,逐句原样)

Move over ChatGPT, Claude just released Agent
Skills. That means you can add custom abilities
to Claude, Claude Desktop, and Claude Code.

没有字幕的(Nate Herk《I Deleted All My Claude Skills》,11:56,人工字幕和自动字幕都没有):

只落 01_原始素材/01-封面图/cover.jpg + 02_笔记信息.md05_视频脚本.md 不建。02_笔记信息.md 里写明:

## 视频简介

<简介原文>

## 章节

无(该视频未提供字幕,无法转录逐字稿)

不要用简介冒充逐字稿,也不要用 AI 摘要顶替转写 —— 没有就是没有,写明比编出来有用。

铁律

  1. 逐字稿照抄:字幕原文不改写、不润色、不补标点
  2. 数据实测:播放量来自本次 yt-dlp 输出,不估、不沿用
  3. 无字幕就说无字幕:不用 AI 摘要冒充转写,不用简介冒充逐字稿
  4. 去重靠视频 ID:同一视频不重复入库