MediaHarbor is an all-in-one media downloader and player. Search, stream, and download audio/video from YouTube, Spotify, Tidal, Deezer, Qobuz, Apple Music, and more.
- Features
- Supported Platforms
- Prerequisites
- Installation
- Building from Source
- In-App Dependency Setup
- Known Issues
- Contributing
- License
- Search across all supported platforms from a single interface
- Download tracks, albums, playlists, and videos at your chosen quality
- Stream directly inside the app with a built-in audio/video player
- Lyrics — synced (LRC), plain text, and word-by-word display where available
- Local library — scan a folder and browse your downloaded media by album/artist
- Automatic dependency management installs yt-dlp, ffmpeg, Python, votify, gamdl, and more from the Dependencies page
- OrpheusDL integration optional backend for platform downloads via modular support
- In-app settings editor — configure all platform credentials without touching config files
Before building, make sure you have:
- Node.js ≥ 18 and npm
- Rust (stable toolchain) — install from rustup.rs
- Tauri system dependencies for your OS — see the Tauri v2 prerequisites guide
On Linux you also need: libwebkit2gtk-4.1-dev, libssl-dev, libayatana-appindicator3-dev, librsvg2-dev
git clone https://github.com/MediaHarbor/MediaHarbor.git
cd MediaHarbor
git checkout tauri-migrationnpm installnpm run tauri:devThis starts the Vite dev server and the Tauri process concurrently.
# Linux only (.deb, .rpm, .AppImage)
npm run tauri:build:linux
# Windows only (.msi, .exe)
npm run tauri:build:win
# macOS (universal or targeted)
npm run tauri:build:mac
npm run tauri:build:mac:x64
npm run tauri:build:mac:arm64The output is placed in src/app/target/release/bundle/.
MediaHarbor manages its own tool dependencies through the Dependencies page inside the app. On first launch, open the Updates tab and install what you need:
- Python / yt-dlp required for YouTube and YouTube Music downloads
- ffmpeg required for muxing and format conversion
- votify + Bento4 required for Spotify downloads (cookies also needed in Settings)
- gamdl + Bento4 required for Apple Music downloads (cookies also needed in Settings)
- OrpheusDL + modules optional alternative backend for platform downloads
Platform credentials (Tidal OAuth, Deezer ARL, Qobuz login, Spotify/Apple cookies) are all configured from the Settings page.
- Library page may not work properly for big folders
- Apple Music streamings haven't added yet
- Synced lyrics may get out of sync due on Windows and some tracks
Contributions are welcome. Please open an issue before submitting a pull request for larger changes. For smaller fixes, a PR is fine directly.
GPL-3.0 — see LICENSE for details.