Tooling

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-dl that'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.
    yt-dlp -f "bv*+ba/b" --embed-subs --embed-chapters --embed-thumbnail --add-metadata <url>
  • 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.
  • 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.ts then ffmpeg -i vod.ts -c copy vod.mp4.
  • yt-dlp — also handles live; --live-from-start for 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-subs to 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-archive prevents re-downloads.
  • Use --cookies-from-browser to authenticate to age-restricted / member-only content.
  • Rate-limit politely--limit-rate 5M --sleep-requests 1.
  • 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.

On this page