Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Transform YouTube videos into podcast-style voice summaries using ElevenLabs TTS
Transform YouTube videos into podcast-style voice summaries using ElevenLabs TTS
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
Transform any YouTube video into a professional voice summary delivered in under 60 seconds.
When a user sends a YouTube URL, this skill: Extracts the video transcript via Supadata Generates a concise AI summary via OpenRouter/Cerebras Converts the summary to natural speech via ElevenLabs Returns an audio file the user can listen to
This skill requires a running backend server. Deploy the summarizer service: git clone https://github.com/Franciscomoney/elevenlabs-moltbot.git cd elevenlabs-moltbot npm install cp .env.example .env # Add your API keys to .env npm start
ServicePurposeGet KeyElevenLabsText-to-speechhttps://elevenlabs.ioSupadataYouTube transcriptshttps://supadata.aiOpenRouterAI summarizationhttps://openrouter.ai
When user sends a YouTube URL:
curl -s -X POST http://127.0.0.1:3050/api/summarize \ -H "Content-Type: application/json" \ -d '{"url":"YOUTUBE_URL","length":"short","voice":"podcast"}' Returns: {"jobId": "job_xxx", "status": "processing"}
curl -s http://127.0.0.1:3050/api/status/JOB_ID Keep polling until status is "completed".
When complete, the response includes: result.audioUrl - The MP3 audio URL (send this to the user!) result.teaser - Short hook text about the content result.summary - Full text summary result.keyPoints - Array of key takeaways Send the user: The teaser text as a message The audio URL so they can listen
VoiceStylepodcastDeep male narrator (default)newsBritish authoritativecasualFriendly conversationalfemale_warmWarm female voice
LengthDurationBest Forshort1-2 minQuick overviewmedium3-5 minBalanced detaildetailed5-10 minComprehensive
User: "Summarize this: https://www.youtube.com/watch?v=dQw4w9WgXcQ" Start job: curl -s -X POST http://127.0.0.1:3050/api/summarize \ -H "Content-Type: application/json" \ -d '{"url":"https://www.youtube.com/watch?v=dQw4w9WgXcQ","length":"short","voice":"podcast"}' Poll status with the returned jobId When complete, send the audioUrl to the user
For faster, cheaper text-only summaries: curl -s -X POST http://127.0.0.1:3050/api/quick-summary \ -H "Content-Type: application/json" \ -d '{"url":"YOUTUBE_URL","length":"short"}'
"Video may not have captions" The video needs subtitles enabled on YouTube Auto-generated captions may take time on new videos Audio URL not working Ensure BASE_URL in .env is publicly accessible Check firewall allows traffic on port 3050
ServiceCostSupadata~$0.001OpenRouter~$0.005-0.02ElevenLabs~$0.05-0.15Total~$0.06-0.17
Agent frameworks, memory systems, reasoning layers, and model-native orchestration.
Largest current source with strong distribution and engagement signals.