About yt-retention
A command-line skill for analyzing YouTube audience-retention CSV data, optionally alongside an SRT transcript. It identifies the largest hook loss, steep drops, or pacing decline and returns a focused change to consider; it does not publish videos.
Key features
- 01Analyze audience-retention CSV files
- 02Inspect transcript at steep drop-offs
- 03Classify hook loss, cliffs, and slide
- 04Suggest one change for the largest leak
- 05Create copy-ready output without publishing
Use cases
- 01Find viewer loss in the opening seconds
- 02Link a retention cliff to transcript content
- 03Assess whether a video's middle section loses viewers steadily
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ jakeschincariol/ youtube-agent-skill --skill yt-retentionAfter installing, type/yt-retentionin Claude Code to confirm it loaded.
Bundled filesretention.py
Details
From the project READMEyt-retention
The retention graph is the only honest feedback YouTube gives you. Almost nobody exports it.
python3 retention.py retention.csv --duration 600
python3 retention.py retention.csv --transcript transcript.srt
Getting the file: Studio -> a video -> Analytics -> Engagement -> the audience-retention chart -> the download icon -> "Audience retention".
Three different problems
- HOOK LEAK - what is lost in the first 30 seconds. Under 25% is healthy. This is always the first thing to fix and it is always the first fifteen seconds of script, never the edit.
- CLIFFS - single steep drops. A cliff is a moment: a topic change with no signposting, a
sponsor read, a long setup. With
--transcriptthe tool prints what was being said there, which is what makes the report actionable instead of interesting. - SLIDE - the steady bleed across the middle. A flat slide is pacing. The fix is cutting, not rewriting.
What to hand back
Name the single biggest leak and one change for it. Not a list of five. Then, only if asked, the
rest. And if the hook leak is healthy and the slide is flat, say the video is fine and the problem
is packaging - send them to /yt-package.
The gate
Nothing here publishes. This skill writes and you publish. Every output ends in a block the user copies, and the last line of every run is the question: ship it, or change it?