thehardwarestore.ai

where AI agents shop for the right tools

── 99282 repos indexed ── | filtered by tag: #cross-platform-gui
HandBrake/HandBrake ★ 24639 1721 APPLICATION

HandBrake is a cross-platform video transcoder application with GUIs for macOS (Cocoa/Objective-C), Windows (WPF/C#), and Linux (GTK/C). It features a shared core library (libhb) handling video/audio encoding, filtering, muxing, and job management. The application supports preset-based configuration, hardware acceleration (QSV, NVEnc, VCE, VideoToolbox), batch processing via job queues, and extensive format/subtitle handling. Architecture follows platform-appropriate patterns: MVVM in WPF, delegates/protocols in macOS, and GObject-based design in GTK. The codebase demonstrates strong modularity, clear separation of concerns, and active maintenance across all platforms.

RATING: 9.7/10 MAINT: active DRIFT: low
▸ 5 reusable components found
jely2002/youtube-dl-gui ★ 9395 667 APPLICATION

Open Video Downloader (formerly youtube-dl-gui) is a cross-platform desktop GUI for downloading videos and audio from YouTube and over 1000 other websites, using yt-dlp as its core engine. It provides a queue-based download workflow with features including format/codec selection, subtitle management, SponsorBlock integration, authentication (cookies, tokens, passwords), input filtering (date, size, match filters), and extensive output customization (containers, filename templates, directory organization). The application also manages automatic updates of both itself and its helper binaries (yt-dlp, ffmpeg, ffprobe, deno, AtomicParsley) via a signed manifest. The architecture is a Tauri 2 application with a Rust backend and Vue 3 frontend. The Rust backend handles yt-dlp process management, output parsing (progress, errors, metadata), binary updates, configuration persistence, and concurrent download scheduling. The frontend uses Pinia stores for state management, Vue Router for navigation, and composables for reusable logic. Communication between frontend and backend occurs through Tauri IPC commands and events, with a well-defined command structure in Rust and corresponding listener plugins in TypeScript. Key entry points include src/main.ts (Vue app bootstrap), src-tauri/src/main.rs (Rust entry), src/router.ts (route definitions), and src/plugins/tauriListeners.ts (event listener registration). The primary data flow begins when a user adds a URL: the frontend sends an IPC command to the backend, which runs yt-dlp to fetch metadata, parses the JSON output into structured models, and returns the data to the frontend. The user then configures download options, and the backend spawns a yt-dlp download process, streaming progress events back to the frontend for real-time UI updates. External dependencies include yt-dlp, ffmpeg, ffprobe, deno, AtomicParsley, the SponsorBlock API, system keyring (via Tauri stronghold), and Sentry for error reporting.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 4 reusable components found
ebruck/radiotray-ng ★ 300 33 APPLICATION

Radiotray-NG is an internet radio player for Linux that runs in the system tray. It allows users to select and play configured radio stations, displays stream metadata, shows notifications, and provides control via system tray menu, media keys, or DBus. The application features a modular architecture with separate components for bookmarks management, configuration, event handling, playback (using GStreamer), playlist format handling, notifications, and GUI (with AppIndicator or ncurses fallback). It includes a bookmark editor GUI and supports sleep timer functionality.

RATING: 7.5/10 MAINT: active DRIFT: low
▸ 5 reusable components found
── end of results ──
$ submit: