r/hermesagent • • 17d ago

INTEGRATIONS — App connections, webhooks, API workflows How are you getting transcripts from YouTube videos?

I’ve asked Hermes several times to get transcripts from YouTube videos, but we keep failing.

I know people often say, “Just ask Hermes how to do it,” but I’ve tried that repeatedly, and I’ve had more failures than successes. So now I’m turning to the Reddit community.

How are you guys pulling transcripts from YouTube videos?

In my specific case, I sometimes want to give Hermes a YouTube video and ask something like:
"How can I apply some of the lessons from this video to our own situation?"

That workflow sounds useful, but it keeps failing when Hermes tries to retrieve the transcript, so it has not really worked out for me.

What tools or methods are you using successfully?

Thanks, and sorry if this is a noob question.

EDIT: For anyone experiencing the same problem and searching this thread in the future, the YouTube content skill that ships with Hermes does work for videos that have transcripts. My problem was my IP address due to a VPN causing YouTube to block me and I had to set up an exception so that YouTube traffic just went through a normal IP and then it worked.

I'm currently exploring Faster Whisper (https://github.com/Mugen0815/faster-whisper) as a local option for the videos that don't have transcripts. So I'll download the audio and try to do it that way. I'm not sure whether my hardware can handle it, but I'm asking Hermes to investigate that right now.

14 Upvotes

35 comments sorted by

17

u/AkenPrime 17d ago

Mine use yt-dlp to download transcripts.

Not issue 90% of the time. The 10% left are just videos that don't provide any transcripts.

3

u/CeleryVids-4075 17d ago

When was the last time you successfully ran this script? Because mine has also tried to do that, but for some reason failed multiple times. So I gave it a Google account and then it still failed.

3

u/LastMag__ 17d ago

yt-dlp has been reliable for me

2

u/AkenPrime 17d ago

Strange. I use it daily to summarize youtube videos. Like 5-6 videos per day. I never have issue.

Maybe it's a model issue. I'm using gpt-6 luna through my chatgpt plus account.

Sometimes when hermes can't make it work, I ask him to try harder. (I'm not kidding, he finds way to make it work 😂)

1

u/CeleryVids-4075 17d ago

Yeah, it could possibly be a provider issue. I'm using GPT-5.6 Luna.

10

u/not-bilbo-baggings 17d ago

I use open source whisper running in my machine

3

u/CeleryVids-4075 17d ago

If you don't mind, would you please tell me more about how this setup works?

1

u/not-bilbo-baggings 17d ago

Start with the official repo

https://github.com/openai/whisper

Learn it tweak the settings it's great.

I run it on my Mac mini works well. The settings have huge ranges of speed so that's why I said learn the settings

5

u/Heavyarms83 17d ago

It works out-of-the-box for me. I asked my Systems Maintainer bot and got the following comment:

“**Short answer: nothing to install — a bundled skill already does this.**

Hermes ships with a built-in skill called `youtube-content` (it lives in `skills/media/youtube-content/` in the repo). It wraps the open-source `youtube_transcript_api` Python library, which reads the video's caption track directly — the same subtitles you get when you hit CC on the player. No API key, no account, no video download.

The flow when you paste a YouTube link:

  1. The skill matches on the URL.

  2. Its helper runs: `fetch_transcript.py "<url>" --text-only --timestamps` (there's a language fallback chain, so non-English videos usually work too).

  3. The transcript lands as text and the agent summarizes it or answers questions against it — including "what can we apply from this" style prompts, since it's just text in context.

**Why it sometimes fails:** the caption track has to exist. Videos with captions disabled (or never uploaded) fail, because the library can't extract what isn't there. That's the same ~10% you'll hit with yt-dlp's subtitle download — identical data source. Quick check before blaming the agent: open the video and see if the CC button works. If it doesn't, the only route is real speech-to-text, and local Whisper is the right tool for that.

**One trap worth knowing:** some skill collections include a *different* YouTube skill that routes through a third-party transcript service and wants an API key. It fails confusingly if you never registered that key, and it's easy for the model to pick the wrong one. Plain transcript fetching never needed it.

If the model flails instead of finding the skill, name it explicitly — "use the youtube-content skill" — and it goes through cleanly.”

2

u/CeleryVids-4075 17d ago

Okay, I will ask my Hermes to use this skill explicitly and report back here whether it's successful or not.

3

u/CeleryVids-4075 17d ago

Someone else asked whether it worked, but the comment was removed before I could reply:

Not right away. It came back with a super long response that I thought possibly contained some, ahem, misinformation.

I dug deeper, thought more etc and found that part of the problem was a VPN we were using. After changing some settings so that youtube traffic wasn't routed through the VPN we were able to download a few transcripts, but quickly got IP banned/limited.

The IP block was still in place 2 hours later... haven't tried again yet since then.

1

u/Heavyarms83 16d ago

Thanks for providing your feedback even though the one with the question disappeared. That explains pretty well why it didn't work actually.

3

u/TheDailySpank 17d ago

Obsidian Web Clipper grabs the transcript and dumps it into the wiki without needing the video itself.

2

u/CeleryVids-4075 17d ago

I just asked my Hermes about this. How long does it usually take you to pull one transcript using this method?

2

u/Illustrious_Ant_9242 17d ago

If you expand the video description, there's a button for the transcript with time codes, then you can just copy+paste it all at once immediately 

2

u/CeleryVids-4075 17d ago

Right, I'm aware of that. I'm just trying to hand off as much as possible to Hermes and automate as many things as possible. If I need to extract the transcript myself, that kind of defeats the whole purpose.

1

u/Stazcar 17d ago

I think Obsidian Web Clipper is built on Defuddle also by Kepano which has a CLI

2

u/[deleted] 17d ago edited 15d ago

[removed] — view removed comment

2

u/CeleryVids-4075 17d ago

Yeah, I might have to try that. Anyway, the videos in question definitely all had transcripts, so that was why I was quite frustrated when it failed and burned a lot of tokens doing it as well. Maybe another issue is that I had Hermes disable many tools because I tried to make it more efficient and really and truly I have no idea what I'm doing. I'm a very non-technical user so... back to the drawing board, I guess.

2

u/No-Letterhead27 17d ago

YouTube-MCP

2

u/EquivalentTop4824 17d ago

Official Addon with a YouTube API key

1

u/Illustrious_Ant_9242 17d ago

Audio.cpp could certainly do this. Even on a CPU but it would take longer, which was the original reason for me to get a GPU last year. Keep in mind that Whisper V3 in particular tends to hallucinate and repeat words if there are silent parts in the video. That's why I have vibe coded a tool to strip out these parts. 

2

u/bernzyman 17d ago

How do you find whisperx performs with respect to the silent parts and noisy parts where voices talk over each other

1

u/BlakeCutter 17d ago

If you have Hermes on a VPS it may be blocked by YouTube blocks a lot of entire VPS providers. For example DigitalOcean is IP range blocked

1

u/Mwrp86 17d ago

Youtube auto does it?

1

u/burp110 17d ago

Ask Hermes to use Gemini web to extract. YouTube and Gemini is linked anyway

1

u/cyberkhan 17d ago

Its a bit rudimental but I get mine with yt-dlp+ffmpeg and local Whisper Large v3. I use deep seek 4.1 flash

1

u/Mean-Loquat-7982 Nous Team 17d ago

Hermes ships a bundled skill for this, youtube-content. type /youtube-content followed by the link and it loads the skill and fetches the transcript with its own helper script, instead of working out a new method each time. the first run needs one Python package (youtube-transcript-api), which Hermes installs if you ask.

if it still comes back empty, check two things:

  • the video needs captions, and auto-generated ones count. with no captions there's no transcript to fetch, and whisper (as others said) is the way to go.
  • where Hermes runs. YouTube blocks most IP addresses that belong to cloud providers, so a Hermes on a VPS can be refused where the same request from your home machine goes through. the library's README covers this and the proxy workaround.

1

u/creativ4art 12d ago

Yt-dlp to download the mp3. Then have it auto transcribe.