yt-viral
Installation
SKILL.md
Adapted from Jakeschincariol/youtube-agent-skill (MIT). Not affiliated with the original author.
yt-viral
Raw view counts rank channel size, not ideas. This ranks each video by how far it beat its own channel, which is the only version of the question that is about the video. Use it for "what's working right now", "find viral videos in my niche", "why did this blow up", competitor research, or a swipe file.
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.
- Call
search_youtube_videoswith the niche as a viewer would type it (q),orderviewCount, aperiodthat fits ("what's working right now" means a recent one),formatif the person only makes Shorts or only long videos, and the largestmaxthe tool accepts. The same search again is cached and free; each new combination spends one of the person's daily searches, shown inquota. - Rank by
viewSubRatio: views divided by the channel's subscribers, so above 1 means the video pulled more people than the channel has. This is a different axis from this skill's original method, the multiple over the channel's own median: the ratio compares a video with the size of its channel's audience, not with the channel's other videos. Say which axis you used when you present the list. viewSubRatiois null when a channel hides its subscriber count. List those separately, never as zero and never as winners.- Name the formula for each top title: put the titles one per line in a file and run
python3 ../yt-script/scripts/hookscore.py --json titles.txt, then read eachformula(the same 21 formulas swipe.py uses, with the Korean patterns for Korean titles). Without a shell, match them by eye against../yt-script/scripts/hooks.json. - Failures:
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.youtube_quota_exhausted(the shared quota for today, back atresetsAt) orresearch_quota_exceeded(the person's own daily searches): when a shell is available, fall back to the method without Uplika below, collecting withyt-dlp --flat-playlist -J, and say the axis changed to the channel-median multiple. Without a shell, ask for a pasted list or wait for the reset.platform_error: YouTube did not answer; try once more a minute later. Anything else:get_helpwith the code.