Save anything, From anywhere.
Save and download videos, photos, and music from 16 platforms. No watermarks. No accounts. No tracking. Everything stays on your device.
Saving media with Mori takes only three simple steps:
- Copy Link: Copy any video, photo, or music link from your favorite app (TikTok, Instagram, YouTube, Spotify, etc.).
- Open Mori: Mori automatically detects the link from your clipboard and analyzes it right away. (On Android, you can also just tap Share on any post and choose Mori to download directly without leaving the app!)
- Download: Pick your preferred quality (HD video without watermarks, audio MP3, or photo gallery) and tap Download. Your media is saved straight to your device's gallery or music folder.
Pre-compiled, ready-to-use packages are available for all devices on GitHub Releases.
| Platform | Available Packages | Installation Guide |
|---|---|---|
Mori v...apk |
Installation & Play Protect Guide | |
Mori-v...-macOS-arm64.dmgMori-v...-macOS-arm64.app.tar.gz |
Gatekeeper Quarantine Fix | |
Mori-v...-Windows-x64-Setup.exeMori-v...-Windows-x64.msi |
Windows Setup Guide | |
Mori v...ipa |
AltStore / TrollStore Sideloading |
π Need help installing or troubleshooting?
Read the complete Installation, Sideloading & User Guide (GUIDE.md).
- 16 Platforms in One App: Save watermark-free videos, high-resolution photos, and audio from TikTok, Instagram, YouTube, Twitter/X, Spotify, Apple Music, Pinterest, Facebook, Threads, Bandcamp, Pixiv, Bilibili, Douyin, RedNote, Reddit, and TeraBox.
- Over-The-Air (OTA) Scraper Hot-Patching: Never wait for app updates when a platform changes its API. Mori seamlessly hot-patches scraper engines in the background without needing to reinstall the app.
- Custom Directory & Storage Freedom: Pick any folder across your device storage (including SD cards, Movies, Downloads, and custom folders) with native folder pickers and full file management support.
- One-Tap Playlists & Albums: Download full music albums or playlists from Spotify, Apple Music, and YouTube in one click instead of saving songs one by one.
- High-Speed Concurrent Downloads: Download music albums, playlists, and multi-photo galleries in parallel with up to 5 concurrent worker threads for blazing fast speeds.
- Floating Download Bubble & Manager: Non-intrusive monochrome floating bubble tracking active tasks in real-time with an aggregated progress ring, expandable dropup tray, individual task progress bars, and instant cancellation.
- Quick Save via Android Share Menu: Spot a video you love? Tap Share in any app and select Mori to download it instantly in a neat overlay without switching apps.
- Multi-Link Batch Mode: Paste several links at once and let Mori queue and download them all automatically in the background.
- Built-in Custom Fullscreen Player & Preview: Play videos, stream tracks, and browse photo carousels right inside the app with a sleek custom fullscreen player, real-time title bar, smooth seek scrubbing, double-tap seek, and mute controls.
- Integrated Media Gallery: Browse and play all saved videos, music, photos, and PDF documents directly within the app, complete with media filter chips, real-time search, sorting options, and an in-app viewer.
- Instant Photo-to-PDF: Combine photo galleries or multi-image posts into a single, clean PDF file for offline reading or sharing.
- PIN & Biometric Lock: Protect your download history, media gallery, and settings with an optional 4-digit PIN code or fingerprint / Face ID lock.
- Clean Folder Organization: Files are neatly organized in standard system folders (
Movies/Mori,Music/Mori,Pictures/Mori) for easy access in your gallery. - Automatic Clipboard Detection: Opening Mori automatically suggests your copied link for instant one-tap downloading.
- Background Downloads: Large videos and playlists keep downloading seamlessly even when you minimize the app or turn off the screen.
- Anti-Corrupt File Protection: Files are saved securelyβmedia only appears in your gallery once 100% complete, preventing broken or unplayable files.
- Modern Themes & Live Backgrounds: Choose from elegant dark modes and interactive animated backgrounds (Stars, Waves, Fireflies).
- 9 Languages: English, Indonesian, Japanese, Korean, Simplified Chinese, Arabic (with RTL support), Russian, Tagalog, and Hindi.
- 100% Private & Ad-Free: No ads, no analytics, no accounts required, and zero external hosting. Everything runs on your device.
Interested in customizing the interface, contributing translations, or compiling binaries locally?
π Contributing & Build Guide (CONTRIBUTING.md) β Complete prerequisites, environment setup, and compilation instructions for Android, iOS, macOS, and Windows.
π Release History & Changelog (CHANGELOG.md) β Detailed version-by-version release logs.
π Click to view Tech Stack & Project Structure
- JavaScript (ES6+): Core application logic and client-side UI.
- HTML5 & CSS3: Custom responsive design system with dark mode and smooth animations.
- Tauri v2 (Rust): Ultra-lightweight desktop engine for macOS & Windows (
.dmg,.app,.msi,.exe). - CapacitorJS: Native Android and iOS bridge for filesystem, share sheet, clipboard, and biometrics.
- OkHttp (Native Android): High-performance native HTTP engine to seamlessly bypass WebView CORS and network restrictions.
- Cheerio & Axios: Fast DOM HTML parsing and HTTP client request handling.
- pdf-lib: Client-side PDF generation and bundling.
Mori/
βββ android/ # Capacitor Android native project
β βββ app/src/main/
β β βββ java/com/mori/downloader/
β β β βββ DownloadForegroundService.java # Background download persistent service & wake-lock
β β β βββ MainActivity.java # Main Activity + native HTTP bridge (CORS bypass)
β β β βββ ShareActivity.java # Native Quick Save Share overlay & MediaStore indexer
β β βββ res/ # Android layout, drawables, XML configs & splash screens
β βββ gradle/ # Gradle build scripts & configurations
βββ ios/ # Capacitor iOS Xcode workspace
β βββ App/ # iOS Xcode project, Info.plist, and CocoaPods
βββ src-tauri/ # Tauri v2 Desktop Rust backend (macOS & Windows)
β βββ capabilities/ # Application permissions & security capabilities
β βββ src/ # Rust native HTTP & local filesystem provider
β βββ tauri.conf.json # Desktop app configuration & window bounds
βββ assets/ # App icons, mockups, & screenshots
βββ public/ # Frontend web assets (Vanilla JS + CSS)
β βββ css/ # Modular CSS architecture
β β βββ variables.css # Design tokens, themes (dark/light), typography, glass, corner presets
β β βββ base.css # CSS reset, typography, header, dynamic greeting, bottom navigation
β β βββ components.css # Reusable buttons, custom toast, floating download bubble & dropup manager
β β βββ home.css # URL input bar, batch textarea, skeleton loader, media preview cards, custom fullscreen
β β βββ gallery.css # Media gallery grid, filtering chips, search toolbar, modal viewer
β β βββ history.css # History layout, summary stats card, cards, actions bar, thumbnail overlay
β β βββ settings.css # Settings menu list, sub-page slide transitions, custom dropdowns
β β βββ modals.css # Modal overlays, PIN keypad, user guide, confirm & info dialogs
β β βββ rtl.css # Right-to-Left (RTL) language overrides for Arabic [dir="rtl"]
β β βββ style.css # Master stylesheet entry point with sequential @import rules
β βββ js/
β β βββ app.js # Main application entry point & startup lifecycle
β β βββ components/ # Reusable UI components
β β β βββ player.js # In-app media player (custom fullscreen overlay, gestures, smooth scrubbing)
β β βββ downloader/ # Modular native download engine
β β β βββ filename.js # Extension resolution, title sanitization, template & folder logic
β β β βββ headers.js # Platform-specific Referer/Origin headers builder & URL unwrapper
β β β βββ resolver.js # Asynchronous link resolver (YouTube, Spotify, Apple Music, workers)
β β β βββ storage.js # Desktop/Mobile filesystem persistence, retry loops, temp cleanup
β β β βββ postProcess.js # MediaScanner, feedback haptics/audio, tray notifications, UI reset
β β β βββ index.js # Barrel re-export for downloader sub-modules
β β βββ i18n/ # Multi-language translations (9 languages + RTL support)
β β β βββ locales/ # Modular locale dictionaries (en, id, ja, ko, zh, ar, ru, tl, hi)
β β β βββ index.js # Translation registry, t() helper, and fallback resolver
β β βββ modules/ # Core business logic & application state
β β β βββ authManager.js # PIN passcode & biometric lock system
β β β βββ batchManager.js # Multi-link batch queue & playlist manager
β β β βββ bgAnimation.js # Interactive Live Canvas backgrounds (Stars, Waves, etc.)
β β β βββ core.js # Shared global state, DOM references, constants
β β β βββ download.js # Analysis pipeline & download controllers
β β β βββ gallery.js # Storage scanning, media categorization, filter/sort & viewer modal
β β β βββ history.js # Download history manager, local storage, & cleanup
β β β βββ intents.js # Auto-clipboard detection & deep link receiver
β β β βββ modals.js # Confirmation dialogs & information modals
β β β βββ settings/ # Modular user settings & configuration subsystem
β β β β βββ nativeSync.js # Native SharedPreferences bridge & platform detection
β β β β βββ appearance.js # Themes (dark/light), color accents, fonts, & visual presets
β β β β βββ behavior.js # Toggles (incognito, data saver, Wi-Fi only, keep awake, anti-403)
β β β β βββ storage.js # Download subfolder pickers, cache cleanup, wipe data & stats
β β β β βββ language.js # Dropdown select engine, i18n switcher, sub-page navigation
β β β β βββ index.js # Barrel re-export for settings sub-modules
β β β βββ settings.js # User preferences orchestrator & backward-compatible facade
β β β βββ update.js # Automatic GitHub release update checker
β β β βββ updateScrapers.js # OTA scraper hot-patch downloader & validator
β β βββ scrapers/ # Scraper runtime loader & HTTP helper
β β β βββ bundle.js # Bundled scraper core (esbuild IIFE, all 16 platforms)
β β β βββ httpHelper.js # Unified HTTP engine (native OkHttp/Tauri bridge + UA rotation)
β β β βββ index.js # Runtime loader with OTA hot-patch support
β β βββ ui/ # UI rendering & presentation layer
β β β βββ downloadBubble.js # Persistent floating download bubble & dropup task manager
β β β βββ nativeDownload.js # Native download flow orchestrator & progress tracking
β β β βββ result.js # Analysis results view, media slider, & PDF creator
β β β βββ resultModal.js # Detailed preview modal & folder path navigator
β β βββ share.js # Android Quick Save Share Overlay controller
β β βββ ui.js # History rendering & gesture handlers (long-press delete)
β β βββ utils/ # Helper utilities subsystem
β β β βββ plugins.js # Capacitor native plugin registry & auto-sync lifecycle
β β β βββ http.js # User-Agent presets, cookie parser, query serializer, error handler
β β β βββ device.js # Haptic feedback triggers, clipboard writer, wake lock, Wi-Fi guard
β β β βββ toast.js # Standard notification toasts & action feedback alerts
β β β βββ sound.js # Web Audio API procedural synthesizer & sound pack generator
β β β βββ media.js # Video canvas thumbnail generator & playback safe controls
β β β βββ pdfHelper.js # PDF generation & image bundling via pdf-lib
β β β βββ urlUtils.js # URL sanitization & tracking parameter remover
β β β βββ index.js # Barrel re-exporter providing 100% backward compatibility
β β βββ vendor/ # Bundled third-party libraries (pdf-lib)
β β βββ pdf-lib.min.js
β βββ index.html # Main single-page application markup
β βββ share.html # Standalone Android Quick Save Share Overlay markup
βββ capacitor.config.json # Capacitor cross-platform configuration
βββ package.json # Project dependencies & build scripts
βββ CHANGELOG.md # Detailed version-by-version release history
βββ CONTRIBUTING.md # Developer setup, build guidelines, & PR instructions
βββ GUIDE.md # In-app user manual & usage walkthrough
βββ LICENSE # GNU General Public License v3.0
βββ README.md # Primary project overview & documentation
Mori's scraper core is bundled via esbuild into public/js/scrapers/bundle.js β a plain minified IIFE containing all 16 platform scrapers.
- OTA Hot-Patching: When a platform changes its API, Mori can silently download and apply an updated
bundle.jsfrom GitHub without requiring a full app update. - Open Client Architecture: The entire frontend, UI design system, and core app logic remain 100% open source under GPL-3.0.
- Collaborative Development: Honest developers who want to improve scrapers or fix broken endpoints are always welcome to coordinate through CONTRIBUTING.md.
- Personal & Educational Use Only: Mori is an open-source educational utility designed solely for personal media archiving and research. Users are solely responsible for complying with local copyright laws and the terms of service of source platforms.
- Zero Media Hosting: Mori does not host, stream, cache, or redistribute any media on external servers. All operations execute strictly on-demand directly on the user's local device.
- Respect for Third-Party Providers: Mori acts purely as a client-side wrapper querying publicly available web endpoints. If you are an operator or developer of an upstream service and wish to have your endpoint excluded or removed from Mori, please reach out via GitHub Issues or email (riazrepo@gmail.com), and we will promptly accommodate your request.
Mori is free and open-source software licensed under the GNU General Public License v3.0 (GPL-3.0).
- Copyleft Enforcement: Anyone who modifies or distributes copies of this software is strictly required to provide the complete corresponding source code under the same GPL-3.0 license.
- No Unauthorized Commercial Re-selling: Packaging, rebranding, or distributing closed-source, paid, or monetized variants of Mori without honoring GPL-3.0 requirements violates copyright law and will be subject to official DMCA takedowns.
- Trademark & Identity: The name "Mori", app logo, and associated visual designs are the property of the original author. Derivative works must be clearly distinguished and must not claim affiliation with the original project.
Developed with β€οΈ by coflyn.
GitHub: https://github.com/coflyn
Instagram: @_coflyn





