All in one video/ audio downloader with built in converter
The Universal Media Downloader is a desktop application built in Python using
Tkinter
for the GUI. It allows users to download audio and video from multiple
platforms including YouTube, Spotify, SoundCloud, Bandcamp, and more.
This project demonstrates integrating open-source tools (yt-dlp
, spotdl
,
and ffmpeg
) into a cohesive, user-friendly interface.
sites.json
.
In Audio Mode, the downloader extracts soundtracks from supported platforms using
yt-dlp
and ffmpeg
. Users can select formats such as MP3 or WAV, with
customizable quality levels (e.g., 128 kbps or 320 kbps). Metadata such as title, album, and
artist is embedded automatically when available. For Spotify sources, spotdl
ensures
accurate tags and cover art are fetched before saving the final file.
In Video Mode, the application downloads full videos in formats such as MP4 or MKV.
yt-dlp
manages the parsing and merging of video + audio streams, while
ffmpeg
handles post-processing. If a requested site provides only audio streams,
the program generates a simple video with a black background and overlays the audio track,
ensuring the output is still usable across video players. Resolution is selectable when multiple
streams are available (e.g., 480p, 720p, 1080p).
The app is structured around a Tkinter interface with tabs for queue management and logs.
Downloads run on background threads to avoid blocking the GUI.
yt-dlp
handles parsing and downloading video/audio, while spotdl
provides
rich Spotify playlist and metadata integration. ffmpeg
is invoked for audio extraction
and video processing. The program also maintains a JSON file to track which domains are valid/invalid
based on prior attempts, making it self-learning over time.
.after()
to prevent crashes.