openclaw 网盘下载
OpenClaw

技能详情(站内镜像,无评论)

首页 > 技能库 > Nate B Jones Digest

Monitor Nate B Jones's YouTube channel, pull each new video transcript (YouTube captions or auto-transcribed audio), summarize it with an abstract + bullet h...

通信与消息

许可证:MIT-0

MIT-0 ·免费使用、修改和重新分发。无需归因。

版本:v1.0.0

统计:⭐ 0 · 31 · 0 current installs · 0 all-time installs

0

安装量(当前) 0

🛡 VirusTotal :良性 · OpenClaw :可疑

Package:arpee/nate-b-jones-digest

安全扫描(ClawHub)

  • VirusTotal :良性
  • OpenClaw :可疑

OpenClaw 评估

The skill's stated purpose (monitor a YouTube channel and publish summaries) matches its instructions, but there are notable mismatches and a risky default config (an external email recipient) that make it worth reviewing closely before use.

目的

The name and description match the runtime instructions: polling a channel, fetching transcripts (captions or Whisper), summarizing, and publishing. The required tools referenced in SKILL.md (youtube_transcript_api, yt-dlp, Whisper, and a 'gog' helper for Google actions) are coherent with the described workflow. However, the skill metadata declares no required credentials or env vars while the instructions clearly expect a YouTube API key, Goo…

说明范围

Instructions explicitly tell the agent to poll YouTube, download audio (yt-dlp), run Whisper, save transcripts and logs, and publish digests via email/chat/docs. These are within the stated purpose. Concerningly, the included config.yml (not just the example) is pre-populated with outputs.email.enabled:true and a concrete recipient (richard@saito.tech). If someone runs the workflow without editing config.yml, summaries (and potentially credent…

安装机制

Instruction-only skill (no install spec, no code files with executable installers). This minimizes install-time risk; runtime will call external CLIs (yt-dlp, whisper, gog) which must be installed separately by the operator. No suspicious download URLs or archive extraction are present.

证书

The workflow legitimately needs a YouTube API key (or yt-dlp) and Google/Gmail/Docs access to publish via the gog helper, and chat/webhook tokens for chat outputs. None of these are declared in the skill's metadata. Additionally, the provided config.yml already enables email delivery to an external address (richard@saito.tech) — that is a disproportionate default (it routes data to a third party). The skill also demonstrates use of an environm…

持久

The skill is not always-enabled and does not request elevated platform privileges. It suggests creating a cron job or OpenClaw cron entry to run periodically, which is consistent with its monitoring purpose. It does write logs and a last-video marker in its own directory; that is expected behavior.

安装(复制给龙虾 AI)

将下方整段复制到龙虾中文库对话中,由龙虾按 SKILL.md 完成安装。

请把本段交给龙虾中文库(龙虾 AI)执行:为本机安装 OpenClaw 技能「Nate B Jones Digest」。简介:Monitor Nate B Jones's YouTube channel, pull each new video transcript (YouTube…。
请 fetch 以下地址读取 SKILL.md 并按文档完成安装:https://raw.githubusercontent.com/openclaw/skills/refs/heads/main/skills/arpee/nate-b-jones-digest/SKILL.md
(来源:yingzhi8.cn 技能库)

SKILL.md

打开原始 SKILL.md(GitHub raw)

---
name: nate-b-jones-digest
description: 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.
---

## 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:

1. Detect a new upload on https://www.youtube.com/@NateBJones.
2. Retrieve the transcript (official captions first, Whisper fallback if missing).
3. Summarize the video into an abstract, bullet highlights, and a "References & Links" list.
4. 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
1. Copy `references/config-example.yml` to `config.yml` (or any path you prefer).
2. Fill in:
   - `channel_url` or `channel_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 `gog` skill.
3. 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 `playlistItems` endpoint for the channel's uploads playlist. Example:
  ```bash
  curl "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet,contentDetails&maxResults=5&playlistId=UPLOADS_PLAYLIST_ID&key=$YOUTUBE_API_KEY"
  ```
- Lightweight alternative: use `yt-dlp` to check the latest upload ID without downloading video:
  ```bash
  yt-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.txt` or a Notion/Sheets tracker). Only proceed if it's new.

## 3. Fetch transcripts
1. Try official captions via `youtube_transcript_api`:
   ```python
   from youtube_transcript_api import YouTubeTranscriptApi
   transcript = YouTubeTranscriptApi.get_transcript(video_id, languages=['en'])
   text = 'n'.join([chunk['text'] for chunk in transcript])
   ```
2. 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
   ```
3. 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.
```bash
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_cron` from config. Each run should:
  1. Poll for new video.
  2. 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_api` docs: 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.