The Repurpose YouTube Video skill runs a fully automated pipeline that takes a single YouTube URL and produces publish-ready LinkedIn and Instagram posts — complete with AI-generated visuals and text overlays — before pausing for your explicit approval. Only after you confirm does it call the Blotato API to publish or schedule. Every step is logged to the terminal so you can follow along in real time.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.
Extract video and detect language
The skill calls
bc.extract_youtube_local(), which uses yt-dlp to pull metadata (title, description, tags, chapters, channel) and youtube-transcript-api to fetch the full transcript — no API key required for either library. Once the content is in memory, Claude inspects the transcript (or the title and description if the transcript is empty) to determine whether the video is in Spanish or English, storing the result as lang. You can override this with idioma: es or idioma: en.Resolve account IDs
Account IDs are read from your
.env file. If either ID is missing or blank, the skill calls the Blotato API via bc.get_accounts() to list connected profiles. A single match is used automatically; multiple matches pause the workflow and ask you to copy the correct ID into .env. The solo: flag is respected here — the other platform is skipped entirely from this step onward.Ask quality questions per platform
Tone and objective are resolved independently for LinkedIn and Instagram using the precedence chain
tono-<platform>: → tono: → ask. Step 3 runs only if at least one slot remains unresolved after applying all command-line overrides, and it asks only the missing slots — it never re-asks values you already provided.Write the posts
Claude writes both posts directly — no external LLM call is made. The LinkedIn post (150–300 words) uses a strong hook, structured key insights, the original YouTube URL for link preview, and 3–5 hashtags sourced from the video’s own
tags and chapters. The Instagram post (80–150 words) is punchier, uses “Link en bio” instead of a raw URL, and is capped at 5 hashtags. Every quote, number, and named claim must appear literally in the transcript; nothing is invented. Posts are not shown to you yet — they go through Step 4.5 first.Humanize the text (Step 4.5)
Before the posts leave memory, Claude silently runs a humanization pass that removes AI markers in both Spanish and English: filler connectors (“En conclusión”, “Furthermore”), inflated vocabulary (“disruptivo”, “seamless”), em-dash overuse (max one per post), decorative AI emojis stacked as generic decoration, and generic hook patterns (“¿Sabías que…?”, “Did you know that…?”). No user approval happens here — this is a silent refinement step.
Generate visuals
If you passed
images: in the command, those files are uploaded to Blotato via bc.upload_media_local() and used as-is (no overlay applied). Otherwise, the skill generates images with Freepik Mystic using English prompts that specify negative space for overlay placement and explicitly exclude embedded text. Pillow then renders the appropriate overlay: a hook phrase for LinkedIn (4:5, 1080×1350), a title overlay for Instagram single (1:1, 1080×1080), or three fixed-role slides (Hook / Info / Credits) for Instagram carousel. Each rendered PNG is uploaded to Blotato to get a stable public URL.Final approval
The skill presents a single consolidated block containing the full post text, visual URL, and timing for every platform. This is the only approval gate — it covers posts, visuals, and scheduling together. You respond with
sí to publish, editar to request changes (edits re-run humanization and show the block again), or cancelar to abort without publishing anything.Publish and summarize
After
sí, the skill calls bc.publish_post() for each platform — immediately if publicar: ahora, or with a scheduledAt timestamp if you specified a time (natural language is converted to ISO-8601 UTC). If dry-run: si was set, the publish call is skipped entirely. Step 8 then prints a summary with the public URL, status, and the first 80 characters of each post.Explore each stage in detail
Video extraction and language detection
How yt-dlp and youtube-transcript-api extract metadata and transcripts locally, and how language auto-detection works.
Writing and humanizing posts
LinkedIn and Instagram copy rules, hashtag sourcing from video metadata, faithful citations, and AI-tell removal.
Visual generation and overlays
Freepik Mystic image generation, Pillow text overlays, carousel slide roles, and error fallbacks.
Approval gate and publishing
The mandatory Step 6 approval block, edit and cancel flows, Blotato publishing, scheduling, and dry-run mode.