Token导航 LogoToken导航TokenDH.com
研究检索需要联网github未标认证来源可访问许可证需确认审计提醒

boring-youtube-mining无聊的 YouTube 挖矿

Agent Skill

boring-youtube-mining 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

679

周安装

28

GitHub Stars

8

下载量

222
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:boring-youtube-mining(无聊的 YouTube 挖矿)
来源仓库:https://github.com/mrpaulscrivens/boring-zoo
仓库路径:skills/boring-youtube-mining
安装命令:
npx skills add https://github.com/mrpaulscrivens/boring-zoo --skill boring-youtube-mining
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/mrpaulscrivens/boring-zoo --skill boring-youtube-mining

简介

自动抓取指定 YouTube 频道最新视频转录文本并生成实用创意点子。

  • 单次 pass 完成下载与分析,无需反复交互确认细节。
  • 依赖 yt-dlp 命令行工具实现底层视频资源获取能力。
  • 输出内容需适配 World Code 设定的传播策略方向才有实际价值。
  • boring-youtube-mining 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

YouTube Mining — World Code Edition

You pull recent videos from pre-selected YouTube channels, download their transcripts, and generate content ideas the user can actually use. One pass. No back-and-forth.

Before Starting — Check Dependencies

Run this silently:

which yt-dlp

If yt-dlp is NOT installed, stop and tell the user:

yt-dlp is required but not installed. Install it for your platform: - macOS: brew install yt-dlp - Windows: winget install yt-dlp - Linux: pip install yt-dlp or your package manager - Universal: pip install yt-dlp Then run /boring-youtube-mining again.

Do not proceed without yt-dlp. Stop gracefully.


Before Starting — Load World Code (Optional)

Try to read these files silently:

  • world-code/voice.md — Voice rules (NOT applied to output — this is research, not published content)
  • world-code/conversation.md — Bridge structure (walls, struggles, goblins, treasures)

If conversation.md exists: Use the Bridge to filter and prioritize ideas. Every idea gets mapped to a wall, struggle, or goblin. Ideas that don't connect to any get deprioritized (still listed, just flagged as "no Bridge connection").

If conversation.md doesn't exist: Generate ideas purely from transcript analysis. Don't nag about missing files.


Step 1: Load Channel List

Read settings/youtube-channels.md.

If the file doesn't exist, create it with starter content and tell the user:

I created settings/youtube-channels.md with some example channels. Edit it in Obsidian to add the channels you want to mine, then run /boring-youtube-mining again.

Starter content for settings/youtube-channels.md:

# YouTube Channels

Add channels you want to mine for content ideas. Use the @ handle format.
Add a short description so Claude knows the context.

- @AlexHormozi - Business, offers, scaling
- @ChrisDo - Branding, pricing, positioning

Stop after creating the file. Let the user configure it first.


Step 2: Fetch Recent Videos

For each channel in the list, run:

yt-dlp --flat-playlist --playlist-items 1:5 --print "%(id)s | %(title)s | %(duration_string)s" "https://www.youtube.com/@{handle}/videos" 2>/dev/null

Process channels sequentially (not in parallel) to avoid rate limiting.

Present the results as a numbered list:

## Recent Videos

### @AlexHormozi
1. [dQw4w9WgXcQ] How to Price Your Offer (12:34)
2. [abc123def] The $100M Framework Nobody Uses (18:22)
...

### @ChrisDo
3. [xyz789ghi] Why Your Brand Is Invisible (9:45)
...

Ask the user:

Which videos should I analyze? Enter numbers (e.g., "1, 3, 5") or "all".

If a channel handle fails to resolve, report it and continue with the remaining channels:

Could not fetch videos from @BadHandle — check the handle in settings/youtube-channels.md.

Step 3: Download Transcripts

For each selected video, first check if a cached transcript exists:

ls "content/youtube-transcripts/{video_id}.md" 2>/dev/null

If cached: Skip download, read from cache. Tell the user:

Transcript for "{title}" already cached — skipping download.

If not cached: Download the auto-generated English captions:

yt-dlp --write-auto-sub --sub-lang en --sub-format vtt --skip-download -o "content/youtube-transcripts/%(id)s" "https://www.youtube.com/watch?v={video_id}" 2>/dev/null

Then clean the VTT file and save as markdown. Create the directory if needed:

mkdir -p "content/youtube-transcripts"

Cleaning VTT Captions

The raw VTT file contains timestamps and duplicate lines. Clean it:

  1. Strip all timestamp lines (lines matching XX:XX:XX.XXX --> XX:XX:XX.XXX)
  2. Strip the WEBVTT header and Kind:/Language: metadata lines
  3. Remove duplicate consecutive lines (VTT repeats lines across cue boundaries)
  4. Remove position/alignment tags like <c>, </c>, align:start position:0%
  5. Join into paragraphs (group sentences, add line breaks at natural pauses)

Save as content/youtube-transcripts/{video_id}.md with frontmatter:

---
video_id: {video_id}
title: {video title}
channel: {channel handle}
date_fetched: {YYYY-MM-DD}
url: https://www.youtube.com/watch?v={video_id}
---

# {video title}

**Channel:** {channel handle}
**URL:** https://www.youtube.com/watch?v={video_id}

## Transcript

{cleaned transcript text}

Delete the raw VTT file after conversion.

Edge Cases

  • No English auto-captions available: Skip the video with a message: No English captions available for "{title}" — skipping.
  • Very long transcripts (estimated 10,000+ words): Chunk-summarize before idea generation. Break into ~3,000 word sections, summarize each section's key points, then use the summaries for idea generation. Note in the output that the transcript was summarized.

Step 4: Generate Ideas

For each transcript, generate ideas through two lenses:

Lens 1: Direct Response

How would the user respond to this video's ideas? Generate 2-3 ideas:

  • Agree & Expand — They made a point you also believe. What's your unique angle on it?
  • Disagree & Counter — They said something you see differently. What's your take?
  • Build On — They touched on something but stopped short. Where would you take it?

Lens 2: Gap Ideas

What's missing? Generate 1-2 ideas:

  • Topics they mentioned but didn't go deep on
  • Adjacent topics their audience would care about but weren't covered
  • The question their video raises but doesn't answer

Per Idea, Include:

FieldDescription
Idea titleSharp, specific — not "Thoughts on pricing" but "Why Hourly Pricing Kills Solo Businesses"
AngleDirect Response (agree/disagree/expand) or Gap
SourceVideo title + timestamp range if identifiable
Your take (1-2 sentences)The core argument you'd make
Bridge mappingWhich wall/struggle/goblin this connects to (if conversation.md exists)
Content typePost, thread, email, essay, video script, carousel
Draft hookOne opening line that would stop the scroll

Quality Over Quantity

  • 3-5 ideas per video. Not 10. Not 20. The best 3-5.
  • Every idea must pass the "would I actually make this?" test
  • If an idea is generic ("Content is important"), kill it
  • Ideas without a clear angle aren't ideas — they're topics. Topics aren't useful.

Bridge-First Filtering (when conversation.md exists)

After generating all ideas, sort them:

  1. Strong Bridge connection — directly maps to a wall, struggle, or goblin
  2. Loose Bridge connection — related to the user's world but not a direct map
  3. No Bridge connection — interesting but disconnected from their World Code

Group 3 still gets listed but flagged. The user decides if it's worth pursuing.


Step 5: Save Output

Write the output file to content-ideas/youtube-mining-{YYYY-MM-DD}.md:

---
type: youtube-mining
date: {YYYY-MM-DD}
channels_mined: [{list of channels}]
videos_analyzed: {count}
ideas_generated: {count}
---

# YouTube Mining — {YYYY-MM-DD}

## Sources

| Video | Channel | Ideas |
|-------|---------|-------|
| {title} | {channel} | {count} |
...

## Ideas

### From: "{video title}" (@channel)

#### 1. {Idea Title}

- **Angle:** {Direct Response — Agree/Disagree/Expand | Gap}
- **Source:** {video title}, ~{timestamp context if available}
- **Your take:** {1-2 sentences}
- **Bridge:** {wall/struggle/goblin or "No direct connection"}
- **Content type:** {post/thread/email/essay/video/carousel}
- **Draft hook:** "{opening line}"

---

{repeat for each idea}

## Bridge Summary

### Strong Connections
- {idea} → {wall/struggle}
...

### No Connection
- {idea} — interesting but not tied to your current World Code
...

## Next Steps

- Pick an idea and run `/boring-copywriting` to draft it
- Run `/boring-social-content` to turn an idea into platform-specific posts
- Run `/boring-remix` to generate multiple angles on your favorite idea

Step 6: Wrap Up

After saving, tell the user:

Saved {X} ideas to content-ideas/youtube-mining-{date}.md. {count} ideas with strong Bridge connections, {count} without. Pick an idea and I can draft it with /boring-copywriting, turn it into social posts with /boring-social-content, or remix it with /boring-remix.

That's it. No recap of the process. No lecture on content strategy.


Key Principles

  • One pass, full output. Fetch → transcripts → ideas → save. No stopping to ask "should I continue?"
  • Research output, not published content. No voice applied. No polishing. Raw strategic ideas.
  • Caching is non-negotiable. Never re-download a transcript. Check the cache first, always.
  • Bridge-first when available. The World Code connection is what makes this useful instead of just interesting.
  • Sequential channel processing. Don't hammer YouTube with parallel requests.
  • 3-5 quality ideas per video. Restraint is the skill. Anyone can generate 50 mediocre ideas.
  • Draft hooks matter. An idea without a hook is just a topic. Topics are cheap.
  • Don't explain the process. The user doesn't need a play-by-play of "now I'm downloading transcripts." Just do it and show the results.

Related Skills

  • boring-copywriting — Draft full content from a mined idea
  • boring-social-content — Turn ideas into platform-specific posts
  • boring-remix — Generate multiple angles on a single idea
  • boring-content-strategy — Broader content planning using mined insights

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

38.06%
按下载量换算84

Claude

29.26%
按下载量换算65

Cursor

19.13%
按下载量换算42

Gemini CLI

9.87%
按下载量换算22

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

可疑

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills