yt-script
Skill3 starsChanged 33 days agoMITView on GitHub
Write a YouTube script from an idea: five hooks off 21 formulas, scored, then the spoken script with retention beats. For scripts, hooks, openings.
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
- Rohit-Kumar-AI/youtube-creator-agenttheir own version, first seen Oct 20, 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
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★ 567% same
- ahmedsakri/youtube-agent-pro★ 139% same
- swayamdhawan/youtube-agent★ 072% same
Wrote their own version · 2
- utillayer/youtube-agent-skill★ 10same name
- Rohit-Kumar-AI/youtube-creator-agent★ 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-chaptersSkill
- yt-commentSkill
- yt-editSkill
- yt-packageSkill
- yt-planSkill
- yt-retentionSkill
- yt-seoSkill
- yt-shortsSkill
- yt-uploadSkill
- yt-viralSkill
The file
We split this skill into the rules it gives an agent
4 rules. 1 is common, 0 are distinctive, and 3 are very specific to this project.
1
Common
Most of the 6 edited versions we read keep these.
0
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Common: line 24
Never invent a number, a result or a source.
- Very specific: line 28
If a call answers workspace_required, the account has more than one workspace: show the names it lists, ask which one, and pass that …
- Very specific: line 44
Hook: Write FIVE against the 21 formulas, run them through scripts/hookscore.py, keep the top two, and show the person both with their …
- Very specific: line 61
When the video is recorded, yt-package writes the title and thumbnail and yt-upload puts it up.
“Common” is measured: kept by at least 6 in 10 of the 6 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-script
One idea into a script somebody finishes. Use it whenever the person wants a video script, a hook, an opening line, "what should I say", "write my next video", or is about to record and does not have the first fifteen seconds yet.
Two tools live in this skill's scripts/ folder and both actually run. Use them. Do not eyeball the hook. From this skill's folder:
python3 scripts/hookscore.py hooks.txt # rank your hook options
python3 scripts/hookscore.py --hook "one line" # score a single onescripts/hooks.json holds the 21 formulas the score classifies against. Without a shell (claude.ai, ChatGPT) the script cannot run: check the hooks against the formulas by hand and say they were not scored.
Before you write
- Read
~/.uplika/<workspace-slug>/voice.mdif it exists. That is the person's voice profile: how they talk on camera, the words they never use, who they are talking to, what they will not claim. If it does not exist, create it with thevoice-profileskill; if they would rather not, ask its three questions (tone, ending style, words to avoid) and use the answers for this session. A script in the wrong voice is worse than no script, because they have to read it out loud. - Never invent a number, a result or a source. If a figure would strengthen it and you do not have one, ask for it or write the line without it.
With Uplika connected
If a call answers workspace_required, the account has more than one workspace: show the names it lists, ask which one, and pass that workspaceId on every later call in this session.
Optional, before the hooks: call search_youtube_videos with the idea as a viewer would type it (q), order viewCount, a recent period, and the idea as topic. The top titles, and the ones with a high viewSubRatio (views over subscribers), are openings this niche already answered, and the answer's prompt is a brief for titles and hooks you may follow. Treat them as examples. Still write your own five against the formulas and score them.
research_tool_disabled: only a research tool still in beta answers this. Ask the person once to turn it on at theenableUrlin the error, and do not retry until they say it is on. Write the script without it meanwhile.research_quota_exceeded(their own daily searches) oryoutube_quota_exhausted(the shared quota, back atresetsAt): skip the search and write without it.- Any other error: call
get_helpwith its code and pass the answer on.
Without Uplika
Work from the idea alone: the person describes it and you write. If they want real examples first, use the yt-viral skill or ask them to paste a few titles from the niche.
The shape
The first 15 seconds is the whole job. It does three things or the video leaks: confirm the click the title promised, open a question the viewer cannot close, and prove the payoff exists.
- Hook. Write FIVE against the 21 formulas, run them through
scripts/hookscore.py, keep the top two, and show the person both with their scores. Never hand over one hook. - The turn (0:15-0:45). Say what the video is going to do, in one sentence, and start doing it. No channel intro, no "before we get started", no subscribe pitch. Those are the single most common cause of the 0:30 cliff.
- The body. One idea per beat. Mark each beat with what is ON SCREEN, not just what is said: a talking head with nothing to look at is a podcast.
- The payoff. Deliver the thing the hook promised, explicitly, and say that you are delivering it: "that is the prompt, it is in the description".
- The close. One ask. Not three.
Korean hooks
hookscore.py reads Korean (any Hangul in the line): Korean word lists, length counted in syllables, and Korean patterns for the formulas. It prints Korean: heuristic, not calibrated and gives no STRONG, WORKABLE or WEAK band, because nothing like the 74 English hooks behind the English panel exists for Korean yet. Use the numbers to rank Korean hooks against each other, never to call one strong or weak, and say so when you show them.
What to hand back
- the two best hooks with their scored panels
- the script, beat by beat, with
[ON SCREEN: ...]on every beat - the runtime estimate: English at 150 words per minute; Korean at 306 syllables per minute (5.1 a second, measured on Uplika's own reels), counting Hangul syllables rather than words
- one line naming which formula the winning hook used and why it fits this idea
When the video is recorded, yt-package writes the title and thumbnail and yt-upload puts it up.
The gate
Nothing here publishes. This skill writes and the person publishes. Every output ends in a block they copy, and the last line of every run is the question: ship it, or change it?
Tools
search_youtube_videos: optional, real titles and openings from the niche before writing hooksget_help: the answer for any other 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.

