بنقرة واحدة
youtube
Extract transcripts from YouTube videos via the YouTube caption system
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Extract transcripts from YouTube videos via the YouTube caption system
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
Extract text from PDF documents
Extract text from Microsoft Word documents
Extract text from images using a vision LLM
Ingest Markdown and plain text files
Extract text from Microsoft PowerPoint presentations
Fetch and extract text from web URLs
استنادا إلى تصنيف SOC المهني
| name | youtube |
| version | 1.0 |
| description | Extract transcripts from YouTube videos via the YouTube caption system |
| entry | {"script":"scripts/main.py","class":"YoutubeSkill"} |
| triggers | {"extensions":["https://www.youtube.com/","https://youtu.be/","https://www.youtubekids.com/"],"intents":[]} |
| requires | ["youtube-transcript-api"] |
| author | axoviq.com |
| license | AGPL-3.0-or-later |
Extracts the transcript (captions) from a YouTube video using the YouTube caption system — no API key or audio download required. Optionally uses a vision-capable LLM to produce a structured summary (Overview, Topics, Key takeaways) before the raw transcript.
pip install youtube-transcript-api
Transcript only (no LLM required):
import asyncio
from synthadoc.skills.youtube.scripts.main import YoutubeSkill
skill = YoutubeSkill() # no provider — returns raw timestamped transcript
async def main():
result = await skill.extract("https://www.youtube.com/watch?v=dQw4w9WgXcQ")
print(result.text) # "[0:00] text [0:04] text ..."
print(result.metadata) # {"video_id": "...", "title": "...", "url": "..."}
asyncio.run(main())
With LLM summarization (pass any provider that implements complete()):
skill = YoutubeSkill(provider=my_provider)
result = await skill.extract(url)
# result.text contains:
# ## Executive Summary
# <Overview / Topics / Key takeaways>
#
# ## Transcript
# [0:00] ...
The provider must implement:
async def complete(messages, system=None, temperature=0.0, max_tokens=4096)
-> object with .text (str), .input_tokens (int), .output_tokens (int)
Message (used to build the messages list) is importable from
synthadoc.skills.base:
from synthadoc.skills.base import Message
https://www.youtube.com/, https://youtu.be/, or
https://www.youtubekids.com/To search YouTube by topic instead of ingesting a specific URL, use the web search skill — it filters Tavily results to YouTube domains automatically:
synthadoc ingest "youtube Moore's Law"
synthadoc ingest "youtube kids: Sesame Street"
synthadoc ingest "search for youtube: history of computing"