Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Video Plucker

A desktop app for plucking videos from YouTube, X (Twitter), and streaming sites, built with Tauri v2 (Rust backend, vanilla HTML/CSS/JS frontend). Plucking is powered by bundled yt-dlp and ffmpeg sidecar binaries, so there is nothing extra to install. (yt-dlp handles many other sites too, so most video URLs it supports will work.)

The Search tab goes beyond paste-a-URL: search a streaming catalog, pick a result, choose a quality, and download a movie directly or batch-select a series' episodes. Streaming search launched with AllAnime; the extractor framework is built to add more sites over time.

Screenshots

Analyzing a YouTube playlist

Pasting a URL to pluck

Features

  • Pluck a single video or an entire playlist from one URL — YouTube videos and playlists, and X (Twitter) videos
  • Search streaming sites (AllAnime and LuciferDonghua) from the Search tab: pick a result, choose a quality, and download a movie directly or select a batch of a series' episodes (by range like 5-12, 15 and/or per-episode checkboxes)
  • Optional "YouTube login" setting reads cookies from your browser (Chrome, Firefox, Edge, …) to get past YouTube's "confirm you're not a bot" checks
  • Quality selection: best, 2160p, 1440p, 1080p, 720p, 480p, or audio-only (MP3 / M4A)
  • Live progress with percent, speed, and ETA (per-item and overall for playlists)
  • Expand a playlist pluck to see every video as its own row with individual status and progress
  • Resume after a crash: plucks survive an app or network failure. yt-dlp keeps partial files and a per-pluck archive of finished items, so resuming continues where it stopped instead of starting over. Interrupted plucks reappear on the next launch with a Resume button
  • Minimize or close to the system tray with plucks still running in the background; restore from the tray, or Show/Quit from its menu
  • Cancel an in-progress pluck (terminates the whole yt-dlp/ffmpeg tree)
  • Remembers your destination folder and quality choice between runs

Install

Grab the file for your platform from the Releases page:

  • Windows: .exe installer — installs to Program Files (prompts for administrator), and creates Start Menu and Desktop shortcuts
  • macOS: .dmg (unsigned; on first launch, right-click the app and choose Open to get past Gatekeeper)
  • Linux: .deb (Debian/Ubuntu)

yt-dlp and ffmpeg are bundled inside the app, so there is nothing else to install.

Usage

  1. Paste a YouTube video or playlist URL and click Analyze.
  2. Review the title, thumbnail, and available qualities (playlists show the entry count).
  3. Pick a quality and a destination folder.
  4. Click Pluck. Progress, speed, and ETA update live; use Cancel to stop, or Open folder when a pluck finishes.

To pluck from a streaming site instead, open the Search tab, pick a site, and search. Choose a result: a movie downloads straight away, while a series lets you pick a season and select episodes (type a range like 5-12, 15, tick individual episodes, or Select all) before downloading. The batch appears in the downloads list as one expandable job, just like a playlist.

Closing or minimizing the window sends it to the system tray and plucks keep running. Click the tray icon to restore, or use its Show / Quit menu.

Building from source

Prerequisites

  • Rust (stable, MSVC toolchain) with the Visual Studio Build Tools "Desktop development with C++" workload
  • Node.js and the Tauri CLI (npm install -g @tauri-apps/cli)
  • WebView2 runtime (preinstalled on Windows 11)

Sidecar binaries

The yt-dlp and ffmpeg binaries are not committed to the repository. Download them into src-tauri/binaries/ with the target-triple filenames Tauri expects for your platform. On Windows:

New-Item -ItemType Directory -Force src-tauri\binaries

# yt-dlp
Invoke-WebRequest `
  -Uri "https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp.exe" `
  -OutFile "src-tauri\binaries\yt-dlp-x86_64-pc-windows-msvc.exe"

# ffmpeg (BtbN static build, LGPL variant)
Invoke-WebRequest `
  -Uri "https://github.com/BtbN/FFmpeg-Builds/releases/latest/download/ffmpeg-master-latest-win64-lgpl.zip" `
  -OutFile "$env:TEMP\ffmpeg.zip"
Expand-Archive "$env:TEMP\ffmpeg.zip" -DestinationPath "$env:TEMP\ffmpeg" -Force
Copy-Item (Get-ChildItem "$env:TEMP\ffmpeg" -Recurse -Filter ffmpeg.exe).FullName `
  "src-tauri\binaries\ffmpeg-x86_64-pc-windows-msvc.exe"

The release workflow shows the equivalent commands for macOS and Linux. The LGPL ffmpeg build is used deliberately: it covers everything the app needs (mp4 muxing, mp3 via libmp3lame) without GPL redistribution obligations.

Develop and build

tauri dev      # run with a hot-reload window
tauri build    # produce the platform installer under src-tauri\target\release\bundle

Releases

Pushing a v* tag (for example v1.0.1) triggers the release workflow, which builds the app in parallel on Windows, macOS, and Linux runners and publishes the installers (.exe, .dmg, .deb) to a single GitHub Release. Each runner downloads its own platform's sidecar binaries automatically, so they never need to be committed.

The macOS build targets Intel (x86_64) and runs on Apple Silicon through Rosetta 2. The Linux build targets x86_64.

Notes

  • YouTube periodically breaks yt-dlp extractors. If plucks start failing, update the bundled yt-dlp to the latest release and rebuild.
  • If YouTube shows "Sign in to confirm you're not a bot", set the YouTube login dropdown to a browser you're logged into YouTube with — yt-dlp will use that browser's cookies. This is currently the only reliable workaround.
  • Streaming-site extractors depend on each site's private API and can break when a site changes. Each site is isolated, so one breaking never affects the others or the normal YouTube/X plucking; an unavailable site is shown as such in the Search tab's site list.
  • The bundled ffmpeg is a static LGPL build.

About

Windows desktop app to download YouTube videos and playlists (Tauri v2, bundled yt-dlp + ffmpeg)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages