Skip to content

Repository files navigation

Savewave icon

Savewave

Paste → Resolve → Preview → Save

A privacy-focused media saver for public video, audio, and image links running entirely on your device.

Official Website · Changelog · Maintenance Guide · License

Tauri 2 TypeScript Rust yt-dlp License


Overview

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-dlp and FFmpeg.
  • Zero Cloud Storage: No remote user database, account system, or media proxies.
  • Public Content Only: Supports public URLs (YouTube, Instagram, Facebook, X, SoundCloud, Direct Links, Spotify Smart Match). Private or DRM-gated media is unsupported.

Tech Stack & Architecture

Layer Technologies Responsibility
Frontend UI React 18, Tailwind CSS Responsive Paste → Preview → Save interface
Core Logic TypeScript, Vitest Source detection, capability gates, error handling, Spotify match scoring
Desktop App Tauri 2, Rust Safe process lifecycle, URL validation, sidecar management, native saving
Media Engine yt-dlp, FFmpeg Local public media extraction and stream remuxing
Android App Kotlin, youtubedl-android Native Android engine and scoped MediaStore saving

Development Setup

Prerequisites

  • Node.js 22+
  • Rust stable

Quick Start

# 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 tauri:dev

Useful Commands

# Run test suite
npm test

# Run Rust unit tests
cd src-tauri && cargo test

# Build production desktop installer
npm run tauri:build

Documentation


Developer & Author

Created and maintained by Kuber Bassi (kuberbassi.com · @kuberbassi · LinkedIn).


License

MIT © Kuber Bassi.