Skip to main content

yt-chapters

Generate accurate YouTube chapters from a final edited video. Extracts audio with ffmpeg, transcribes it, then updates the video package description with real timestamps. Triggers on: generate chapters, update chapters, finalize description, chapters from video, update timestamps, post-edit description.

跳到安装

来源信息

仓库
tylerprogramming/claude-skills
最近来源活动
2026年7月9日 19:40
检测到的 SKILL.md 语言
英语
星标
0
分支
2

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
yt-chapters
description
Generate accurate YouTube chapters from a final edited video. Extracts audio with ffmpeg, transcribes it, then updates the video package description with real timestamps. Triggers on: generate chapters, update chapters, finalize description, chapters from video, update timestamps, post-edit description.
Generate accurate YouTube chapters from the final edited video at $ARGUMENTS. ## Workflow Context **Final step of the weekly content pipeline** — runs post-edit when the editor delivers the final `.mp4`. Do NOT run this before filming or editing. After this, the description is ready to copy-paste into YouTube. ## Flow ### Step 1: Parse Input From $ARGUMENTS, extract: - **Video path**: The local `.mp4` file (required) - **Slug** (optional): `--slug <video-slug>` to identify the video package at `~/content/youtube/<slug>/` If no slug is provided: - Check if the video filename or parent folder matches an existing `~/content/youtube/<slug>/` package - If not, ask the user: **"Which video package does this belong to?"** and list existing packages from `~/content/youtube/` If the video path doesn't exist, ask the user for the correct path. ### Step 2: Extract Audio Extract the audio track from the video using ffmpeg: ``` ffmpeg -i "<video_path>" -vn -acodec libmp3lame -q:a 2 ~/content/transcripts/chapters_audio_<slug>.mp3 -y ``` This is faster and smaller than processing the full video file. ### Step 3: Transcribe Transcribe the extracted audio using the transcribe skill's script: ``` python3 ~/.claude/skills/transcribe/transcribe_video.py ~/content/transcripts/chapters_audio_<slug>.mp3 ``` Read the resulting transcript file. It should contain timestamped segments. ### Step 4: Identify Chapters Analyze the transcript to identify natural chapter breaks. Look for: - **Topic transitions** — When the speaker shifts to a new subject - **Section markers** — Phrases like "next", "now let's", "moving on", "the first thing", "step one" - **Demo transitions** — Shifts between talking and showing something - **Energy shifts** — New introductions of concepts after a conclusion of the previous one Generate **5-15 chapters** depending on video length: - Videos under 5 min: 3-5 chapters - Videos 5-15 min: 5-10 chapters - Videos 15+ min: 8-15 chapters For each chapter: - **Timestamp** in `MM:SS` format (or `H:MM:SS` for videos over 1 hour) - **Title** — Short, descriptive, 2-6 words The first chapter MUST be `0:00 - Introduction` (or a more specific hook title). ### Step 5: Read Existing Description Read `~/content/youtube/<slug>/description.md` if it exists. Identify: - Is there an existing chapters section with `[UPDATE]` placeholders? - What's the overall structure of the description? ### Step 6: Present Chapters to User Show the user the generated chapters: ``` 0:00 - Introduction 0:45 - Setting Up the Project 2:12 - First Demo ... ``` Ask: **"Do these chapters look right? Want to adjust any timestamps or titles?"** ### Step 7: Update Description After the user approves (or after revisions): **If `description.md` exists with placeholder chapters:** - Replace the entire chapters section (the `[UPDATE]` placeholders) with the real timestamps **If `description.md` exists without a chapters section:** - Add a chapters section in the appropriate location (after the main body, before the CTA/links). Do not add a tags or hashtag line to the description — tags belong in `tags.txt` (YouTube tags field) only. **If no `description.md` exists:** - Create `~/content/youtube/<slug>/description.md` with just the chapters section and a note to fill in the rest Show the user the updated description and confirm the file was saved. ### Step 8: Cleanup Delete the temporary audio file: ``` rm ~/content/transcripts/chapters_audio_<slug>.mp3 ``` Report what was done: - Transcript location - Updated description path - Number of chapters generated ## Rules - Always extract audio first — don't try to transcribe the full video file directly (it's slower and larger) - Chapters must start at `0:00` — YouTube requires this - Chapter titles should be concise (2-6 words) — they appear in the progress bar - Minimum 3 chapters for YouTube to recognize them as chapters - Timestamps must be accurate to within ~5 seconds — round to clean numbers when the transition isn't instant - Don't create chapters shorter than 10 seconds — YouTube may not display them - When updating `description.md`, preserve all existing content outside the chapters section - Clean up the temporary mp3 after transcription - If the transcription doesn't have clear timestamps, estimate based on word count (~150 words per minute of speech)
在 GitHub 查看