pixel-point/media-downloader
pixel-point/media-downloaderBeautiful native macOS video downloader. Download and trim in one app.
From the README
Media Downloader Download for macOS
Beautiful native macOS video downloader with support for thousands of sites through yt-dlp.
Media Downloader lets you download, quickly copy, reveal, and trim videos from social media and video platforms in one focused app. Paste a URL from services such as YouTube, Instagram, X, TikTok, Vimeo, Reddit, and many other sites supported by yt-dlp; the app downloads an MP4, copies the finished file to the clipboard, saves it to your chosen folder, and keeps a local history for fast access.
Features
- Download videos from thousands of
yt-dlpsupported websites. - Paste a URL and start downloading from a clean Spotlight-style macOS window.
- Convert and merge downloads to broadly compatible MP4 output with H.264/AAC when possible.
- Automatically copy the downloaded file after completion.
- Keep a local download history with thumbnails.
- Copy files again, reveal them in Finder, or open the original source URL from history.
- Trim downloaded videos and either save the trimmed MP4 or copy the trimmed clip.
- Choose and persist a custom download folder.
- Check GitHub Releases for app updates from the settings menu.
Local Development Requirements
These requirements are only needed when building or running the app locally from source:
- macOS 14 or newer
- Xcode Command Line Tools or Xcode with Swift 5.9+
yt-dlpffmpeg
For local development, install the Xcode Command Line Tools:
xcode-select --install
For local development, install runtime dependencies with Homebrew:
brew install yt-dlp ffmpeg
For local development, verify the tools are available:
yt-dlp --version
ffmpeg -version
Local Development Build and Run
From the repository root:
./script/build_and_run.sh
The script runs swift build, creates a local development app bundle at dist/MediaDownloader.app, and launches it.
You can also run SwiftPM directly during local development:
swift build
swift test
Useful local development script modes:
./script/build_and_run.sh --verify
./script/build_and_run.sh --logs
./script/build_and_run.sh --telemetry
./script/build_and_run.sh --debug
./script/build_and_run.sh --setup
Release Build, Signing, and Notarization
The app checks for updates and compares the latest release tag, such asv0.2.0, with CFBundleShortVersionString`.
Release credentials should live in a local .env file copied from .env.example. Do not commit .env, .p8, .p12, certificates, provisioning profiles, or private keys; the repo ignores them.
To create and publish signed, notarized macOS zip and drag-to-Applications DMG artifacts:
./script/release_macos.sh v0.2.0
To create local signed and notarized artifacts without publishing a GitHub release:
./script/package_macos.sh
The release script runs tests, builds a release .app, signs it with hardened runtime, submits it to Apple notarization, staples the tick