The skill extracts everything it needs from a YouTube video locally — no Blotato API key is consumed during this step. Two Python libraries do the work: yt-dlp fetches video metadata, and youtube-transcript-api fetches the transcript. The result is a single dictionary that Claude uses to write both posts.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Zoen-DEV/repurpose-youtube-video/llms.txt
Use this file to discover all available pages before exploring further.
What gets extracted
bc.extract_youtube_local() returns the following dictionary:
summary and keyPoints are intentionally empty in the returned dict. Claude reads the transcript directly and derives its own summary and key points — this avoids a redundant API call and keeps the extraction step free of credentials.
How extraction works
The function uses the yt-dlp Python API (not the CLI binary) to pull metadata without a separatePATH dependency, and youtube-transcript-api to fetch the transcript preferring Spanish variants first, then English, then any available language:
&t=90s, ?t=90) is stripped from the URL before extraction to prevent yt-dlp from treating it as a seek offset. Neither library requires a YouTube API key — only yt-dlp and youtube-transcript-api must be installed:
Transcript fallback
Ifextract_youtube_local() raises an exception (private video, no subtitles, region-blocked content), the skill applies a two-step fallback:
- Strip to bare
?v=— removes any extra query parameters and retries the call once. - Continue with title only — if the retry also fails, the skill prints an
[aviso]and proceeds using only the video title:
Language detection
Theidioma: parameter controls which language the posts are written in.
| Value | Behavior |
|---|---|
es | Force Spanish, skip detection |
en | Force English, skip detection |
auto (default) | Detect from content, as described below |
idioma: auto (or idioma: is absent), Claude inspects the transcript field first. If the transcript is empty, it falls back to title + description. Whichever language dominates the text becomes lang.
Only es and en are supported output languages. If the source content appears to be in a third language (e.g. French, Portuguese, German), the skill defaults to es and warns:
lang value ("es" or "en") is then used in Steps 4, 4.5, and 5 to write copy and render overlay text in the correct language.