yt-chapters
Skill3 starsChanged 34 days agoMITView on GitHub
Write YouTube chapters from a transcript, checked against YouTube's chapter rules so they render, and add them to the video. For chapters, timestamps.
6 other projects use a version of this, 4 of them edited.
Adopted by
Most recently taken up by
- utillayer/youtube-agent-skilltheir own version, first seen Nov 8, 2026
- swayamdhawan/youtube-agentedited, first seen Oct 15, 2026
- ahmedsakri/youtube-agent-proedited, first seen Oct 15, 2026
- nessalazne/youtube-agent-skilledited, first seen Sep 23, 2026
- Jakeschincariol/youtube-agent-skilledited, first seen Sep 16, 2026
- tylerprogramming/claude-skillstheir own version, first seen Aug 9, 2026
Other versions6 projects use a version of this.
Word for word · 0
None found.
Edited · 4
- Jakeschincariol/youtube-agent-skill★ 4772% same
- nessalazne/youtube-agent-skill★ 559% same
- ahmedsakri/youtube-agent-pro★ 144% same
- swayamdhawan/youtube-agent★ 072% same
Wrote their own version · 2
- utillayer/youtube-agent-skill★ 10same name
- tylerprogramming/claude-skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository50 other files it gives its agents.
- automationsSkill
- commentsSkill
- hooksSkill
- ig-auditSkill
- ig-captionSkill
- ig-carouselSkill
- ig-dmSkill
- ig-humanSkill
- ig-profileSkill
- ig-reelSkill
- ig-storySkill
- ig-viralSkill
- inboxSkill
- linkedin-comment-drafterSkill
- linkedin-content-plannerSkill
- linkedin-employee-advocacySkill
- linkedin-engager-analyticsSkill
- linkedin-hook-extractorSkill
- linkedin-humanizerSkill
- linkedin-interviewerSkill
- linkedin-post-writerSkill
- linkedin-profile-optimizerSkill
- linkedin-reply-handlerSkill
- linkedin-repurposerSkill
- linkedin-thread-monitorSkill
- naver-ai-citeSkill
- naver-draftsSkill
- naver-engageSkill
- naver-keywordsSkill
- naver-postSkill
- performance-reviewSkill
- publishSkill
- repurposeSkill
- schedule-weekSkill
- setupSkill
- threadsSkill
- troubleshootSkill
- voice-profileSkill
- yt-auditSkill
- yt-benchmarkSkill
- yt-commentSkill
- yt-editSkill
- yt-packageSkill
- yt-planSkill
- yt-retentionSkill
- yt-scriptSkill
- yt-seoSkill
- yt-shortsSkill
- yt-uploadSkill
- yt-viralSkill
The file
We split this skill into the rules it gives an agent
2 rules. 0 are common, 0 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 4 edited versions we read keep these.
0
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 47
Put the block into that description (after the first two lines and any link, the way the yt-seo skill lays it out) and show the whole new …
- Very specific: line 50
If a call answers workspace_required, show the workspaces it lists, ask which one, and pass workspaceId.
“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Adapted from Jakeschincariol/youtube-agent-skill (MIT). Not affiliated with the original author.
yt-chapters
Chapters from a timestamped transcript. Use it for "add chapters", "timestamps", "break this video into sections". From this skill's folder:
python3 scripts/chapters.py transcript.srt --target 8The input is the transcript (srt, vtt or whisper json). When a shell is available and the video is on YouTube, this saves its automatic captions (use the video's language code):
yt-dlp --skip-download --write-auto-subs --sub-langs ko --convert-subs srt "<video link>"Without a shell (claude.ai, ChatGPT) the script cannot run: draft the boundaries by hand from the transcript and check the rules below yourself.
The rules, which are not optional
A chapter list that breaks any of these silently does not become chapters at all: the block just sits in the description doing nothing.
- The first entry must be 00:00.
- There must be at least three.
- Each must be at least 10 seconds long.
These are YouTube's chapter rules as chapters.py checks them; no Uplika tool returns them. The tool checks all three and tells you when a list is invalid rather than letting you paste it.
Retitle every line
chapters.py finds the BOUNDARIES well: it scores the pauses the speaker actually took by how much the vocabulary shifts across them. The titles it emits are the topic words, and they are a draft. A chapter called "Thumbnails Titles Packaging" is a placeholder. Rewrite each one as the promise of that section, in the person's voice (read ~/.uplika/<workspace-slug>/voice.md if it exists; if not, the voice-profile skill can create it), three to five words.
Chapters are also a retention diagnostic: if a section cannot be named in five words, it is two sections or it is filler.
Korean transcripts: chapters.py reads Hangul words for the vocabulary shift and the draft titles (the original read none, so every Korean title came out as "Section"). The words keep their particles, and the run is marked Korean: heuristic, not calibrated. Rewrite every title anyway.
With Uplika connected
The chapter block goes in the description. After the person approves the block and where it sits:
- Find the YouTube account in
list_accountsand read the video's current title and description fromlist_channel_posts(each item'stextis the title, a blank line, then the description). For an older video that is not in the list, ask the person to paste the current description. - Put the block into that description (after the first two lines and any link, the way the
yt-seoskill lays it out) and show the whole new description. - Call
update_postwith the video link asid,wait: true, the new description ascontent, and the currentoptions.youtube.title. Always send the title: for a video uploaded through Uplika,optionsreplaces what Uplika has on record and YouTube needs a title. Send no otheroptions.youtubefield; the rest stay as they are on YouTube. - YouTube measures the description with its own rule (
list_platformshas it); if the new one is too long, the call says so. Read the result and any warning out to the person. - If a call answers
workspace_required, show the workspaces it lists, ask which one, and passworkspaceId. A channel that is not connected: https://uplika.com/dashboard/connections. Other errors:get_helpwith the code;account_disconnectedgoes to thetroubleshootskill. youtube_quota_exhaustedfromupdate_postorlist_channel_posts, or anupdate_postresult withyoutube_daily_cap: Uplika's daily YouTube limit, which everyone on Uplika shares, ran out: stop and do not repeat the call, tell the person when it refills (resetsAt, or the time in the message), and do not ask them to reconnect, because it is not their account (faq:youtube-daily-limit).
Without Uplika
The person pastes the block under the video in YouTube Studio themselves.
The gate
Nothing goes out until the person says yes. Every output ends in a block they can copy, and the last line of every run is the question: ship it, or change it? With Uplika connected, "ship it" means you add the block with update_post.
Tools
list_accounts: the YouTube account idlist_channel_posts: the video's current title and descriptionupdate_post: put the approved chapter block into the descriptionlist_platforms: YouTube's description ruleget_help: the answer for an error code
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

