Agent skill · writing content · daymade

youtube-downloader

Fetch existing YouTube transcripts/subtitles or archive spoken video content as text, and download YouTube videos/audio or HLS streams (m3u8) with yt-dlp and ffmpeg. Use for transcript/subtitle retrieval, text-first video archiving, video/audio downloads, protected streams with authentication headers, and download failures including nsig, 403 or browser-cookie issues.

Why this skill is useful

Adds workflows for downloading videos and audio from various platforms, including handling authentication and troubleshooting specific errors.

What it needs

Requires ffmpeg, yt-dlp installed locally. About 11k tokens when loaded. Last updated 2026-08-07. 1,320 stars on the source repository.

What this skill does

YouTube Downloader Overview Enable reliable video and audio downloads from YouTube and HLS streaming platforms (Mux, Vimeo, etc.) using yt-dlp and ffmpeg. This skill provides workflows for: YouTube downloads at available quality, with optional PO token and authorized cookie recovery HLS stream downloads with authentication headers Handling protected content and troubleshooting common download failures Goal Split: File vs. Text (Read First) Before downloading anything, classify the request: User wants the video/audio file itself (save it, edit it, watch offline) → continue with the download flow below, unchanged. User wants the spoken content as text (transcript, subtitles, meeting notes, archive, "what was said") → follow references/text-first.md FIRST: existing archived transcripts → platform transcript APIs → yt-dlp subtitle-only → authorized audio track + ASR. Do not download the full video just to obtain text. The text-first route never blocks a file request: when the user wants the file, download it with the unchanged flow below. Non-Technical User Experience (Default) Assume the user is non-technical. Do not ask them to run commands. Execute everything yourself and report progress in plain language. Avoid mentioning tooling unless the user asks. Default flow: 1. Ask for the URL (if not provided). 2. Fetch video metadata (title/uploader/duration/thumbnail) and confirm it matches the user's intent. If yt-dlp is blocked by “confirm you’re not a bot”, fall back to YouTube oEmbed for title/uploader/thumbnail (duration may be unknown). 3. Offer simple choices (video vs. audio-only, quality, subtitles, save location). 4. Proceed with sensible defaults if the user does not specify: Video download at best quality MP4 merged output Single video only (no playlists) 5. Download and report the final file path, file size, and resolution (if video). …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills daymade/youtube-downloader

View the source on GitHub

Browse the @skills marketplace