agentleFS
maystudiosmaystudios/claude-skills/video-download/SKILL.md

video-download

Skill21 starsChanged 7 months agoMITView on GitHub

Download videos from Instagram, YouTube, TikTok, Twitter/X, Facebook, and 1000+ other platforms as MP4 files using yt-dlp. Auto-recovers from YouTube bot detection ("Sign in to confirm you're not a bot", LOGIN_REQUIRED) by rotating through browser cookies and cookie files without manual intervention. Use this skill when the user wants to download, save, or grab one or more videos from any social media or video platform URL. Supports single videos or full playlists, configurable resolution, and saving to a specified target folder.

10 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use canvas-procedural-animation, svg-character-animation and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • LinHao-citySkill

    canvas-procedural-animation

    Use p5.js/canvas for local procedural character effects: particles, weather, squash/stretch, walk cycles, and environmental motion.

    Also in 4 projects that use this

  • LinHao-citySkill

    svg-character-animation

    Animate SVG character rigs with GSAP, CSS transforms, Remotion frame control, and HyperFrames-compatible browser previews.

    Also in 4 projects that use this

  • dAAAbSkill

    heygen

    Also in 3 projects that use this

  • +9 more from LinHao-city

The file

We split this skill into the rules it gives an agent

6 rules. 0 are common, 3 are distinctive, and 3 are very specific to this project.

  • 0

    Common

    Most of the 7 edited versions we read keep these.

  • 3

    Distinctive

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Run the script. If YouTube bot detection hits, the script auto-rotates strategies.

    line 30
  2. Very specific:

    When a request fails with bot-detection markers (Sign in to confirm, LOGIN_REQUIRED), the script automatically advances through these …

    line 68
  3. Distinctive:

    If all 4 strategies fail, the script prints a context-aware recovery walkthrough (see "Recovery instructions for the user" below).

    line 80
  4. Very specific:

    If the user explicitly passes --cookies-from-browser or --cookies, the chain is skipped and only that source is used (useful when the user …

    line 83
  5. Distinctive:

    When all strategies fail, the script auto-prints a step-by-step guide.

    line 89
  6. Very specific:

    If Chrome must stay open, recommend the user export cookies via the "Get cookies.txt LOCALLY" Chrome extension and drop the file in …

    line 153

“Common” is measured: kept by at least 6 in 10 of the 7 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Video Download Skill

Wraps yt-dlp with automatic recovery for YouTube anti-bot challenges.

Tool

scripts/download.py — installs yt-dlp on first run, merges video+audio to MP4, auto-rotates strategies on bot detection, uses a download-archive for safe resume.

Workflow

  1. Collect all URLs from the user's request.
  2. Determine output directory (current working directory if unspecified).
  3. Decide single-video vs playlist mode:
    • User says "this video" / single URL → leave default (single-video).
    • User says "playlist" / "all videos" / passes a playlist?list= URL → add --playlist.
  4. Run the script. If YouTube bot detection hits, the script auto-rotates strategies.
  5. Report which files were saved and which strategy worked.

Usage

# Single video, current directory
python scripts/download.py "https://www.youtube.com/watch?v=..."

# Multiple URLs to a folder
python scripts/download.py "URL1" "URL2" -o "/path/to/output"

# Full playlist as 720p MP4
python scripts/download.py "https://www.youtube.com/playlist?list=..." --playlist -o "./out"

# Force a specific browser for cookies (skips auto-rotation)
python scripts/download.py "URL" --cookies-from-browser chrome

# Force a manual cookies.txt file
python scripts/download.py "URL" --cookies "~/Downloads/www.youtube.com_cookies.txt"

# Higher quality
python scripts/download.py "URL" --max-height 1080

Flags

FlagDefaultNotes
-o, --outputcwdOutput directory
--max-height720Max video height (e.g. 1080, 480)
--playlistoffDownload full playlist; default is single-video
--cookies-from-browserautoForce one browser; skips auto-rotation
--cookiesautoForce one cookies.txt file; skips auto-rotation
--no-archiveoffDisable .download-archive.txt resume tracking

Auto-Recovery Strategy Chain

When a request fails with bot-detection markers (Sign in to confirm, LOGIN_REQUIRED), the script automatically advances through these strategies in order, stopping at the first one that succeeds:

  1. No auth + throttle — Default. Sleep intervals between requests.
  2. Player client rotation — default,tv,mweb,web_safari. Bypasses softer blocks.
  3. Browser cookies rotation — Tries chrome → edge → firefox → brave → vivaldi → opera, only browsers actually installed on the system.
  4. Cookies file discovery — Picks the newest valid cookies file from ~/Downloads/www.youtube.com_cookies.txt, youtube*cookies*.txt, cookies.txt (< 7 days old to be considered fresh).

If all 4 strategies fail, the script prints a context-aware recovery walkthrough (see "Recovery instructions for the user" below).

If the user explicitly passes --cookies-from-browser or --cookies, the chain is skipped and only that source is used (useful when the user already knows what works).

Recovery instructions for the user

When all strategies fail, the script auto-prints a step-by-step guide. Surface the most relevant subset to the user verbatim — it is concrete and actionable.

The guide branches based on what the script saw:

  • Cookies file found but rejected (file is stale): tell the user to re-export cookies right now, since YouTube invalidates cookies aggressively once a bot-block triggers.
  • No cookies file found: walk the user through the first-time export.
  • Otherwise: just list alternatives (close browser, change network, wait).

Cookie export walkthrough (the part the user will likely need)

  1. Install a cookie export browser extension:
  2. Open https://www.youtube.com in that browser, signed in to a Google account.
  3. Click the extension's toolbar icon:
    • "Get cookies.txt LOCALLY" → "Export As" → Netscape format → use the "Current Site" option so only youtube.com cookies are included.
    • Firefox "cookies.txt" → "Current Site" → Save.
  4. Save the file to the OS default Downloads folder. Any of these names work (auto-detected, newest wins):
    • www.youtube.com_cookies.txt (extension default — easiest)
    • youtube.com_cookies.txt
    • cookies.txt
  5. Re-run the same download command. Strategy 4 picks the file up automatically.

When to recommend each alternative

  • Close the browser (Chrome / Edge): fastest fix on Windows, where App-Bound Encryption locks the cookie database while the browser runs. Costs the user their open tabs unless "Continue where you left off" is enabled.
  • Different network (mobile hotspot, VPN): bypasses an IP-level block. Fastest if the user already has a VPN.
  • Wait it out: YouTube IP blocks lift on their own, usually within 24 h. Recommend only if no other option fits.

Resume / Re-Run Safety

--download-archive .download-archive.txt is enabled by default. Already-downloaded videos are skipped on re-runs, so it's safe to re-run after partial failure or when adding more URLs to the same folder. Pass --no-archive to disable.

Output Filename Pattern

  • Single video: {title} [{id}].mp4
  • Playlist: {NNN} - {title} [{id}].mp4 (zero-padded index keeps order in file managers)

--windows-filenames is always on, so files are safe across OSes.

Authentication Notes

  • Auto-rotation handles most cases without user input.
  • --cookies-from-browser chrome requires Chrome closed on Windows (App-Bound Encryption locks the cookie DB while Chrome is running).
  • If Chrome must stay open, recommend the user export cookies via the "Get cookies.txt LOCALLY" Chrome extension and drop the file in ~/Downloads/. The script picks it up automatically on next run.

Supported Platforms

YouTube (single + playlists), Instagram, TikTok, Twitter/X, Facebook, Vimeo, Reddit, and 1000+ more via yt-dlp.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.