dis is a CLI and TUI for downloading, trimming, and compressing videos. It
uses yt-dlp for downloads and FFmpeg for video processing.
Install FFmpeg and yt-dlp first. GIF export also requires gifski.
Download a binary, deb package, or RPM package from GitHub Releases.
nix profile install github:4evy/disAdd dis to your flake inputs:
inputs.dis.url = "github:4evy/dis";Use dis.packages.${system}.default wherever you define the packages for a
system.
Build with Go:
go build -o dis .Or build with Nix:
nix buildRun the local checks with just:
just test
just lint
just test-packagesFor web URLs, dis automatically finds Chrome, Chromium, Brave, Edge, Helium,
and Firefox profiles. It asks the installed yt-dlp to validate each browser
session against the requested URL, uses the first working session, and falls
back to no cookies when none work. This works with current and future yt-dlp
extractors without maintaining a separate site list in dis.
Firefox containers are treated as separate sessions. dis exports each
session to an owner-only temporary cookie jar, reports the profile it selects,
and removes every jar when the command exits.
Use --cookies-from-browser to override automatic selection or to load a
specific profile:
dis --cookies-from-browser helium:~/.config/net.imput.helium/Default URL
dis --cookies-from-browser firefox:default-release URLLinux Secret Service and KWallet, macOS Keychain, and Windows DPAPI are
handled automatically, so don't add yt-dlp's +KEYRING suffix. Helium's
distinct macOS Keychain entry is supported too.
You can also set cookies_from_browser in ~/.config/dis/config.toml.
Current Chrome and Edge releases on Windows may use v20 app-bound
encryption, which third-party processes can't decrypt. Use Firefox on Windows
when that applies.
Open a GitHub issue to report a bug or request a feature.
dis is available under the MIT License.
