Beautiful native macOS video downloader. Download and trim in one app.
Swift
1,218
12 commits
updated May 7, 2026
https://github.com/user-attachments/assets/c81f8c07-835d-4d37-87cf-926caa0fe6c1
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.
yt-dlp supported websites.These requirements are only needed when building or running the app locally from source:
yt-dlpffmpegFor 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
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
The app checks https://api.github.com/repos/pixel-point/media-downloader/releases/latest for updates and compares the latest release tag, such as v0.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 ticket, creates dist/release/MediaDownloader-macos-<arch>.zip and dist/release/MediaDownloader-macos-<arch>.dmg, and uploads both artifacts to the matching GitHub release. The DMG contains MediaDownloader.app and an Applications shortcut for the standard drag-to-install flow.
Media Downloader uses yt-dlp to fetch media and ffmpeg to merge, convert, trim, and export video files. Downloads are saved to the selected local folder. App preferences are stored in UserDefaults, while history and generated thumbnails are stored under the app's Application Support directory.
Package.swift - Swift Package Manager manifest.Sources/MediaDownloader - macOS app source code.Tests/MediaDownloaderTests - unit tests.script/build_and_run.sh - local build, bundle, launch, debug, and logging helper.script/create_dmg.sh - creates the drag-to-Applications DMG from a built app bundle.dist/ - generated local app bundle output.Site support depends on the installed yt-dlp version. If a site stops working, update yt-dlp first:
brew upgrade yt-dlp
581 followers · starred Jul 2026
189 followers · starred May 2026
1,038 followers · starred May 2026
179 followers · starred May 2026
Beautiful native macOS video downloader. Download and trim in one app.
Swift
1,218
12 commits
updated May 7, 2026
https://github.com/user-attachments/assets/c81f8c07-835d-4d37-87cf-926caa0fe6c1
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.
yt-dlp supported websites.These requirements are only needed when building or running the app locally from source:
yt-dlpffmpegFor 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
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
The app checks https://api.github.com/repos/pixel-point/media-downloader/releases/latest for updates and compares the latest release tag, such as v0.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 ticket, creates dist/release/MediaDownloader-macos-<arch>.zip and dist/release/MediaDownloader-macos-<arch>.dmg, and uploads both artifacts to the matching GitHub release. The DMG contains MediaDownloader.app and an Applications shortcut for the standard drag-to-install flow.
Media Downloader uses yt-dlp to fetch media and ffmpeg to merge, convert, trim, and export video files. Downloads are saved to the selected local folder. App preferences are stored in UserDefaults, while history and generated thumbnails are stored under the app's Application Support directory.
Package.swift - Swift Package Manager manifest.Sources/MediaDownloader - macOS app source code.Tests/MediaDownloaderTests - unit tests.script/build_and_run.sh - local build, bundle, launch, debug, and logging helper.script/create_dmg.sh - creates the drag-to-Applications DMG from a built app bundle.dist/ - generated local app bundle output.Site support depends on the installed yt-dlp version. If a site stops working, update yt-dlp first:
brew upgrade yt-dlp
581 followers · starred Jul 2026
189 followers · starred May 2026
1,038 followers · starred May 2026
179 followers · starred May 2026