How tott12/umfdownloader works
UMFdownloaded offers two ways to download a single video: a tkinter desktop app and a Chrome extension. In the desktop workflow, the user accepts the license, enters a video URL and destination, optionally sets a speed limit, then the app invokes yt-dlp and saves the file. In the extension workflow, a page video enables a floating button; clicking it sends the URL through the background worker to a native host, which runs yt-dlp into Downloads. The extension path is documented and partly sampled; its manifest and the app’s omitted workflow details limit verification of some connections.
Main entry points: app.py Desktop Download · native_host.py Native Download · content.js Floating Button · background.js Message Forwarder
Components 13
Desktop Downloader
- License Gate
app.py - Desktop UI
app.py - Desktop Download
app.py
Browser Extension
- Video Detection
extension/content.js - Floating Button
extension/content.js - Message Forwarder
extension/background.js
Native Download Host
- Native Host
native_host.py - Message Protocol
native_host.py - Native Download
native_host.py
Other components
- User
- Video Page
- yt-dlp
- Download Folder
Connections 15
- User → License Gate: starts app
app.py - License Gate → Desktop UI: permits use
app.py - User → Desktop UI: enters settings
README.md - Desktop UI → Desktop Download: starts workflow
app.py - Desktop Download → yt-dlp: runs command
app.py - Desktop Download → Download Folder: writes file
app.py - Video Page → Video Detection: provides media
extension/content.js - Video Detection → Floating Button: reveals button
extension/content.js - User → Floating Button: clicks download
README.md - Floating Button → Message Forwarder: sends URL
extension/content.js - Message Forwarder → Native Host: sends native message
extension/background.js - Native Host → Message Protocol: reads request
native_host.py - Message Protocol → Native Download: dispatches URL
native_host.py - Native Download → yt-dlp: runs command
native_host.py - Native Download → Download Folder: writes file
native_host.py