视频摘要器
nate-b-jones-digest
by arpee
Monitor Nate B Jones's YouTube channel, pull each new video transcript (YouTube captions or auto-transcribed audio), summarize it with an abstract + bullet highlights + reference links, and distribute the digest via email, chat, and/or a document per user-configured outputs.
安装
claude skill add --url https://github.com/openclaw/skills文档
Overview
Use this skill whenever you need to keep Richard (or any configured subscriber) up to date on new Nate B Jones videos. The workflow:
- Detect a new upload on https://www.youtube.com/@NateBJones.
- Retrieve the transcript (official captions first, Whisper fallback if missing).
- Summarize the video into an abstract, bullet highlights, and a "References & Links" list.
- Publish according to the installation's config: email, Control UI/Telegram chat, Google Doc, Markdown file, etc.
All runtime options live in references/config-example.yml. Copy that file, rename it (e.g. config.yml), fill in your preferences, and point the workflow to it.
1. Configure
- Copy
references/config-example.ymltoconfig.yml(or any path you prefer). - Fill in:
channel_urlorchannel_id(the example already targets @NateBJones).poll_cron(default daily at 09:00 local).outputs.email.to,outputs.chat.targets,outputs.doc.type/path.- API credentials: YouTube Data API key (for upload polling), Gmail/Google Docs auth handled via
gogskill.
- Store the config path somewhere easy to reference (e.g.
skills/nate-b-jones-digest/config.yml).
2. Poll for new videos
- Preferred: use the YouTube Data API
playlistItemsendpoint for the channel's uploads playlist. Example:bashcurl "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet,contentDetails&maxResults=5&playlistId=UPLOADS_PLAYLIST_ID&key=$YOUTUBE_API_KEY" - Lightweight alternative: use
yt-dlpto check the latest upload ID without downloading video:bashyt-dlp --flat-playlist --dump-json "https://www.youtube.com/@NateBJones/videos" | head -n 1 > latest.json jq -r '.id' latest.json - Compare the discovered video ID with the last processed ID stored in your run logs (e.g., a simple
last_video.txtor a Notion/Sheets tracker). Only proceed if it's new.
3. Fetch transcripts
- Try official captions via
youtube_transcript_api:pythonfrom youtube_transcript_api import YouTubeTranscriptApi transcript = YouTubeTranscriptApi.get_transcript(video_id, languages=['en']) text = '\n'.join([chunk['text'] for chunk in transcript]) - If captions are unavailable, download audio and run Whisper:
bash
yt-dlp -f 140 -o audio.m4a "https://www.youtube.com/watch?v=$VIDEO_ID" whisper audio.m4a --model medium --language en --task transcribe --output_format txt - Save the raw transcript alongside metadata (title, URL, publish date, duration). Keep it in your logs for traceability but do not distribute it by default.
4. Summarize
Produce:
- Abstract (2–3 sentences) summarizing the thesis of the video.
- Highlights – 4–6 bullets (verb-led). Mention timestamps where possible (e.g.,
[05:42] Key insight). - References & Links – always include the YouTube URL and any external resources the video mentions.
Template:
# Nate B Jones Daily Digest — {{DATE}}
**Video:** {{TITLE}} ({{DURATION}}) → {{URL}}
**Abstract:** ...
## Highlights
- ...
## References & Links
- {{URL}}
- ...
5. Publish per config
Email (uses gog skill)
Do not attach the transcript unless someone explicitly asks for it—email only the digest body linked above.
GOG_KEYRING_PASSWORD=... gog gmail send \
--to "{{config.outputs.email.to}}" \
--subject "Nate B Jones Digest — {{DATE}}" \
--body-file summary.txt \
--body-html summary.html
Chat
- Control UI / Telegram: paste the summary or use the relevant messaging command (e.g.,
message action=send ...). - Respect
config.outputs.chat.targets(list of surfaces).
Document archive
- Google Docs:
bash
gog docs create "Nate B Jones Digest {{DATE}}" --body summary.md gog docs share <docId> --email {{config.outputs.doc.share_with}} - Markdown on disk: write to the specified path in
outputs.doc.path.
6. Automate (optional)
- Create a cron job or OpenClaw cron entry using
poll_cronfrom config. Each run should:- Poll for new video.
- If found, fetch transcript, summarize, publish, log the video ID.
- Keep lightweight audit logs (CSV or JSON) so you can prove what was sent and avoid duplicate emails.
References
references/config-example.yml— copy/edit this to match each installation.youtube_transcript_apidocs: https://pypi.org/project/youtube-transcript-api/- Whisper CLI: https://github.com/openai/whisper
Stick to the playbook format every time so downstream consumers get consistent digests, and always fall back to Whisper if captions are missing.
相关 Skills
文档共著
by anthropics
围绕文档、提案、技术规格、决策记录等写作任务,按上下文收集、结构迭代、读者测试三步协作共创,减少信息遗漏,写出更清晰、经得起他人阅读的内容。
✎ 写文档、方案或技术规格时容易思路散、信息漏,它用结构化共著流程帮你高效传递上下文、反复打磨内容,还能从读者视角做验证。
内部沟通
by anthropics
按公司常用模板和语气快速起草内部沟通内容,覆盖 3P 更新、状态报告、领导汇报、项目进展、事故复盘、FAQ 与 newsletter,适合需要统一格式的团队沟通场景。
✎ 按公司偏好的模板快速产出状态汇报、领导更新和 FAQ,既省去反复改稿,也让内部沟通更统一、更专业。
平面设计
by anthropics
先生成视觉哲学,再落地成原创海报、艺术画面或其他静态设计,输出 .png/.pdf,强调构图、色彩与空间表达,适合需要高完成度视觉成品的场景。
✎ 做海报、插画或静态视觉稿时,用它能快速产出兼顾美感与版式的PNG/PDF成品,原创设计更省心,也更适合规避版权风险。
相关 MCP 服务
by nirholas
免费的加密新闻聚合 MCP,汇集 Bitcoin、Ethereum、DeFi、Solana 与 altcoins 资讯源。
by ProfessionalWiki
让 Large Language Model 客户端无缝连接任意 MediaWiki 站点,可创建、更新、搜索页面,并通过 OAuth 2.0 安全管理内容。
by roomi-fields
Automate Google NotebookLM — Q&A with citations, audio, video, content generation