youtube_helper.gui module
YouTube Helper — minimal single-page GUI (“download bench”).
Module summary
This module holds nothing but the self-contained HTML document served by the
FastAPI app at GET /gui (see youtube_helper.api). It is deliberately
build-step-free: one string of HTML + Tailwind (via CDN) + vanilla ES-module
JavaScript. There is no bundler, no framework, no npm — the whole page is a
static asset the API returns verbatim.
Why a separate module
Keeping the (long) HTML out of youtube_helper.api keeps the route
definitions readable and mirrors the AI Helpers suite convention (audio-helper’s
gui.py is the canonical template). Other repos copy this file almost
verbatim: swap the form fields and the target endpoints, keep the plumbing.
What the page does
Paste a YouTube (or any yt-dlp-supported) URL — kept client-side until Run.
Choose audio or video, and (for audio) a target sample rate.
POST a JSON request to the SAME FastAPI endpoints the CLI and MCP surfaces use (
/audio//video) — the GUI adds zero new server logic.Show a progress indicator while the (potentially long) download runs, then a download link and an inline
<audio>/<video>player for the result.
Local-first
Everything runs against the local FastAPI app. youtube-helper fetches only the media the user asks for from the source site; nothing is uploaded to a third party, there is no telemetry and no account.