Video Archival & yt-dlp
yt-dlp, gallery-dl, TubeArchivist — download, archive, and organize video from YouTube and 1000+ other sites.
The "before that channel deletes the video" toolkit. For static-page web archiving see Self-host Web Archiving. For local media library playback see File Uploads. For encoding the archived files see Encoding & Codecs. For subtitle extraction see Subtitles.
Universal video downloaders
- ★★ yt-dlp — Unlicense / public domain OSS; the universal video downloader; fork of
youtube-dlthat's now the canonical project. Supports 1500+ sites (YouTube, Twitch VODs, Twitter/X, Reddit, TikTok, Bilibili, Instagram, Vimeo, podcast feeds, news sites). Format selection, sponsorblock, chapter splits, embedded subs, metadata sidecar. The default — period. All other tools below either wrap it or are niche complements. - youtube-dl — Unlicense OSS; the original; less actively developed than yt-dlp; use yt-dlp.
- yt-dlp-frontend (cobalt.tools) — AGPL OSS hosted; web UI in front of yt-dlp.
- stacher — closed source freemium; polished GUI for yt-dlp on Win/Mac.
- Open Video Downloader — GPL OSS Electron GUI for yt-dlp.
- JDownloader — closed source free; the long-running downloader for everything; less elegant than yt-dlp but covers some hosters yt-dlp doesn't.
- Allavsoft / 4K Video Downloader — closed source paid; consumer GUIs over the same job; hard to recommend over a yt-dlp wrapper.
Image / gallery siblings (same authors / shape)
- ★ gallery-dl — GPL OSS; the yt-dlp counterpart for images / galleries (Flickr, Twitter media, Reddit subs, Pixiv, DeviantArt, ArtStation, Imgur, Tumblr). Pair with yt-dlp for a complete archival kit. See Self-host Web Archiving for HTML / page archiving.
Self-host YouTube archive systems
- ★ TubeArchivist — GPL OSS Docker stack; subscribe to channels, archive automatically, browse a self-hosted UI; the "self-host my YouTube subscriptions" default. Pair with Jellyfin / Plex / Emby for client playback. See Self-host Web Archiving.
- Pinchflat — AGPL OSS; lighter alternative; auto-download from channels.
- Tubesync — GPL OSS; channel sync into a Plex / Emby library.
- YouTube DLP Material — GPL OSS WebUI for yt-dlp; lightweight.
- MeTube — AGPL OSS; minimal yt-dlp web UI; drop-in container.
- YouTubeDL-Material — community fork; more features, heavier.
- Pinepods / Podgrab — for podcast-feed archiving (related neighbor).
Twitch VOD / live archive
- ★ yt-dlp — Twitch VODs and clips; the default.
- TwitchDownloader / TwitchDownloaderCLI (lay295) — MIT OSS; faster Twitch VOD + chat replay download with chat overlay rendering.
- streamlink — BSD OSS; pipe live Twitch / YouTube Live into a player or recorder; the right tool for "save this stream as it happens."
- streamlink-twitch-gui — BSD OSS GUI.
Live / in-progress streams
- streamlink + ffmpeg — record live now:
streamlink twitch.tv/<channel> best -o vod.tsthenffmpeg -i vod.ts -c copy vod.mp4. - yt-dlp — also handles live;
--live-from-startfor YouTube Live from the beginning. - Twitch VOD auto-download with TubeArchivist + plugins.
Subtitle / caption archival
yt-dlp --write-subs --write-auto-subs --convert-subs srt— pulls human and auto-generated YT subs as SRT alongside the video.yt-dlp --write-info-json— full metadata JSON sidecar; future-proof archive.- See Subtitles for editing the result.
Format selection cheats
- Best video + best audio:
-f "bv*+ba/b"(default-ish; remuxes via ffmpeg). - Force MP4 / H.264:
-f "bv*[ext=mp4][vcodec~='avc1']+ba[ext=m4a]/b[ext=mp4]". - Pin a max resolution:
-f "bv*[height<=1080]+ba/b[height<=1080]". - AV1 only:
-f "bv*[vcodec~='av01']+ba/b". - Just the audio (podcast-style):
-x --audio-format opus. - Sponsorblock skip:
--sponsorblock-mark all(mark in chapters) or--sponsorblock-remove sponsor.
Patterns
- Always write
--write-info-json --write-thumbnail --write-subs --write-auto-substo your archive. - Use
-o "%(uploader)s/%(upload_date)s - %(title).100s [%(id)s].%(ext)s"for sortable Plex-friendly file names. - Schedule via cron (
0 4 * * * yt-dlp -a channels.txt --download-archive seen.txt ...) —--download-archiveprevents re-downloads. - Use
--cookies-from-browserto authenticate to age-restricted / member-only content. - Rate-limit politely —
--limit-rate 5M --sleep-requests 1.
Legal flags
- Personal archival of public videos: usually fine in most jurisdictions; redistribution / re-upload is not.
- Twitch VOD downloads: against ToS for some uses; widely tolerated for personal archive.
- DRM streams (Netflix, Disney+, etc.): yt-dlp specifically does not circumvent DRM. If you want them archived, that's another (legally murky) toolset.
- Educational fair-use is a defense, not a license.
Pick this if…
- Default video downloader, anywhere, anything: yt-dlp.
- Archive a YouTube channel for life: TubeArchivist.
- Archive Twitch VODs + chat: TwitchDownloaderCLI.
- Record a live stream right now: streamlink + ffmpeg.
- Image / gallery sites instead of video: gallery-dl.
- Want a GUI: Stacher (paid) or Open Video Downloader (free).
- Self-host minimal web UI: MeTube.