Add the Rust/egui app sources

- library.rs: scans channels/<name>/ into channels + videos by filename stem
- downloader.rs: runs yt-dlp in a background thread, streams progress to the UI
- app.rs / main.rs: channel sidebar, searchable thumbnail list, detail/description
  panel, downloads panel; plays videos via mpv (falls back to xdg-open)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
luna 2026-05-11 01:35:22 -07:00
parent ce503e50e2
commit acf188738a
7 changed files with 5181 additions and 5 deletions

20
src/main.rs Normal file
View file

@ -0,0 +1,20 @@
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
mod app;
mod downloader;
mod library;
fn main() -> eframe::Result<()> {
let native_options = eframe::NativeOptions {
viewport: eframe::egui::ViewportBuilder::default()
.with_inner_size([1280.0, 820.0])
.with_min_inner_size([800.0, 500.0])
.with_title("YouTube Backup"),
..Default::default()
};
eframe::run_native(
"youtube-backup",
native_options,
Box::new(|cc| Ok(Box::new(app::App::new(cc)))),
)
}