Loading...
Loading...
Compare original and translation side by side
which yt-dlpyt-dlpis required but not installed.yt-dlpInstall it for your platform:
- macOS:
brew install yt-dlp- Windows:
winget install yt-dlp- Linux:
or your package managerpip install yt-dlp- Universal:
pip install yt-dlpThen runagain./boring-youtube-mining
yt-dlpwhich yt-dlpyt-dlp需要但未安装。yt-dlp请根据你的平台进行安装:
- macOS:
brew install yt-dlp- Windows:
winget install yt-dlp- Linux:
或使用你的包管理器pip install yt-dlp- 通用方式:
pip install yt-dlp然后重新运行。/boring-youtube-mining
yt-dlpworld-code/voice.mdworld-code/conversation.mdworld-code/voice.mdworld-code/conversation.mdsettings/youtube-channels.mdI createdwith some example channels. Edit it in Obsidian to add the channels you want to mine, then runsettings/youtube-channels.mdagain./boring-youtube-mining
settings/youtube-channels.mdundefinedsettings/youtube-channels.md我已创建并添加了示例频道。请在Obsidian中编辑该文件,添加你想要挖掘的频道,然后重新运行settings/youtube-channels.md。/boring-youtube-mining
settings/youtube-channels.mdundefined
Stop after creating the file. Let the user configure it first.
---
创建文件后停止操作,等待用户完成配置。
---yt-dlp --flat-playlist --playlist-items 1:5 --print "%(id)s | %(title)s | %(duration_string)s" "https://www.youtube.com/@{handle}/videos" 2>/dev/nullundefinedyt-dlp --flat-playlist --playlist-items 1:5 --print "%(id)s | %(title)s | %(duration_string)s" "https://www.youtube.com/@{handle}/videos" 2>/dev/nullundefined
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`.
---
询问用户:
> 我应该分析哪些视频?请输入编号(例如:"1, 3, 5")或输入"all"。
**若频道用户名无法解析**,则报告该问题并继续处理剩余频道:
> 无法从@BadHandle获取视频 — 请检查`settings/youtube-channels.md`中的用户名是否正确。
---ls "content/youtube-transcripts/{video_id}.md" 2>/dev/nullTranscript for "{title}" already cached — skipping download.
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/nullmkdir -p "content/youtube-transcripts"ls "content/youtube-transcripts/{video_id}.md" 2>/dev/null视频"{title}"的字幕已缓存 — 跳过下载。
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/nullmkdir -p "content/youtube-transcripts"XX:XX:XX.XXX --> XX:XX:XX.XXXWEBVTTKind:Language:<c></c>align:start position:0%content/youtube-transcripts/{video_id}.md---
video_id: {video_id}
title: {video title}
channel: {channel handle}
date_fetched: {YYYY-MM-DD}
url: https://www.youtube.com/watch?v={video_id}
---XX:XX:XX.XXX --> XX:XX:XX.XXXWEBVTTKind:Language:<c></c>align:start position:0%content/youtube-transcripts/{video_id}.md---
video_id: {video_id}
title: {video title}
channel: {channel handle}
date_fetched: {YYYY-MM-DD}
url: https://www.youtube.com/watch?v={video_id}
---
Delete the raw VTT file after conversion.
转换完成后删除原始VTT文件。No English captions available for "{title}" — skipping.
视频"{title}"无英文字幕可用 — 跳过。
| Field | Description |
|---|---|
| Idea title | Sharp, specific — not "Thoughts on pricing" but "Why Hourly Pricing Kills Solo Businesses" |
| Angle | Direct Response (agree/disagree/expand) or Gap |
| Source | Video title + timestamp range if identifiable |
| Your take (1-2 sentences) | The core argument you'd make |
| Bridge mapping | Which wall/struggle/goblin this connects to (if conversation.md exists) |
| Content type | Post, thread, email, essay, video script, carousel |
| Draft hook | One opening line that would stop the scroll |
| 字段 | 描述 |
|---|---|
| 创意标题 | 清晰具体 — 不要使用“关于定价的思考”,而要用“按时计费为何会拖垮个体创业者” |
| 角度 | 直接回应(认同/反对/拓展)或缺口 |
| 来源 | 视频标题 + 可识别的时间范围 |
| 你的观点(1-2句话) | 你要表达的核心论点 |
| Bridge映射 | 该创意关联到的壁垒/困境/障碍(若conversation.md存在) |
| 内容类型 | 帖子、推文、邮件、文章、视频脚本、轮播图 |
| 草稿钩子 | 能吸引用户停留的开场句 |
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}
---content-ideas/youtube-mining-{YYYY-MM-DD}.md---
type: youtube-mining
date: {YYYY-MM-DD}
channels_mined: [{挖掘的频道列表}]
videos_analyzed: {数量}
ideas_generated: {数量}
---| Video | Channel | Ideas |
|---|---|---|
| {title} | {channel} | {count} |
| ... |
| 视频 | 频道 | 创意数量 |
|---|---|---|
| {标题} | {频道} | {数量} |
| ... |
/boring-copywriting/boring-social-content/boring-remix
---/boring-copywriting/boring-social-content/boring-remix
---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, turn it into social posts with/boring-copywriting, or remix it with/boring-social-content./boring-remix
已将{X}个创意保存至。content-ideas/youtube-mining-{date}.md其中{count}个创意与Bridge强关联,{count}个无关联。你可以选择一个创意,我将通过生成草稿,或通过/boring-copywriting转化为社交帖子,也可以通过/boring-social-content生成多个角度。/boring-remix