一键导入
mk-youtube-summarize
Summarize YouTube videos or channel's latest videos. Use for single video URL, channel URL, or @handle to summarize recent uploads.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Summarize YouTube videos or channel's latest videos. Use for single video URL, channel URL, or @handle to summarize recent uploads.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Transcribe audio to text using local whisper.cpp. Use when user wants to convert audio/video to text, get transcription, or speech-to-text.
Download YouTube video audio file. Use when user wants to extract audio or download music/podcast from a video.
Download YouTube video subtitles. Use when user wants to get captions or subtitles from a video.
Get latest videos, livestreams, shorts, or podcasts from a YouTube channel
Get YouTube video metadata (title, channel, duration, views, subtitle availability). Use when user wants video details or needs to check subtitle availability before summarization.
Search YouTube videos. Use when user wants to find videos by keyword or topic.
| name | mk-youtube-summarize |
| description | Summarize YouTube videos or channel's latest videos. Use for single video URL, channel URL, or @handle to summarize recent uploads. |
| license | MIT |
| metadata | {"version":"1.1.0","author":"kouko","tags":["youtube","summarize","pipeline"]} |
| compatibility | {"claude-code":">=1.0.0"} |
End-to-end pipeline that summarizes YouTube videos by orchestrating existing skills in sequence. Supports both single video URLs and channels (summarizes latest N videos).
/mk-youtube-summarize <URL|Channel> [count] [--force]
| Parameter | Description |
|---|---|
URL | Single video URL (existing behavior) |
Channel | Channel URL, @handle, or channel name |
count | Number of videos to process (default: 3, for channels only) |
--force | Force re-generate summary even if cached version exists |
# Single video (existing behavior)
/mk-youtube-summarize https://www.youtube.com/watch?v=dQw4w9WgXcQ
/mk-youtube-summarize https://youtu.be/dQw4w9WgXcQ
# Channel's latest 3 videos (default)
/mk-youtube-summarize @RickAstleyYT
/mk-youtube-summarize https://www.youtube.com/@RickAstleyYT
# Channel's latest 5 videos
/mk-youtube-summarize @RickAstleyYT 5
# Get channel from video URL, then summarize latest 3
/mk-youtube-summarize https://www.youtube.com/watch?v=dQw4w9WgXcQ channel
/mk-youtube-summarize https://www.youtube.com/watch?v=dQw4w9WgXcQ channel 5
URL (single video)
│
▼
┌──────────────────────────────────────┐
│ /mk-youtube-transcript-summarize │ ← Step 0.5: Check cache
│ --check <URL> │
└────────────┬─────────────────────────┘
┌────┴────┐
│ │
exists:true exists:false
│ │
▼ ▼
┌─────────────┐ ┌───────────────────────────┐
│ Read & show │ │ /mk-youtube-get-info │ ← Step 1
│ ✅ DONE │ └────────────┬──────────────┘
└─────────────┘ │
┌────┴────┐
│ │
has_subs no_subs
│ │
▼ ▼
┌───────────────┐ ┌─────────────────┐
│/mk-youtube- │ │/mk-youtube- │ ← Step 2a or 2b
│get-caption │ │get-audio │
└───────┬───────┘ └────────┬────────┘
│ │
│ ▼
│ ┌─────────────────┐
│ │/mk-youtube- │ ← Step 2c (audio path only)
│ │audio-transcribe │
│ └────────┬────────┘
│ │
└────────┬─────────┘
│
▼
┌────────────────────────────────┐
│ /mk-youtube-transcript-summarize │ ← Step 3: MANDATORY
└────────────────────────────────┘
Channel (@handle, channel URL, or video URL + "channel")
│
▼
┌─────────────────────────────────┐
│ /mk-youtube-get-channel-latest │ ← Step 0: Get latest N video URLs
│ [channel] [count] │
└────────────┬────────────────────┘
│
▼
┌─────────────────────────────────┐
│ For each video (1..N): │
│ Step 0.5: --check cache │
│ ├─ exists:true → Read & show │
│ └─ exists:false → Full │
│ pipeline (Steps 1 → 2 → 3) │
│ before moving to next video │
└─────────────────────────────────┘
│
▼
✅ All summaries displayed
Determine whether input is a single video or a channel:
Single Video → proceed to Step 1:
youtube.com/watch?v=youtu.be/youtube.com/shorts/ (single short)Channel → proceed to Channel Path:
youtube.com/@youtube.com/channel/youtube.com/c/@ (e.g., @RickAstleyYT)channel keyword after video URLSkip this step if --force is specified.
For single video input, use the Skill tool to invoke /mk-youtube-transcript-summarize with --check:
/mk-youtube-transcript-summarize --check <URL>
If exists: true:
output_summary using the Read toolIf exists: false:
For channel flow, the check happens per-video inside the loop after getting the video list. Each video URL is checked individually.
Use the Skill tool to invoke /mk-youtube-get-channel-latest:
/mk-youtube-get-channel-latest <channel> [count]
The output is a JSON array of video objects. For each video in the array, execute the full Single Video pipeline (Steps 1 → 2 → 3) completely before moving to the next video.
Progress Display (recommended format):
Processing 3 videos from @RickAstleyYT...
[1/3] Rick Astley - Never Gonna Give You Up
→ ✅ Cached summary found, displaying...
[2/3] Rick Astley - Together Forever
→ Summary generated (new)
[3/3] Rick Astley - Take Me to Your Heart
→ ✅ Cached summary found, displaying...
✅ Completed: 3/3 summaries displayed (2 cached, 1 new)
Use the Skill tool to invoke /mk-youtube-get-info with the URL:
/mk-youtube-get-info <URL>
From the output, note:
has_subtitles and has_auto_captions — determines the path for Step 2language — used for model selection if audio transcription is neededChoose ONE path based on subtitle availability from Step 1:
has_subtitles: true OR has_auto_captions: true)Use the Skill tool to invoke /mk-youtube-get-caption:
/mk-youtube-get-caption <URL>
Save the text_file_path from the output for Step 3.
has_subtitles: false AND has_auto_captions: false)First, use the Skill tool to invoke /mk-youtube-get-audio:
/mk-youtube-get-audio <URL>
Then, use the Skill tool to invoke /mk-youtube-audio-transcribe with the file_path from the audio output:
/mk-youtube-audio-transcribe <file_path> auto <language>
Pass the language from Step 1 for best model auto-selection (e.g., zh → belle-zh, ja → kotoba-ja).
Save the text_file_path from the output for Step 3.
Use the Skill tool to invoke /mk-youtube-transcript-summarize with the text_file_path obtained from Step 2:
/mk-youtube-transcript-summarize <text_file_path> [--force]
Pass --force if the user specified it for mk-youtube-summarize.
CRITICAL: You MUST use the Skill tool to invoke /mk-youtube-transcript-summarize. Do NOT generate summaries directly. The skill contains critical rules for:
Skipping this step or generating summaries without the skill will produce lower-quality output.
Display Rule: The /mk-youtube-transcript-summarize skill will generate and save the full summary. You MUST display the COMPLETE summary content to the user as-is. Do NOT create a condensed or abbreviated version after the summary is generated.
When summarizing multiple videos (either from a channel or manually specified):
--check. Use --force to bypass and regenerate./mk-youtube-get-channel-latest which auto-detects channel from video URLs