Thanks to visit codestin.com
Credit goes to github.com

Skip to content

samuelbailey123/clipper

Repository files navigation

Clipper

Video downloader and converter for macOS. Native desktop app wrapping yt-dlp.

Tests Tauri 2 TypeScript 5

Install

Prerequisites

yt-dlp and ffmpeg must be installed:

brew install yt-dlp ffmpeg

Quick install (recommended)

curl -fsSL https://raw.githubusercontent.com/samuelbailey123/clipper/main/scripts/install.sh | bash

This downloads the latest release, removes the macOS quarantine flag, copies Clipper to /Applications, and cleans up.

Manual install

  1. Download the latest .dmg from Releases
  2. If macOS says the file is "damaged", open Terminal and run:
    xattr -cr ~/Downloads/Clipper_*_aarch64.dmg
  3. Open the DMG and drag Clipper to Applications
  4. On first launch, right-click the app > Open (required once for unsigned apps)

Troubleshooting

"Clipper is damaged and can't be opened" — This happens because the app is not signed with an Apple Developer certificate. macOS quarantines files downloaded from the internet. Run the xattr -cr command above to remove the quarantine flag, or use the install script which handles this automatically.

"Clipper can't be opened because it is from an unidentified developer" — Right-click the app and select Open. Click Open in the dialog. You only need to do this once.

Features

  • Paste YouTube, Vimeo, and other video URLs to download
  • Quality selector: Best, 1080p, 720p, 480p, Audio Only
  • Real-time download progress
  • Batch downloads (up to 20 URLs)
  • Concurrent queue (max 2 simultaneous downloads)
  • Download history with pagination
  • Cancel running downloads
  • Automatic YouTube cookie detection from your browser
  • Auto-reveal in Finder when downloads complete
  • In-app auto-updater (checks GitHub Releases)
  • Native macOS window with traffic light controls

YouTube Cookie Setup

Clipper runs locally on your machine, so YouTube downloads work without manual cookie configuration. By default, it reads cookies from Chrome automatically.

To change the browser, open Settings in the app. Supported browsers: Chrome, Firefox, Safari, Edge, Brave, Opera, Vivaldi.

Development

Requires Node.js 20+, Rust toolchain, yt-dlp, and ffmpeg.

npm install
npm run dev

This starts both the Vite dev server and the Tauri native window.

Build from source

npm run build

Produces Clipper.app and Clipper.dmg in src-tauri/target/release/bundle/.

Testing

npm test              # frontend tests (vitest)
npm run test:watch    # watch mode
npm run test:coverage # with coverage
npm run test:rust     # rust backend tests (cargo test)

Tech Stack

  • Tauri 2 (Rust backend + WebView frontend)
  • React 19 + React Router
  • Vite + Tailwind 4
  • SQLite via rusqlite (embedded, local DB)
  • yt-dlp + ffmpeg for downloading and conversion
  • Zod for validation
  • Vitest + Testing Library for frontend tests

Project Structure

src/                     # Frontend (React + TypeScript)
  components/            # React components
  hooks/                 # Client-side hooks (invoke/listen)
  lib/                   # Utilities and validations
  types/                 # Shared TypeScript types
src-tauri/               # Backend (Rust)
  src/
    lib.rs               # App entry, state, setup
    db.rs                # SQLite database layer
    queue_manager.rs     # Download queue + concurrency
    ytdlp.rs             # yt-dlp process management
    models.rs            # Data structures
    commands/            # Tauri command handlers

Releasing

Releases are automated. To release a new version:

  1. Bump the version in package.json, src-tauri/tauri.conf.json, src-tauri/Cargo.toml, and src-tauri/Cargo.lock
  2. Merge to main
  3. The release workflow builds, signs, and publishes a GitHub Release with the DMG and auto-updater manifest

If the version tag already exists, the release is skipped.

License

This software is proprietary. See LICENSE for details.

About

Video downloader and converter

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors