yoober · local media · captions
Download, Library & Transcripts
Yoober is a free, cross-platform desktop app that downloads online video and audio, builds a local caption library, and plays media with better-than-site captions — using site subtitles or OpenAI Whisper (local GPU or API). Bundles yt-dlp and ffmpeg. No account required.
Maintains Yoober. Personal site: https://yaa.bz/
Features
Core capabilities
Download, library, captions, transcription — no accounts.
- Local library
- Browse downloaded and imported media in a SQLite-backed library with playlists, tags, search (including caption text), and an in-app caption player — fullscreen, repeat, and A–B loop.
- Fetch Info
- Preview title, thumbnail, duration, available qualities, and caption tracks before you download — so you know exactly what you are getting.
- Video downloads
- Grab videos from 360p up to 4K. Pick MP4, MOV, MKV, or WebM (default). Embed thumbnails and metadata; WebM gets a sidecar thumbnail when embedding is unsupported.
- Audio extraction
- Strip audio to MP3, M4A (AAC), Opus, FLAC, WAV, or Vorbis. Choose bitrate from 96 kbps up to 320 kbps with cover art and metadata.
- Import local files
- Bring existing videos into the library — copy or reference in place, optional re-encode, and bulk Whisper transcription after import.
- YouTube captions
- When a video already has subtitle tracks, download them from the job card — manual tracks preferred over auto-generated. Fast, no Whisper required.
- Whisper transcription
- Generate transcripts (TXT, SRT, VTT, JSON) with a local Whisper install or the OpenAI API — CUDA, Apple Silicon Metal, or CPU. Stored in SQLite, export anytime.
- Live queue & history
- Watch real-time progress, speed, and ETA. Cancel anytime. History persists with retry, reveal-in-folder, and Show in Library actions.
- Bundled binaries
- yt-dlp and ffmpeg ship inside the app. Header status dots show they are ready — open Yoober and start downloading in seconds.
- Privacy-first
- Runs entirely on your machine. No Yoober account or cloud library. Your OpenAI key (if used) is encrypted in your OS keychain.
Library
Your local media hub
Downloads land in ~/Videos/Yoober by default. Organize, search, edit captions, and watch in-app.
Caption-aware player
HTML5 playback with timed captions from the database. Fullscreen, repeat (off / one / all), A–B range loop, keyboard shortcuts, and auto-hiding controls.
Playlists & tags
Organize media into playlists. Tag items with chip input; filter by tag facets in the sidebar. Search ranks title, notes, tags, and optionally caption text via FTS.
Import & rescan
Import videos from disk (copy or reference). Rescan finds unindexed files under your library folder and offers to import them on launch or refresh.
Editable metadata
Edit title, notes, tags, and caption content in the detail pane. Save once for metadata and captions. Export transcripts to a file whenever you need them.
How it works
Four steps
- 01
Paste a URL
Copy any link yt-dlp supports — YouTube, Vimeo, Twitch, and over a thousand others — and paste it into the Downloader.
- 02
Fetch Info
Preview the title, thumbnail, duration, available qualities, and caption tracks before committing to a download.
- 03
Download
Pick video or audio, quality, container, and output folder (defaults to your Library). Watch live progress; optionally transcribe with Whisper after download.
- 04
Library & captions
Play in-app with readable captions. Pull YouTube subtitles from job cards when available, run Whisper from the library, or import files you already have.
Formats
Video & audio options
Video
- Quality
- 360p480p720p HD1080p FHD1440p QHD2160p 4KBest available
- Container
- WebM (default)MP4MOVMKV
- Extras
- Embed thumbnailSidecar thumbnail (WebM)Embed subtitlesWrite metadata
Audio only
- Format
- MP3M4A (AAC)OpusFLACWAVVorbis (OGG)
- Bitrate
- 96 kbps128 kbps192 kbps256 kbps320 kbpsBest
- Extras
- Embed cover artWrite metadata
Transcription
Site captions or Whisper
Pull existing subtitle tracks, or transcribe locally / via OpenAI API. Export TXT, SRT, VTT, JSON.
YouTube captions
Download manual or auto-generated tracks from the job card when Fetch Info detects them.
Local Whisper
Offline processing with CUDA, Apple Metal, or CPU. Models from tiny through large.
OpenAI API
Optional hosted transcription. API key stored in your OS keychain.
Output: Plain text (.txt)SubRip (.srt)WebVTT (.vtt)JSON (.json)
Download
Desktop builds
Free, closed-source desktop app. Pick your platform or browse release builds.
Support development
Yoober is free to download and use. Donations help cover development time and tooling costs.
FAQ
Common questions
Is Yoober free?
Yes. Yoober is free to download and use. The app is closed-source. If you find it useful, consider supporting development via the donate link.
Which sites are supported?
Anything yt-dlp supports — YouTube, Vimeo, Twitch, Bilibili, and over a thousand others. If yt-dlp can fetch it, Yoober can download it. YouTube often needs a system Node binary for full format lists.
Do I need to install yt-dlp or ffmpeg?
No. Yoober bundles the right yt-dlp and ffmpeg binaries for your platform. The header shows a live status dot for each so you know they are ready.
What is the Library?
The Library is your local media hub — default folder Videos/Yoober. Browse downloads and imports, organize playlists, search and tag items, edit metadata and captions, and play video in-app with timed subtitles. Captions and playlists live in a local SQLite database; media files stay on disk.
Can I import videos I already have?
Yes. Use Import in the Library sidebar or Downloads queue to pick local video files. Copy them into the library folder or reference them in place. Optional re-encode and bulk Whisper transcription after import are supported.
How does transcription work?
Whisper (local CLI or OpenAI API) generates speech-to-text transcripts stored in SQLite. Transcribe after download runs Whisper automatically when a backend is configured. YouTube captions are separate — download them manually from a finished job card when subtitle tracks exist. Output formats: TXT, SRT, VTT, or JSON.
What if the video already has YouTube captions?
Fetch Info detects manual and auto-generated caption tracks. After download, use the job card action to pull site captions — fast and free. Prefer manual tracks over auto-generated. Choose Whisper instead if you want a fresh speech-to-text pass.
Does local Whisper use my GPU?
Yes, when available. Yoober auto-detects NVIDIA CUDA on Windows/Linux and Apple Silicon Metal (MPS) on Mac, and shows the active device in job status. Otherwise it falls back to CPU.
How do I install Python and OpenAI Whisper for local transcription?
Local transcription needs Python 3.8–3.11 and the openai-whisper package on your PATH. Install Python from python.org (or your package manager), then run: pip install -U openai-whisper. For GPU acceleration, install a CUDA-enabled or MPS-capable PyTorch build as documented by Whisper. Yoober detects the whisper CLI automatically — or set a custom path in Settings.
Where is my OpenAI API key stored?
If you use the OpenAI API backend, your key is stored securely using your operating system keychain (macOS Keychain / Windows Credential Manager / libsecret on Linux) via Electron safeStorage. It is never written to disk in plaintext.
Is my data sent anywhere?
Downloads and caption fetches run on your machine through yt-dlp. Local Whisper stays offline. The only optional third-party call is the OpenAI API — only if you opt in for API transcription. Nothing is sent to Yoober servers because there are no Yoober servers.
Is there cloud sync or an account?
No. Yoober has no user accounts and no cloud library. History, captions, playlists, and settings are local (yoober.sqlite). Clearing history does not delete media or captions.
Which platforms are supported?
macOS (Apple Silicon + Intel, Developer ID signed and notarized), Windows 10/11 (64-bit), and Linux (64-bit .deb). Not available on the Mac App Store.
Can I download playlists?
Yoober is single-item focused — it passes --no-playlist to yt-dlp so you always get exactly the video you pasted, not an entire channel or playlist.