yt-benchmark
Skill3 starsChanged 34 days agoMITView on GitHub
Find YouTube videos that beat their channel size (views over subscribers at least 3x by default) and plan your own video from the pattern.
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-chaptersSkill
- 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
5 rules. About 0 are common, 3 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
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 19
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 32
Keep the videos whose viewSubRatio (views divided by subscribers) is at or above the threshold, sorted by ratio.
- Distinctive: line 33
If fewer than five clear it, lower the threshold to 2, then to 1.5, and say that you lowered it, and to what.
- Distinctive: line 39
When a shell is available, this gets a benchmark video's captions so you can read its first fifteen seconds (use the video's language code).
- Distinctive: line 57
Never invent a view count, a subscriber count or the reason a video worked: the formula line is a judgement about the title, not a cause.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
yt-benchmark
Find the videos on a topic that pulled far more viewers than their channel has subscribers, read what they share, and turn the pattern into a plan for the person's own video. Use it for "benchmark videos", "videos that blew up on small channels", "what should my next video be", or before yt-script when the person has a topic but no angle.
1. Ask first
- Topic, as a viewer would type it, and the video the person wants to make, in one line.
- Format: Shorts, long-form or both.
- Period: how recent. Use one of the
periodvalues the tool description lists, or no limit. - Threshold: views over subscribers. The default is 3; if the person gives a value, theirs wins.
2. Search several ways
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.
Call search_youtube_videos more than once: vary order (viewCount, relevance, date), period and format around what the person asked, and try one or two other ways a viewer would phrase the topic. Pass the one-line video as topic so each answer's prompt is filled in, and use the largest max the tool accepts.
- The same search again is cached and free; each new combination spends one of the person's daily searches. Read
quota(usedToday,dailyLimit) in each answer, tell the person how many searches the sweep will take before you start, and stop before the allowance runs out. 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.research_quota_exceeded(the person's own daily searches are used up): stop the sweep, work with what you have, and say so.youtube_quota_exhausted(the shared quota for today, back atresetsAt): stop and work with what you have. When a shell is available, theyt-viralskill's method without Uplika (yt-dlp --flat-playlist -Jon each candidate channel, ranked by the multiple over the channel's own median) can stand in; say the axis changed.platform_error: YouTube did not answer; try once more a minute later. Anything else:get_helpwith the code.
3. Merge and filter
- Merge the answers by
videoId: a video found by several searches counts once. - Keep the videos whose
viewSubRatio(views divided by subscribers) is at or above the threshold, sorted by ratio. These are the benchmark set. - If fewer than five clear it, lower the threshold to 2, then to 1.5, and say that you lowered it, and to what.
viewSubRatiois null when a channel hides its subscriber count. List those videos separately; never count them as passing, and never as zero.
4. Look at them
- Download each
thumbnailaddress and look at it (with a shell, save it with curl; otherwise open the address if you can view images). Note the words on it, the face or object, and the contrast at small size. - When a shell is available, this gets a benchmark video's captions so you can read its first fifteen seconds (use the video's language code). Without a shell, work from the titles and thumbnails.
yt-dlp --skip-download --write-auto-subs --sub-langs ko --convert-subs srt "<video url>"5. Name the pattern
From the benchmark set: the title structure (name each formula by running the titles through ../yt-script/scripts/hookscore.py --json and reading formula), the hook words, the length (durationSec, and isShort as the answer labels it), the format, when they were published (publishedAt), and what the thumbnails share. Optional: compare with the person's own channel. Find their YouTube account in list_accounts, call list_channel_posts with it (each item's text starts with the title), and name what they have not tried yet.
6. Plan the person's video
The answer's prompt is the skeleton: the top results as a table, then patterns, titles, hooks and format. Fill it from the benchmark set rather than only the most viewed. Read ~/.uplika/<workspace-slug>/voice.md first if it exists, so the titles and hooks sound like the person (the voice-profile skill creates it). Hand back:
- five titles, linted with
../yt-package/scripts/title.py - five hooks, scored with
../yt-script/scripts/hookscore.py(Korean hooks get a rank-only score markedKorean: heuristic, not calibrated) - an outline, a thumbnail brief, the length and format, and when to publish
Never invent a view count, a subscriber count or the reason a video worked: the formula line is a judgement about the title, not a cause. Without a shell the scripts cannot run; say the titles and hooks were not scored.
7. Hand over
The full script goes to yt-script, the title and thumbnail to yt-package, and the upload to yt-upload.
Tools
search_youtube_videos: the topic's top videos with views, subscribers, their ratio, thumbnails and the planningpromptlist_accounts: the person's YouTube account, for the optional comparisonlist_channel_posts: the person's own recent titles, for the comparisonget_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.

