
Youtube Downloader
Run a repeatable agent playbook for yt-dlp downloads when PO tokens, proxies, cookies, or zsh URL quoting would otherwise break the job.
Overview
YouTube Downloader is an agent skill for the Build phase that runs a yt-dlp SOP with PO tokens, proxies, and cookie-aware clients so solo builders can fetch YouTube media without common 403 and format failures.
Install
npx skills add https://github.com/daymade/claude-code-skills --skill youtube-downloaderWhat is this skill?
- Eight-step internal SOP covering quoted URLs, proxy parity, cookie consent, and PO token client selection (web_safari vs
- PO Token setup with Docker bgutil preferred and browser WPC fallback when Docker is unavailable
- Explicit recovery paths for bot sign-in prompts, "Only images are available", SSL EOF, and fragment errors
- Requires HTTP_PROXY/HTTPS_PROXY/ALL_PROXY alignment across yt-dlp and token minting
- Security scan passed (gitleaks + pattern validation) per bundled ingest metadata
- 8 numbered SOP steps for yt-dlp and PO token failures
Adoption & trust: 536 installs on skills.sh; 1.2k GitHub stars; 1/3 security scanners passed (skills.sh audits).
What problem does it solve?
You need YouTube files in a script or agent session but hits bot checks, missing PO tokens, or broken URLs under zsh and unstable proxies.
Who is it for?
Indie builders automating research captures, course mirrors, or internal media pulls where YouTube actively blocks naive downloaders.
Skip if: Teams that only need occasional one-off downloads without proxy or PO infrastructure, or anyone who cannot approve cookie/browser access when YouTube demands sign-in.
When should I use this skill?
An agent or operator must download YouTube content with yt-dlp and PO tokens, proxies, or cookies are in play.
What do I get? / Deliverables
After the skill runs, downloads follow a stable provider order, corrected clients, and retry rules instead of ad-hoc yt-dlp flags.
- Successful media download via yt-dlp
- Documented provider and client configuration for the session
Recommended Skills
Journey fit
Canonical shelf is Build because the skill wires external CLI and browser-side providers into the agent workflow, not a launch or growth task. Integrations fits hooking yt-dlp, Docker bgutil, WPC, and proxy env vars into one operational path.
How it compares
Use instead of improvising yt-dlp flags in chat when PO tokens and proxy coupling are required.
Common Questions / FAQ
Who is youtube-downloader for?
Solo and indie builders who automate YouTube retrieval inside agent or CLI workflows and already accept proxy and browser cookie steps when YouTube blocks bots.
When should I use youtube-downloader?
Use it in Build → integrations when an agent job must download YouTube via yt-dlp and you see PO token errors, sign-in prompts, or "format not available" after a naive command.
Is youtube-downloader safe to install?
Bundled ingest notes report a passed gitleaks-style scan; review the Security Audits panel on this Prism page and treat network, browser, and cookie permissions as high trust before enabling in production agents.
SKILL.md
READMESKILL.md - Youtube Downloader
Security scan passed Scanned at: 2025-11-19T01:20:50.532287 Tool: gitleaks + pattern-based validation Content hash: 6dc9ae011eb2d8ca1ba73ceb2c6d8aa031979f7e3bb9b31bfe78fdb7283f7f66 # YouTube Downloader Internal SOP Use this SOP to avoid common yt-dlp failures and confusion: 1. Quote YouTube URLs in shell commands (zsh treats `?` as glob). Example: `'https://www.youtube.com/watch?v=VIDEO_ID'`. 2. Ensure proxy is active for both yt-dlp and PO Token providers (HTTP_PROXY/HTTPS_PROXY/ALL_PROXY). 3. If you see "Sign in to confirm you're not a bot", request cookie permission and use browser cookies. 4. Start the PO Token provider before downloading. Prefer Docker bgutil; fall back to browser-based WPC when Docker is unavailable or fails. 5. Use `web_safari` client when cookies are present; otherwise use `mweb` for PO tokens. 6. Keep the browser window open while WPC is minting tokens and make sure it can reach YouTube through the same proxy. 7. If you see "Only images are available" or "Requested format is not available", treat it as PO token failure and retry after fixing provider/browser state. 8. If you see SSL EOF or fragment errors, treat it as proxy instability. Retry with progressive formats or switch to a more stable proxy. # PO Token Setup Guide ## What are PO Tokens? Proof of Origin (PO) Tokens are cryptographic attestations required by YouTube for certain clients and request types. Without them, requests for affected format URLs may return HTTP Error 403 or result in restricted format access. ## Why PO Tokens Matter As of late 2024/early 2025, YouTube increasingly requires PO tokens for high-quality video formats (1080p, 1440p, 4K). Without PO token support: - **Android client**: Only 360p available (format 18) - **Web client**: nsig extraction failures, missing formats - **iOS client**: Similar restrictions With PO token provider: **Full access** to all quality levels including 4K. ## Recommended Solution: PO Token Provider Plugin ## Operational SOP (Internal) Use this checklist to prevent common failures: 1. Quote URLs in shell commands to avoid zsh globbing (`'https://www.youtube.com/watch?v=VIDEO_ID'`). 2. Ensure proxy is active for yt-dlp and token providers (HTTP_PROXY/HTTPS_PROXY/ALL_PROXY). 3. If YouTube asks to confirm you’re not a bot, use browser cookies. Do not proceed without cookies. 4. Start the PO token provider before downloading. - Prefer Docker bgutil when available. - Fall back to WPC (browser) if Docker is missing or fails. 5. Use `web_safari` when cookies are present; use `mweb` otherwise for PO tokens. 6. Keep the browser window open during WPC token minting. 7. If you see “Only images are available” or “Requested format is not available”, treat it as PO token failure and retry after fixing provider/browser state. 8. If you see SSL EOF/fragment errors, treat it as proxy instability and retry with progressive formats or a better proxy. ### Automatic Setup (Preferred for non-technical users) If Docker is available, you can start the PO token provider automatically: 1. Install the plugin into yt-dlp's Python environment (one-time): ```bash <YTDLP_PYTHON> -m pip install bgutil-ytdlp-pot-provider ``` In China, prefer a local PyPI mirror: ```bash <YTDLP_PYTHON> -m pip install bgutil-ytdlp-pot-provider -i https://pypi.tuna.tsinghua.edu.cn/simple ``` 2. Start the provider (Docker): ```bash docker run -d --name bgutil-pot-provider -p 4416:4416 --init brainicism/bgutil-ytdlp-pot-provider ``` 3. Retry yt-dlp downloads using a web client (e.g., `mweb`) so PO tokens apply. ### Installation Install a PO token provider plugin to handle token generation automatically. The plugin must be installed into yt-dlp's own Python environment. **Step 1: Locate yt-dlp's Python** ```bash head -1 $(which yt-dlp) # Output example: #!/opt/homebrew/Cellar/yt-dlp/2025.10.22/libexec/bin/python ``` **Step 2: Install Plugin** ```bash # For Homebrew-installed yt-dlp (macOS) <YTDLP_PYTHON> -m pip install