DEV Community

Scavio AI
Scavio AI

Posted on

How to give your OpenClaw agent Access To Youtube Real-Time Data in Less Than 2 Minutes

Your OpenClaw agent can't watch YouTube. But it can read it — if you give it the right skill.

This is particularly useful for RAG pipelines. YouTube tutorials stay more current than official docs for fast-moving topics like LangChain, CrewAI, or new model releases. Instead of asking your agent to summarize a video it can't access, give it the actual transcript.

1. Install the skill

clawhub install scavio-youtube
Enter fullscreen mode Exit fullscreen mode

2. Set your API key

Get a free key at scavio.dev (1,000 credits/month, no card), then:

export SCAVIO_API_KEY=sk_live_your_key
Enter fullscreen mode Exit fullscreen mode

3. Ask your agent

Your agent can now search YouTube, pull video metadata, and extract transcripts:

Find the most-viewed LangChain tutorial from this year and summarize what it covers.
Enter fullscreen mode Exit fullscreen mode
Search YouTube for CrewAI getting started videos and tell me which one has the most views.
Enter fullscreen mode Exit fullscreen mode
Get the transcript for video sVcwVQRHIc8 and explain the main steps it covers.
Enter fullscreen mode Exit fullscreen mode

The skill covers four endpoints: search, metadata, transcript, and trainability check. Your agent picks the right one based on what you're asking.

What comes back

Search returns video ID, title, channel, view count, duration, publish date, and thumbnail.

Transcript returns timestamped text segments — your agent can inject these directly into context and answer questions grounded in the actual video content.

Metadata returns views, likes, comments, tags, categories, and channel info.

Trainability returns whether the video has captions, what languages, its license, and whether it's suitable for AI training.

Direct API access

import os, requests

BASE = "https://api.scavio.dev"
HEADERS = {"Authorization": f"Bearer {os.environ['SCAVIO_API_KEY']}"}

# Search (note: parameter is "search" not "query")
results = requests.post(f"{BASE}/api/v1/youtube/search", headers=HEADERS,
    json={"search": "langchain tutorial", "sort_by": "view_count"}).json()

# Transcript
video_id = results["data"][0]["videoId"]
transcript = requests.post(f"{BASE}/api/v1/youtube/transcript", headers=HEADERS,
    json={"video_id": video_id, "language": "en"}).json()

text = " ".join(seg["text"] for seg in transcript["data"])
Enter fullscreen mode Exit fullscreen mode

Full docs at scavio.dev/docs


(I work with the Scavio team.)

Top comments (0)