Paste → Resolve → Preview → Save
A privacy-focused media saver for public video and audio running entirely on your device.
Savewave is a clean, local-first media downloader. It automatically detects media sources, extracts best-available quality streams, and saves them directly to your device without accounts, cloud processing, or server uploads.
- Local Processing: Extraction runs on-device via bundled
yt-dlpandFFmpeg. - Zero Cloud Storage: No remote user database, tracking, or media proxies. All sessions and downloads remain strictly on your local device.
- On-Demand Instagram Authentication: Seamless in-app login modal on Desktop and Android for Instagram Reels that require authentication. Sessions are stored locally on your device, persist across app updates, and silently prompt for re-login if cookies expire.
- Supported Sources:
- YouTube: High-definition video and audio extraction powered by pinned, regularly-updated
yt-dlp. - Instagram Reels: Full video and audio extraction with local session authentication support. (Instagram posts, carousels, and Stories remain unsupported).
- Spotify: Smart Match discovery linking track metadata to exact, high-confidence audio streams.
- SoundCloud & Direct Links: Stream resolution and direct media file downloads. (Note: Facebook, X/Twitter, and DRM-protected media are not supported).
- YouTube: High-definition video and audio extraction powered by pinned, regularly-updated
| Layer | Technologies | Responsibility |
|---|---|---|
| Frontend UI | React 18, Tailwind CSS | Responsive Paste → Preview → Save interface & authentication modal |
| Core Logic | TypeScript, Vitest | Source detection, capability gates, error handling, Spotify match scoring |
| Desktop App | Electron, Node.js | Isolated IPC, bundled engines, native saving, verified GitHub updates, and in-app Instagram login modal |
| Media Engine | yt-dlp, FFmpeg |
Local public media extraction and stream remuxing |
| Android App | Capacitor, small Java bridge, youtubedl-android |
Native engine, scoped MediaStore saving, and in-app WebView authentication |
- Node.js
22+ - Android Studio and Java 21 for APK builds
# 1. Install dependencies
npm install
# 2. Run typecheck & test suite
npm run check
# 3. Download local sidecars & launch desktop app in dev mode
npm run prepare:sidecars
npm run electron:dev# Run test suite
npm test
# Build production desktop installer
npm run electron:pack -- --publish never
# Sync the Android project, then build its APK in android/
npm run capacitor:sync- 🏗️ Architecture — System boundaries and lifecycle
- ⚙️ Media Engine Rules — Source detection and extraction policy
- 🛠️ Maintenance & Updates — Tracking
yt-dlpupstream updates - 🚀 Release Process — Releasing desktop and mobile builds
- ✅ Release Checklist — Version files, platform tests, artifacts, and publication checks
Created and maintained by Kuber Bassi (kuberbassi.com · @kuberbassi · LinkedIn).
MIT © Kuber Bassi.