gitwtfhub

wtf is ytbdowngui?

elsakane2015/ytbdowngui — explained in plain English

Analysis updated 2026-05-18

0RustAudience · generalComplexity · 3/5LicenseSetup · moderate

TL;DR

macOS desktop wrapper around yt-dlp and ffmpeg built with Tauri 2 and React, with an embedded WebView login so session cookies pass to yt-dlp automatically.

Mindmap

mindmap
  root((YtbDownGUI))
    Inputs
      Video URL
      Playlist URL
      WebView login session
    Outputs
      Downloaded video file
      Subtitle srt
      Task history
    Use Cases
      Save YouTube videos in 4K
      Batch grab a channel
      Login-gated Bilibili downloads
    Tech Stack
      Rust
      Tauri
      React
      TypeScript
      yt-dlp
      ffmpeg

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Download YouTube videos in 4K with subtitles burned in

REASON 2

Batch download a playlist filtered by date range and keyword

REASON 3

Grab login-gated Bilibili or X videos using an in-app browser session

What's in the stack?

RustTauriReactTypeScriptViteyt-dlpffmpeg

How it stacks up

elsakane2015/ytbdowngui0xr10t/pulsefi404-agent/codes-miner
Stars000
LanguageRustRustRust
Setup difficultymoderatehardmoderate
Complexity3/54/53/5
Audiencegeneraldeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · moderate Time to first run · 30min

Ad-hoc signed dmg needs a one-time xattr -dr com.apple.quarantine, and building from source requires Rust, Node, pnpm, and a sidecar-binary fetch script.

No license declared on this repo, so by default all rights are reserved, the bundled yt-dlp is Unlicense and ffmpeg is LGPL or GPL.

Wtf does this do

YtbDownGUI is a desktop video downloader for macOS. Underneath it uses two well-known open-source tools, yt-dlp and ffmpeg, and wraps them in a graphical app built with Tauri version 2, which combines Rust on the backend with a React frontend. The README presents it as a personal-use utility and reminds users to only download content they have the right to access and to respect each site's terms of service. The main difference from other yt-dlp wrappers, according to the README, is a built-in login window. The app opens a small browser window inside itself where the user can log in to a target site as if they were in a regular browser. Once you log in, the app captures the session cookies and passes them to yt-dlp automatically, so you no longer need to export a cookies.txt file by hand. Sites listed as supported for this login flow include YouTube, Bilibili, X (Twitter), Tencent Video, Douyin, TikTok, and Pinterest, while public videos on the roughly thousand sites yt-dlp supports can still be downloaded as a guest. Features include single-video downloads with quality selection, batch downloads from playlists or channels with filters for date range and keywords, three-stage quality picking that lets you choose codec (H.264, VP9, or AV1), resolution up to 4K, audio codec, and container format. Subtitles can be saved as separate .srt files or burned into the video. The app bundles its own copies of yt-dlp 2026.03.17 and ffmpeg 7.1.1 so a friend installing it does not need any other tools, and it can check GitHub for a newer yt-dlp and update the bundled copy. The README walks through installing from a .dmg, including a one-time xattr command needed because the app uses ad-hoc signing rather than a paid Apple Developer certificate. It also shows how to build from source with Rust, Node, and pnpm, explains the version-number scheme with an auto-incrementing build number, and lists known limits: no DRM-protected content, occasional Google blocks on the embedded WebView login, and progress percentages that come from polling the partial download file rather than from yt-dlp's own output.

Yoink these prompts

Prompt 1
Walk me through running YtbDownGUI from source with pnpm tauri dev on Apple Silicon
Prompt 2
Show me where the WebView cookies are extracted and serialized into Netscape cookies.txt for yt-dlp
Prompt 3
Add a new supported login site to the accounts tab and define its marker cookie
Prompt 4
Replace the part-file polling progress with a real yt-dlp JSON progress hook

Frequently asked questions

wtf is ytbdowngui?

macOS desktop wrapper around yt-dlp and ffmpeg built with Tauri 2 and React, with an embedded WebView login so session cookies pass to yt-dlp automatically.

What language is ytbdowngui written in?

Mainly Rust. The stack also includes Rust, Tauri, React.

What license does ytbdowngui use?

No license declared on this repo, so by default all rights are reserved, the bundled yt-dlp is Unlicense and ffmpeg is LGPL or GPL.

How hard is ytbdowngui to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is ytbdowngui for?

Mainly general.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.