agentleFS
drdoomsvilledrdoomsville/yt-transcript/SKILL.md

yt-transcript

Skill0 starsChanged 5 months agoMITView on GitHub

Extract a YouTube video's transcript from a URL and save it as .md and .txt files under ./output/, and optionally apply an action (summarize, bullets, criticize/critique, questions) to it. Use when the user provides a YouTube URL and asks to extract, download, fetch, or save a transcript, or to summarize / bullet-point / critique a video or generate follow-up questions about it.

  • Installs packages

4 other projects use a version of this.

Adopted by

Most recently taken up by

  • Other versions4 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 4

    1. jaansokk/cursor_tools★ 1same name
    2. lmiadowicz/claude-skills★ 1same name
    3. weininghui/skills★ 1same name
    4. Valeriy1980/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.

The file

We split this skill into the rules it gives an agent

6 rules. 0 are common, 1 is distinctive, and 5 are very specific to this project.

  • 0

    Common

    Most of the 3 edited versions we read keep these.

  • 1

    Distinctive

    This author's own choices. Worth a look.

  • 5

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Run the script from the directory where the user wants the output/ folder.

    line 28
  2. Very specific:

    Run the script from that directory with the URL as a single quoted argument.

    line 51
  3. Very specific:

    Read the script's stdout — the first two lines are the saved transcript paths (.md, .txt).

    line 52
  4. Very specific:

    Read the transcript from transcript_file.

    line 55
  5. Very specific:

    Write the result to output_file (e.g.

    line 57
  6. Distinctive:

    No API key — actions are performed by you, the agent, not by the script.

    line 75

“Common” is measured: kept by at least 6 in 10 of the 3 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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

yt-transcript

Quick start

Extract a transcript (saves two files under ./output/):

python ~/.claude/skills/yt-transcript/scripts/fetch.py "https://www.youtube.com/watch?v=VIDEO_ID"

Extract and apply an action:

python ~/.claude/skills/yt-transcript/scripts/fetch.py --action summarize "https://www.youtube.com/watch?v=VIDEO_ID"

On Windows PowerShell, expand the home path manually:

python "$HOME\.claude\skills\yt-transcript\scripts\fetch.py" --action summarize "https://www.youtube.com/watch?v=VIDEO_ID"

Run the script from the directory where the user wants the output/ folder; paths are relative to the current working directory and the folder is created if missing.

Actions

--action <id> (alias -a). Valid ids: summarize, bullets, criticize (alias critique), questions. The script does not call any LLM — you (the agent) produce the action output yourself. The script saves the transcript, then prints a final line:

ACTION_REQUEST {"action":"summarize","instruction":"...","transcript_file":"<abs .md>","output_file":"<abs .md>"}

What each action produces (the exact instruction rides in the JSON — follow it verbatim):

  • summarize — 3-5 paragraph markdown summary, one-sentence TL;DR first.
  • bullets — 8-15 key points as a markdown bullet list.
  • criticize — per-claim critique (what's supported / weak / counter-evidence), H3 per claim.
  • questions — 8-12 grouped follow-up questions.

Workflow

  1. Confirm the user's intended working directory so ./output/ lands where they expect.
  2. Run the script from that directory with the URL as a single quoted argument. Add --action <id> if the user asked to summarize / bullet / critique / generate questions.
  3. Read the script's stdout — the first two lines are the saved transcript paths (.md, .txt).
  4. If no action: report both transcript paths to the user. Done.
  5. If an ACTION_REQUEST line is printed:
    • Read the transcript from transcript_file.
    • Apply the instruction to that transcript using your own reasoning (do not shell out to another model). Output clean markdown.
    • Write the result to output_file (e.g. output/<title>.summarize.md).
    • Report the transcript paths and the action output path to the user.

File contents

Transcript files (<title>.md / <title>.txt) contain:

  1. The video title (H1 in the .md, plain in the .txt)
  2. The canonical https://www.youtube.com/watch?v=<id> URL
  3. The full transcript as one prose block

Action output (<title>.<action>.md) contains only the action result as markdown, written by you.

Requirements

  • Python 3 on PATH (or set $PYTHON / $env:PYTHON).
  • youtube-transcript-api: pip install youtube-transcript-api
  • Network access (transcript API + YouTube's public oEmbed endpoint for the title).
  • No API key — actions are performed by you, the agent, not by the script.

Edge cases

  • Unknown action — script exits 1 with a JSON error listing valid actions, before any network call.
  • No captions / video unavailable — script exits 1 with a JSON error line on stderr. Surface it; suggest verifying the video has captions.
  • Title fetch fails — script falls back to the 11-char video ID as the filename rather than aborting.
  • Filename safety — strips characters illegal on Windows (<>:"/\|?*), control chars, and excess whitespace; truncates to 150 chars.
  • URL formats accepted — watch?v=<id>, youtu.be/<id>, /embed/<id>, /shorts/<id>, and raw 11-char video IDs.
  • Name collisions — existing files at the same path are overwritten without prompt.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.