YouTube Content Tool
Extract transcripts from YouTube videos and turn them into structured content such as chapters, summaries, threads, blog posts, or notable quotes.
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
Automate X (Twitter) Data and Actions from Hermes
Hermes Tweet installs as a Hermes Agent plugin that registers the hermes-tweet toolset with exploration, read, and action tools for X endpoints, plus a skill and slash commands like /xstatus and /xtrends for account status and trends.
Connect YantrikDB Cognitive Memory to Hermes via MCP
Connect the YantrikDB cognitive memory engine to Hermes through its built-in MCP client, giving the agent tool-call operations to store, recall, relate, and consolidate facts.
Goal-driven autonomous daily tasks with OpenClaw
Turn OpenClaw into a self-directed agent: you describe your goals once, and the agent generates, executes, and tracks daily tasks that advance them.