Downer
A native macOS app for downloading video and audio. Paste a link, add as many more as you like, and let Downer work through them in order.
Built for macOS 26 with Liquid Glass. Works on macOS 14 and later.
What's new in 2.0
- Liquid Glass design. Real glass on macOS 26 and later, a refined material look on macOS 14 and 15, and solid surfaces when Reduce Transparency is on.
- A download queue. Add a video, a playlist, or several of each while something is already downloading. Everything is looked up first, then downloaded one after another.
- Playlists done properly. A playlist shows up as a group with one row per video, each with its own progress. Failed videos can be retried on their own.
- Real progress. A true progress bar and percentage, speed and time left, instead of raw tool output.
- Set up from Settings. Downer finds
yt-dlp,ffmpegandffprobe, and can install them for you. - A smarter menu bar. A new icon that fills with progress and shows the queue count, plus a global shortcut that opens the popover with your copied link already filled in.
- A new app icon built in layers for Liquid Glass, with dark, clear and tinted looks.
- Appearance options. Follow the device, or choose light or dark, and turn the background glow on or off.
Features
Downloading
- Download video + audio, audio only, or video only.
- Choose the resolution (from 240p up to 8K, capped at what the video offers), the container (MP4, MKV or WebM), the audio quality (best available, or capped at 128, 70 or 50 kbps), and the audio format (keep the source, or convert to MP3, AAC or Opus).
- Pick where files are saved. Every choice is remembered, and shared between the window and the menu bar.
- Each queued link keeps the settings it was added with, so changing a setting later never affects links that are already waiting.
The queue
- Add at any time. Paste a link and press Return, or press Add to Queue. The field clears so you can paste the next one. Pasting several links at once adds them all.
- Mix freely. Single videos, playlists, or any combination. Links that are not valid, or are already in the queue, are ignored politely.
- One at a time, in order. Downloads run strictly one after another, so your connection and your disk are never hammered.
- A tray that comes up from the bottom. With more than one link, or a playlist, the download area becomes a tray. Drag the handle up to see every link and every video, drag it back down to tuck it away. Tap the header to toggle.
- Control each item. Remove a waiting link, cancel the one running, cancel everything, retry what failed, or clear what finished.
- Automatic retry. A network hiccup (for example an HTTP error) is retried once on its own. Links that are genuinely unavailable are not.
- Show in Finder reveals every file the queue produced.
Menu bar and shortcut
- Downer lives in the menu bar. Click the icon for a compact popover with a link field and a Download button.
- Set a global shortcut in Settings. Copy a link anywhere, press the shortcut, and the popover opens with the link already filled in. Press Return to start.
| Menu bar icon | Meaning |
|---|---|
| Double chevron | Idle |
| Ring with a percentage | Downloading one video |
| Ring with 3/12 | Downloading from a queue or a playlist (video 3 of 12) |
| Check mark | Finished (shown for a couple of seconds) |
| Orange dot | Something needs attention: a tool is missing, or a download failed |
Settings
- Appearance: Device, Light or Dark, and an optional background glow.
- Global shortcut: record any key combination.
- Requirements: shows whether
yt-dlp,ffmpegandffprobeare installed, and their versions. Missing tools have an Install button.
brew install for you.
- Without Homebrew, yt-dlp is downloaded from its official release into Downer's own folder. ffmpeg needs Homebrew, and Downer will tell you so.
- Already installed somewhere else? Use Browse… to point Downer at it.
Screenshots
![]() Light mode |
![]() The tray, tucked away |
![]() The tray, open, in light mode |
Using Downer
- Open Downer, or click its menu bar icon.
- Paste a video or playlist link and press Return.
- Choose Video + Audio, Audio Only or Video Only, and the quality and format you want.
- While it downloads, paste more links. They join the queue.
- Drag the tray handle up whenever you want to see what is happening to each video.
- When the queue finishes, press Show in Finder.
Installation
1. Download and install
Head to the GitHub Releases page and download the latest .dmg.
- Open the
.dmgand dragDowner.appinto your/Applicationsfolder. - Open Settings → Requirements and press Install next to anything that is missing. (
ffmpegneeds Homebrew. You can also runbrew install yt-dlp ffmpegyourself.)
2. Allow the app to run
macOS may block the app, saying:
"Downer.app can't be opened."
This happens because the app is not signed with a paid Apple Developer account. You can allow it with Terminal:
- Sign the app locally with an ad-hoc signature:
codesign --force --deep --sign - /Applications/Downer.app
- Remove the quarantine flag so macOS treats it as safe:
xattr -dr com.apple.quarantine /Applications/Downer.app
3. Folder access
The first time Downer saves into a protected folder such as Downloads, macOS asks whether to allow it. Choose Allow. You can change this later in System Settings → Privacy & Security → Files & Folders.
Troubleshooting
| Problem | What to try |
|---|---|
| A "Setup needed" banner appears | Open Settings → Requirements and press Install next to what is missing. |
| Install is greyed out for ffmpeg | Install Homebrew first, then try again. |
| A video failed with an HTTP error | Downer retries these once automatically. If it still fails, press Retry on the row. |
| A video says "unavailable" | The video is private, removed or restricted in your region. Retrying will not help. |
| Nothing is saved | Check the Save to folder exists, and that Downer has permission to write to it. |
| Downloads suddenly stop working for a site | Update the tool: brew upgrade yt-dlp (sites change often). |
Building from source
Requirements
- macOS 14 or later to run. Xcode 26 or later to build, so the Liquid Glass APIs are available.
yt-dlp,ffmpegandffprobeinstalled anywhere on disk, or installed from Downer's Settings.
Steps
- Clone the repository:
git clone https://github.com/dsameendra/Downer.git
cd Downer
- Open
Downer.xcodeprojin Xcode. The KeyboardShortcuts package is fetched automatically. - Choose your own signing team: select the Downer target, open Signing & Capabilities, and pick your team. Automatic signing is enough for local builds.
- Build and run.
Installing a local build
- In Xcode choose Product → Archive.
- In the Organizer choose Distribute App → Custom → Copy App.
- Copy the exported
Downer.appinto/Applications.
How it is put together
| File | Role |
|---|---|
| DownloadManager.swift | The queue: looks links up, runs yt-dlp one at a time, turns its output into progress |
| DownloadJob.swift | One queued link and the settings it was added with |
| PlaylistModel.swift | Follows a playlist run line by line (current video, progress, failures) |
| QueueTray.swift | The draggable tray with every link and video |
| DependencyManager.swift | Finds and installs yt-dlp, ffmpeg and ffprobe |
| DesignSystem.swift | Liquid Glass, materials, motion, buttons and window chrome |
| MenuBarIcon.swift | The menu bar icon and its states, drawn in code |
| Downer.icon | The layered app icon |
See PRODUCT.md for who Downer is for and DESIGN.md for the design decisions behind it.
Disclaimer
This tool is intended solely for personal use and educational or research purposes.
Downloading videos from YouTube may violate their Terms of Service unless the video has an explicit download button or the content is licensed in a way that permits downloading.
By using this app, you assume full responsibility for any content you download and how you use it. The developer does not condone or support any misuse of this tool to infringe upon copyrights or violate platform rules.
Built with ❤️ using yt-dlp and ffmpeg. Huge credit to the amazing developers behind these tools.


