YouTube Content Tool

Extract transcripts from YouTube videos and turn them into structured content such as chapters, summaries, threads, blog posts, or notable quotes.

Hermes Intermediate Copied: 0
1 resource

How to use

Use this when the user shares a YouTube URL or video link, asks to summarize a video, requests a transcript, or wants to extract and reformat content from any YouTube video.

SKILL_DIR is the directory containing this SKILL.md file. The script accepts any standard YouTube URL format, short links (youtu.be), shorts, embeds, live links, or a raw 11-character video ID.

Install the dependency with uv so it lands in the same Hermes-managed environment that runs the helper script:

Use uv so the dependency is installed into the same Hermes-managed environment that runs the helper script.

uv pip install youtube-transcript-api

Run the helper script with uv run python and the video URL: JSON output with metadata by default, plain text via --text-only --timestamps for piping into further processing, timestamps with the --timestamps flag, or a specific language with a fallback chain like --language tr,en.

# JSON output with metadata
uv run python SKILL_DIR/scripts/fetch_transcript.py "https://youtube.com/watch?v=VIDEO_ID"

# Plain text (good for piping into further processing)
uv run python SKILL_DIR/scripts/fetch_transcript.py "URL" --text-only

# With timestamps
uv run python SKILL_DIR/scripts/fetch_transcript.py "URL" --timestamps

# Specific language with fallback chain
uv run python SKILL_DIR/scripts/fetch_transcript.py "URL" --language tr,en

Example chapters output, with each entry showing a timestamp, a section name, and a short description:

00:00 Introduction — host opens with the problem statement
03:45 Background — prior work and why existing solutions fall short
12:20 Core method — walkthrough of the proposed approach
24:10 Results — benchmark comparisons and key takeaways
31:55 Q&A — audience questions on scalability and next steps

Validate the output: confirm it is non-empty and in the expected language. If empty, retry without --language to get any available transcript. If still empty, tell the user the video likely has transcripts disabled.

Transform the transcript into the requested output format; if the user did not specify one, default to a summary.

If the transcript is disabled, tell the user and suggest they check if subtitles are available on the video page.

If the video is private or unavailable, relay the error and ask the user to verify the URL.

If no matching language is available, retry without --language to fetch any available transcript, then note the actual language to the user.

If the dependency is missing, run uv pip install youtube-transcript-api and retry.

Source: nousresearch/hermes-agent and its contributors. License: MIT.

Copyright (c) 2025 Nous Research

Translation and editorial adaptation by ClawCases.

>Resources

>Related Use Cases

>More at this level: Intermediate