Skip to content

Repository files navigation

KeepMeTube

A modern, fast, and cross-platform desktop application for downloading videos and audio from YouTube, Instagram, Twitch, TikTok, Twitter/X, Reddit, Facebook, Vimeo, SoundCloud, and 1800+ other websites.

Powered by yt-dlp and built with Tauri v2 (Rust backend) and React + TypeScript + Tailwind CSS (frontend).

SCR-20260820-ksuk SCR-20260820-kppx SCR-20260820-kswl

Download

πŸ‘‰ Get Latest Release (macOS, Windows, Linux)

Note for macOS How to Fix "Damaged Application" Warning When you first download KeepMeTube, macOS may show a "KeepMeTube is damaged and can't be opened" warning, even though the application is perfectly fine.

Why This Happens macOS automatically marks files downloaded from the internet with a "quarantine" attribute for security. This is a safety featureβ€”it helps prevent accidentally running malicious software. However, since KeepMeTube is not yet notarized by Apple (a process that requires Apple Developer Program membership), macOS treats it as potentially untrusted and refuses to open it.

The warning is misleading. The app isn't actually damaged. macOS is simply being cautious about an unsigned application.

How to Fix It Copy and paste this command into Terminal, then press Enter:

xattr -d com.apple.quarantine "/Applications/KeepMeTube.app" This command tells macOS to remove the quarantine flag from the app. After running it once, you'll be able to open KeepMeTube normally without any warnings.

Is It Safe? Yes. You're telling your Mac to trust this specific application. The command only removes the quarantine markβ€”it doesn't modify the app itself or bypass any other security features. Your system will still protect you from other potentially harmful software.

Alternative: Right-Click to Open If you prefer not to use Terminal, you can also:

Right-click the KeepMeTube app in Finder Select "Open" Click "Open" in the warning dialog This bypasses the warning once, but you'll see it again next time you launch the app. Using the Terminal command is a permanent fix.


🌐 Supported Sites

Although named KeepMeTube, the application leverages yt-dlp's universal extractor engine and supports over 1,800 websites and platforms, including:

Platform Supported Content
YouTube Videos, Shorts, Playlists, Audio-only streams (up to 4K/8K)
Instagram Reels, Stories, Posts, IGTV
Twitch Clips, Full VODs, Highlights
TikTok Videos, Audio tracks (with or without watermark)
Twitter / X Video tweets, GIFs
Reddit Hosted video posts with merged audio
Facebook Public & shared video posts, Reels
SoundCloud High-quality music tracks, Sets
Vimeo HD & 4K video streams
Bilibili / Dailymotion / Pinterest Full video downloads
+1800 more platforms Full list of supported extractors

Features

  • 🌐 1800+ Websites Supported: Download videos, clips, reels, and audio from virtually any online video or streaming platform.
  • πŸ”„ Automatic yt-dlp Version Check: Checks for new yt-dlp updates on startup and offers one-click upgrades to keep site extractors compatible.
  • πŸͺ Authentication & Cookies (cookies.txt): Optional cookies support to download age-restricted, member-only, or private content across YouTube and other platforms.
  • 🌍 Multi-Language Support: 10 built-in languages (English, TΓΌrkΓ§e, EspaΓ±ol, FranΓ§ais, Deutsch, PortuguΓͺs, Ψ§Ω„ΨΉΨ±Ψ¨ΩŠΨ©, ζ—₯本θͺž, ν•œκ΅­μ–΄, δΈ­ζ–‡).
  • βš™οΈ Settings Drawer: Easy management of cookies, appearance themes, and language preferences.
  • πŸ“Š Real-time Progress: Live download percentage, speed tracking, and status indicators.
  • 🎨 Modern Theming: Native Dark mode, Light mode, and automatic OS system theme following.
  • πŸ“ File Management: Direct access to downloaded files in Finder / Windows Explorer / Linux file manager.
  • ✏️ File Operations: Rename downloaded files and manage history.
  • πŸ”„ Queue Manager: Up to 3 concurrent downloads with automatic queue handling.
  • πŸ’Ύ Persistent History: Download history is preserved across application restarts.
  • πŸ› οΈ Dependency Auto-Detection: Checks for yt-dlp and ffmpeg on first launch with one-click installation support.

πŸͺ Authentication & High-Quality Downloads (cookies.txt)

Why is this needed?

Most public videos across YouTube, Instagram, and Twitch do not require authentication. However, for age-restricted (+18) videos, member-only streams, private accounts, or high-tier formats, passing a cookies.txt file authenticates your session as a real logged-in user.

How to get your cookies.txt?

  1. Install a Browser Extension:
  2. Log in to the Website:
    • Open your browser and log in to your account (e.g. YouTube, Instagram, etc.).
  3. Export Cookies:
    • Click the extension icon and select Export / Download.
    • Save the file as cookies.txt on your computer.
  4. Select in KeepMeTube:
    • Open KeepMeTube and click Settings (βš™οΈ) or use the banner inside the Add Download modal.
    • Click "Select cookies.txt" and choose your file.
    • The file path is saved automatically; you only need to select it once!

Prerequisites

Required System Tools

The app requires two external tools. On first launch, it will check for these and offer to install them:

  • yt-dlp β€” The video & audio downloader engine
  • ffmpeg β€” Required for merging video + audio streams and format conversion

Development Tools

Platform-Specific Requirements

macOS

  • Xcode Command Line Tools: xcode-select --install
  • Homebrew (recommended): brew.sh

Windows

Linux

  • webkit2gtk-4.1 and related libraries:
    # Debian/Ubuntu
    sudo apt install libwebkit2gtk-4.1-dev build-essential curl wget file libxdo-dev libssl-dev libayatana-appindicator3-dev librsvg2-dev
    
    # Fedora
    sudo dnf install webkit2gtk4.1-devel openssl-devel curl wget file libappindicator-gtk3-devel librsvg2-devel

Build Steps

1. Install Dependencies

npm install

2. Development Mode

npm run tauri dev

This starts both the Vite dev server (frontend HMR) and the Tauri Rust backend.

3. Production Build

npm run tauri build

This produces platform-specific installer bundles:

Platform Output
macOS src-tauri/target/release/bundle/dmg/KeepMeTube.dmg
Windows src-tauri/target/release/bundle/msi/KeepMeTube.msi
Linux src-tauri/target/release/bundle/appimage/KeepMeTube.AppImage

Installing yt-dlp and ffmpeg Manually

macOS (Homebrew)

brew install yt-dlp ffmpeg

Windows (winget)

winget install yt-dlp.yt-dlp
winget install Gyan.FFmpeg

Linux

# yt-dlp
pip3 install yt-dlp

# ffmpeg
sudo apt install ffmpeg      # Debian/Ubuntu
sudo dnf install ffmpeg      # Fedora
sudo pacman -S ffmpeg        # Arch

Architecture

β”œβ”€β”€ src/                    # React Frontend (TypeScript)
β”‚   β”œβ”€β”€ components/         # UI Components (Download List, Modals, Settings, Dialogs)
β”‚   β”œβ”€β”€ store/              # Zustand state management
β”‚   β”œβ”€β”€ hooks/              # Custom React hooks (Language, Theme, ContextMenu)
β”‚   β”œβ”€β”€ lib/                # API wrappers (Tauri IPC), i18n, utils
β”‚   └── types/              # TypeScript type definitions
β”œβ”€β”€ src-tauri/              # Rust Backend (Tauri v2)
β”‚   └── src/
β”‚       β”œβ”€β”€ commands/       # Tauri command handlers (Download, Analyze, Dependencies, File Ops)
β”‚       β”œβ”€β”€ state.rs        # App state types
β”‚       └── store.rs        # JSON persistence & configuration

License

MIT

About

A lightweight YouTube video downloader with yt-dlp

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages