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
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
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.
Search YouTube for CrewAI getting started videos and tell me which one has the most views.
Get the transcript for video sVcwVQRHIc8 and explain the main steps it covers.
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"])
Full docs at scavio.dev/docs
(I work with the Scavio team.)
Top comments (0)