Vid Archiver GUI

Vid Archiver GUI

A graphical front end for yt-dlp, inspired by the yt-dlg oleksis fork. It's designed to be dead simple to use and to fix the minor things that annoyed me with other GUIs. The big addition is folder rules, which pick the destination folder automatically based on where a video comes from.

This was an experiment with Claude Opus 5.5 and it went fairly well. Since I reviewed and edited the code I do not consider this to be "vibe coded" but almost all the code in one way or another was written by Claude. I consider it ready to use.

Windows, macOS and Linux · Free and open source (Apache 2.0)

Download Source on GitHub Download from the Microsoft Store
Downloads tab: four Blender open movies, each filed into a folder by a rule, one finished with its thumbnail, one downloading and two waiting Downloads tab in the dark theme: four Blender open movies, each filed into a folder by a rule, one finished with its thumbnail, one downloading and two waiting

How it works

  1. Paste one or more links and click Add.
  2. When it's next in line, yt-dlp looks it up: the site, channel, playlist and title. Only a few links are looked up ahead of the downloads, so a long list doesn't get you blocked.
  3. Your folder rules pick where it goes, and can pick the preset and cookies too.
  4. It downloads, a few at a time. Pause keeps what's done so far, and Resume carries on from there, even after you restart the app.

Presets are plain yt-dlp options, so you can paste in the command you already use. If a folder isn't right, change it on the download and click Remember to make it a rule. When something fails, the app says why in plain words, retries network trouble by itself, and points you at cookies or a slower pace when that's what's needed.

Folder rules

Rules are checked top to bottom and the first match decides. If nothing matches, the fallback folder is used.

  • Match on site, domain, channel, playlist, title or URL (Equals, Contains, StartsWith or Regex)
  • Use tokens like {site}, {channel} or any yt-dlp field in the folder path, with fallbacks like {channel|uploader|"Unknown"}
  • Folders are named the way yt-dlp names files, so they match the ones it made, or in plain ASCII if you prefer
  • Test a URL shows which folder a link would get
  • Set a folder by hand, then click Remember to turn it into a rule
Folder rules tab
WhenSave to
Site equals WikimediaVideos\Open movies\{title}
Channel contains lectureVideos\Learning\{channel|uploader}
Domain equals archive.orgMusic\Internet Archive\{title}
No rule matchedVideos\{site}\{channel|uploader|"Unknown"}

Made for archiving

The default preset is set up for keeping videos, not just watching them once.

Setup, updates and privacy

The first time you open it, the app installs yt-dlp, and FFmpeg and deno are one click each. Everything it installs comes from the official releases and is checked against the published SHA-256 checksums. If you already have them installed, it uses yours.

yt-dlp is checked for updates every day. If a new release breaks something, you can roll back to the previous one with one click. Each preset can use stable, nightly or master yt-dlp, your own fork, or youtube-dl.

There are no accounts, analytics or telemetry. The app only connects to GitHub, for tools and update checks, and to the sites you download from. See the privacy policy, and the README for everything else.

Screenshots

Download

Get the latest build from Releases. Builds are self-contained, so you don't need .NET installed.

Windows 10/11

The easiest way is the Microsoft Store: it's signed and updates itself. Or get the standalone .exe in a .zip from Releases (win-x64, or win-arm64 for ARM PCs). That one isn't code-signed, so SmartScreen may warn on first launch: choose More info → Run anyway. The zip version is portable: it keeps its settings in a data folder next to the .exe.

Download from the Microsoft Store

Linux x64/arm64

An .AppImage: make it executable and run it. Or a .tar.gz: unpack it and run ./install.sh (--remove uninstalls).

macOS 14+

Not notarized, so macOS blocks it the first time: open it once, then choose System Settings → Privacy & Security → Open Anyway (on macOS 14, right-click the app and choose Open).