Most errors in the skill fall into one of three categories: missing or incorrect credentials, upstream API limits, and optional-dependency failures (Pillow,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.
yt-dlp). The accordions below cover every known issue and its fix.
BLOTATO_API_KEY not found
BLOTATO_API_KEY not found
Cause: The
.env file does not exist or is in the wrong folder.The skill searches for .env in two locations, in order:- The current working directory (wherever you launched Claude Code from).
- The skill root:
~/.claude/skills/repurpose-youtube-video/.
.env file is in one of these two locations and contains BLOTATO_API_KEY=your_key_here. See Installation for the full setup steps.401 Unauthorized
401 Unauthorized
422 too many hashtags (Instagram)
422 too many hashtags (Instagram)
429 Too Many Requests
429 Too Many Requests
Cause: The Blotato or Freepik rate limit was hit. Blotato’s presigned upload endpoint allows 10 requests per minute per user.Fix: The skill auto-retries once after a 10-second wait. If the error happens repeatedly (e.g. generating a carousel with many slides in quick succession), wait a minute and re-run the command.
Multiple LinkedIn/Instagram accounts found
Multiple LinkedIn/Instagram accounts found
Cause: More than one account of the same platform is connected in your Blotato workspace. The skill cannot choose automatically.Fix: When this happens, the skill prints a list of available account IDs with their display names. Copy the ID you want into your orThen run the command again.
.env as:Transcript empty / extraction failed
Transcript empty / extraction failed
Cause: The video has no subtitles, is private, or is region-blocked. If you need more content fidelity, try a different URL format (e.g.
youtube-transcript-api cannot fetch a transcript in these cases.Fix: The skill continues with the video title and description only, and prints:youtu.be/ID vs youtube.com/watch?v=ID), or use a video that has subtitles enabled.Visual not generated
Visual not generated
Cause: Either
FREEPIK_API_KEY is missing from your .env, or the Freepik API timed out.Fix:- If the key is missing, add
FREEPIK_API_KEY=your_key_hereto your.envand re-run. - If the key is present and the error persists (task timeout or API outage), the skill publishes text-only with a
[aviso]warning. You can also pass your own visuals using theimages:field to bypass AI generation entirely.
Carousel publishes without text overlay
Carousel publishes without text overlay
Cause: Pillow is not installed, or one of the The skill automatically falls back to the clean Freepik image when an overlay render fails, so the post still goes out — just without the text overlay.
ov.render_* calls failed at runtime.Fix: Install Pillow:Font overlay looks bad
Font overlay looks bad
Cause: None of the expected system fonts (Arial on Windows, Helvetica on macOS, DejaVu/Liberation on Linux) were found, so Pillow used its default bitmap font. This fallback renders at very low quality.Fix: Place a
font-bold.ttf (and optionally font.ttf for the regular weight) in the scripts/ directory alongside image_overlay.py. Alternatively, set the OVERLAY_FONT_PATH environment variable to the absolute path of any .ttf or .otf file on your system:Media upload to Blotato fails
Media upload to Blotato fails
Cause: The
/v2/media/uploads endpoint is rate-limited to 10 requests per minute, or the presigned URL expired before the PUT request completed.Fix: Retry the command. The skill falls back to the Freepik CDN URL if the Blotato upload fails, so the post can still publish — though the Freepik URL may have a shorter CDN lifetime than a Blotato-hosted URL.