agentleFS
anneheartrecordanneheartrecord/charles-skill/skills/florilegium/SKILL.md

tashanzhishi

Skill3 starsChanged 3 months agoMITView on GitHub

Use when 用户给出 YouTube/B站/播客链接,或一段视频文字稿、字幕、他人文章,要整理并剪藏成 20-knowledge/他山之石 下的「他人观点」笔记。触发词:用他山之石、剪藏到他山之石、整理成他山之石文档、把这个视频/链接存档、归档他人观点。

The file

Files
SKILL.md

剪藏他人观点到「他山之石」(tashanzhishi)

Overview

把一个视频、播客或文章的内容,整理成一篇可以直接阅读的文章,存进 20-knowledge/他山之石/。

核心原则:产出的是给读者看的文章,不是观点汇总,也不是逐条「作者认为……」的清单。忠实于来源、把事实和推测分清、标注作者立场,但用流畅的文章呈现。这不是写用户自己署名的内容,所以不套用户文风、也不跑 de-ai-flavor。输出永远中文。

何时用 / 不用

用:用户给链接或粘贴文字稿,说要「剪藏到他山之石」「整理成他山之石文档」「归档这个观点」。 不用:用户要写自己署名的推文/文章(那是写作任务,走文风流程)。

输入两种来源

  1. 链接(YouTube/B站/播客等)→ 用 yt-dlp 抓元数据 + 字幕。
  2. 粘贴的文字/字幕/文章 → 直接用,跳过抓取。

流程

1. 拿到原文

链接来源,运行本目录的脚本:

bash ~/.claude/skills/tashanzhishi/fetch-transcript.sh "<链接>"          # 默认读 Chrome 登录态
bash ~/.claude/skills/tashanzhishi/fetch-transcript.sh "<链接>" safari   # 换浏览器:safari/brave/edge/firefox

它会打印一个临时目录路径,里面有 meta.txt(标题 ||| 作者 ||| 上传日期 ||| 链接 ||| 时长)和一个 .vtt 字幕文件。YouTube 现在要求登录态才能下字幕,脚本默认读 Chrome 的 cookies,所以需要在 Chrome 里登录过 YouTube。

把字幕清洗成纯文本再读:

python3 ~/.claude/skills/tashanzhishi/vtt2text.py "<那个目录>"/sub.*.vtt > /tmp/transcript.txt

vtt2text.py 会去掉时间轴、内联标签、HTML 实体,并合并自动字幕的滚动重复。然后用 Read 读 meta.txt 和 /tmp/transcript.txt。注意:视频结尾常有重复的「精彩片段」集锦,蒸馏时忽略那段。

2. 写成一篇可读文章

  • 清洗自动字幕的识别错误、逐字空格、错的专有名词(公司名、人名、术语、英文缩写),但不改作者语气和立场。
  • 用流畅的中文写成一篇文章,把读者当杂志读者:正常标点(用冒号、写完整句子),不要「短语。完整句。」这种断裂节奏,也不要「1. 作者认为 X」的清单堆叠。
  • 按内容自然分几个 ## 小标题导航;attribution 自然融进句子(他算了笔账、她的观察是、他给了个尺子)。
  • 事实与推测分清:可核实的当事实写,推测和判断点明是作者观点。结尾用一段「可信与存疑」的编辑提醒收尾。
  • 可以摘 1 到 5 句原话金句融进正文,但别让全文变成摘抄。

3. 写文件

写到 20-knowledge/他山之石/<简洁中文标题>.md,文件名不含斜杠。captured 用 date +%F 的当天日期。结构见下。

文档结构(可读文章,不是观点汇总)

---
tags: [他山之石, <领域标签>]
source: <平台> · <作者/频道>
author: <作者,未知写"未注明">
url: <原始链接>
captured: <YYYY-MM-DD>
type: 他人观点
---

# <文章式标题>

> 来源与立场:一句话说清作者是谁、有没有带货/特定立场,哪里要打折看。

<开头一两句,把读者带进来。>

## <小标题>
<流畅文章正文,自然融入 attribution,事实与推测分清。>

## <小标题>
...

---
**可信与存疑**:哪些是可核实事实(回到原始来源核对),哪些是作者的推测/判断。

写完后

简单报告:写到哪个文件、抓取还是粘贴、有没有抓到字幕。不要同步到 X 或个人网站。

常见错误

错误纠正
写成 bullet 观点汇总 / 「1. 作者认为…」写成可直接阅读的文章
短语加句号的断裂标点正常完整句子、该用冒号用冒号
用用户的犀利文风重写保持中立可读,不套文风、不去 AI 味
把推测当事实写事实归事实,推测点明是作者观点
漏掉作者的带货/立场写进开头的「来源与立场」
字幕抓不到就编内容让用户粘贴或换方案,绝不臆造
一篇塞多个来源一个来源一篇

参考样例

20-knowledge/他山之石/ 下的成品(SpaceX-IPO、跨境券商被查、AI时代普通人如何入局 等)就是目标形态,照它们的可读文章风格来。

抓不到字幕的视频怎么办(音频兜底)

YouTube 对第三方工具收紧了两道门:很多视频字幕要 PO token,有些干脆禁用;音频/视频强制 SABR 流,没 PO token 直接 403。fetch-transcript.sh 抓不到字幕时,走音频兜底(需先跑过 setup.sh):

# 1) 下载音频(fetch-audio.sh 会自动启动 bgutil 提供器解锁 SABR/PO-token)
AUDIO=$(bash ~/.claude/skills/tashanzhishi/fetch-audio.sh "<链接>")
# 2) 本地转写(faster-whisper,无需 ffmpeg;中文传 zh,质量优先用 large-v3)
~/.local/share/tashanzhishi/venv/bin/python \
  ~/.claude/skills/tashanzhishi/transcribe.py "$AUDIO" small zh > /tmp/transcript.txt

然后读 /tmp/transcript.txt,按正常流程写成文章。注意:small 模型对中英混杂的专有名词会有错,蒸馏时清一下,必要时换 large-v3 重转。

音频也下不动时,让用户把 YouTube 的「显示转写 / Show transcript」复制粘贴过来。

NotebookLM MCP 不行:它的 add_source 不支持 YouTube(只能抓网页或粘贴文本),用不了。

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.