You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Web app (web_app.py) — Flask-based browser interface. Run locally or
deploy to any WSGI host. Includes JSON API, per-job progress polling, and a
shared dark theme matching the desktop GUI.
Tri-language UI — English (default), Traditional Chinese, Simplified
Chinese. Switch at runtime; both interfaces share i18n.py.
Shared engine (core.py) — extracted yt-dlp + ffmpeg logic into a
UI-agnostic Downloader / Converter pair so the desktop GUI and web app
reuse the exact same code path.
Changed
English-first interface — all UI text, log lines, and dialog messages
now default to English; the previous bilingual labels are replaced by a
language switcher.
Cleaner architecture — desktop GUI shrunk by factoring the engine out,
leaving the file focused on layout + tkinter glue.
Format string handling — log messages use keyed templates resolved
through Translator.t(key, **fmt) so adding languages no longer requires
editing core logic.
Improved
Cooperative stop now reliably interrupts both downloads and conversions via Downloader.stop() / Converter.stop() on the shared engine.
Progress callbacks now report percent, speed, and ETA as a typed tuple
instead of stringly-typed config calls.
format_filesize() extended to GB and keeps the 1 MiB boundary fix.
Conversion status cells in the desktop tree now re-translate when the
language is switched mid-session.