基于 SOC 职业分类
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/glawson6/jaiclaw --skill youtube-content命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
This skill should be used when the user asks to "draw a diagram", "show a status box", "render ASCII art", "make a callout", "wrap text in a box", "plot these numbers", or any request involving boxed messages, two-box-and-arrow diagrams, scatter plots, or tables rendered as ASCII. Uses JBang to invoke the JaiClaw ASCII renderer; do not hand-draw borders character-by-character.
Render domain objects (events, tasks, tickets, orders, …) as framed monospaced ASCII via the render_response tool. Follow the fidelity rules exactly — do not paraphrase, transliterate, forge, or strip borders from tool output.
End-to-end validation of JaiClaw bootstrap, scaffolding, build, runtime, and Docker CLI images. Tests quickstart.sh, project creation from Maven releases, provider connectivity, CLI launcher, and Docker image builds.
| name | youtube-content |
| description | Extract YouTube transcripts and transform into structured content |
| alwaysInclude | false |
| requiredBins | ["python3"] |
| platforms | ["darwin","linux"] |
| version | 1.0.0 |
| tenantIds | [] |
Extract transcripts from YouTube videos and transform them into structured content formats: summaries, blog posts, show notes, and study guides.
# Install yt-dlp if not present
pip install yt-dlp
# Download auto-generated subtitles
yt-dlp --write-auto-sub --sub-lang en --skip-download -o "%(id)s" "VIDEO_URL"
# Download manual subtitles (preferred when available)
yt-dlp --write-sub --sub-lang en --skip-download -o "%(id)s" "VIDEO_URL"
# List available subtitle languages
yt-dlp --list-subs "VIDEO_URL"
# Get video metadata as JSON
yt-dlp --dump-json --skip-download "VIDEO_URL"
pip install youtube-transcript-api
from youtube_transcript_api import YouTubeTranscriptApi
# Get transcript by video ID
transcript = YouTubeTranscriptApi.get_transcript("VIDEO_ID")
# With language preference
transcript = YouTubeTranscriptApi.get_transcript("VIDEO_ID", languages=["en"])
# Format as plain text
text = " ".join([entry["text"] for entry in transcript])
# Format with timestamps
for entry in transcript:
mins = int(entry["start"]) // 60
secs = int(entry["start"]) % 60
print(f"[{mins:02d}:{secs:02d}] {entry['text']}")
Given a transcript, produce:
# [Video Title]
*Based on [Channel Name]'s video ([link])*
## Overview
[2-3 paragraph summary]
## Key Takeaways
### 1. [First major point]
[Expanded discussion with timestamp reference]
### 2. [Second major point]
...
## Conclusion
[Wrap-up and implications]
## Show Notes: [Video Title]
**Channel:** [Name]
**Duration:** [HH:MM:SS]
**Published:** [Date]
### Timestamps
- 00:00 — Introduction
- 02:30 — [Topic 1]
- 15:45 — [Topic 2]
...
### Links Mentioned
- [Resource 1](url)
- [Resource 2](url)
### Key Quotes
> "Quote from the video" — [Speaker] at [timestamp]
import json
video_ids = ["id1", "id2", "id3"]
for vid in video_ids:
try:
transcript = YouTubeTranscriptApi.get_transcript(vid)
text = " ".join([e["text"] for e in transcript])
with open(f"{vid}_transcript.txt", "w") as f:
f.write(text)
print(f"Saved transcript for {vid}")
except Exception as e:
print(f"Failed for {vid}: {e}")
# Get structured metadata
yt-dlp --dump-json --skip-download "VIDEO_URL" | python3 -c "
import sys, json
data = json.load(sys.stdin)
print(f'Title: {data[\"title\"]}')
print(f'Channel: {data[\"channel\"]}')
print(f'Duration: {data[\"duration\"]} seconds')
print(f'Views: {data.get(\"view_count\", \"N/A\")}')
print(f'Upload date: {data[\"upload_date\"]}')
print(f'Description: {data[\"description\"][:500]}')
"