Why I Built Another yt-dlp GUI (And Why I Think It Was Worth It)
Description and use
The author built Sloth Archiver, a cross‑platform desktop app that simplifies downloading and archiving YouTube videos using yt‑dlp and ffmpeg, offering a GUI for metadata management, media conversion, and clipping.
Problem
The author needed a tool to backup YouTube videos and playlists locally with advanced features (metadata, long videos, subtitles, audio tracks) but existing solutions were either too complex (self‑hosted) or lacking features.
Outcome
The author successfully built a cross‑platform GUI that simplifies YouTube video archiving, offering advanced features and local control without the need for complex self‑hosted setups.
Workflow
- 1. Research yt‑dlp and UI libraries
- 2. Choose Electron + React + TypeScript for cross‑platform UI
- 3. Implement IPC between Electron and child processes
- 4. Integrate yt‑dlp as a child process for downloading
- 5. Integrate ffmpeg for media conversion and clipping
- 6. Build local library UI with metadata display, search, and playback
- 7. Add auto‑update for yt‑dlp with binary download and SHA validation
- 8. Handle yt‑dlp’s Node runtime requirement via Electron’s runtime
- 9. Package the app for distribution
Evidence
I read up on yt-dlp's documentation and shopped around for alternative UI libraries.
With yt-dlp being written in Python, I tried some desktop technologies for Python, but I wasn't very happy with them...
- Record date: 2026-09-15T12:02:25.318Z