How m-awais-11/youtube-video-downloder works
This is a Tkinter desktop app for previewing and downloading YouTube video or audio, individually or in batches. The main workflow runs from URL entry in the main window through metadata/thumbnail preview and format selection, then through the download engine to a saved media file, with progress controls, notifications, and a history record. Playlist expansion feeds the batch queue, while settings and history provide separate management flows. Core call paths are supported by sampled source; some UI wiring and history-dialog interactions are inferred from README descriptions and the documented project structure.
Main entry points: main_window.py Main window · downloader.py Download engine · metadata.py Metadata extractor · config.py Settings manager
Components 22
Desktop interface
- App launcher
main.py - Main window
src/ui/main_window.py - Preview card
src/ui/components/preview_card.py - Progress controls
src/ui/components/progress_panel.py - Batch panel
src/ui/components/batch_panel.py - History dialog
src/ui/components/history_dialog.py - Settings dialog
src/ui/components/settings_dialog.py - Theme styling
src/ui/theme.py - Notifications
src/ui/notifier.py
Media workflow
- Metadata extractor
src/core/metadata.py - Download engine
src/core/downloader.py - Media utilities
src/core/utils.py - Downloaded media
Preferences and history
- Settings manager
src/config.py - Settings file
- History manager
src/core/history.py - History database
External tools
- yt-dlp
- Thumbnail host
- FFmpeg
- Desktop OS
Other components
- User
Connections 33
- User → App launcher: launches
- App launcher → Main window: creates
- User → Main window: enters URLs
- Main window → Metadata extractor: fetches preview
- Metadata extractor → yt-dlp: extracts info
- Metadata extractor → Thumbnail host: fetches thumbnail
- Main window → Preview card: updates preview
- Main window → Download engine: starts download
- Main window → Progress controls: updates progress
- Download engine → yt-dlp: downloads media
- Download engine → History manager: records status
- Download engine → Media utilities: formats progress
- Download engine → Downloaded media: writes media
- Download engine → Settings manager: reads FFmpeg setting
- Media utilities → FFmpeg: detects tool
- Metadata extractor → Media utilities: formats duration
- Metadata extractor → Settings manager: reads FFmpeg setting
- Main window → Batch panel: hosts batch view
- Batch panel → Metadata extractor: expands playlists
- Batch panel → Download engine: processes queue
- Batch panel → Notifications: announces batch
- Main window → Notifications: announces download
- Main window → Theme styling: applies theme
- Main window → Settings manager: reads and updates
- Settings dialog → Settings manager: saves preferences
- Main window → Settings dialog: opens settings
- Main window → History dialog: opens history
- History dialog → History manager: searches records
- History manager → History database: reads and writes
- Settings manager → Settings file: reads and writes
- Notifications → Settings manager: checks preference
- Notifications → Desktop OS: sends toast
- User → Batch panel: queues URLs