Media Downloader: Your Ultimate Media Downloading Companion
Problem Statement
Downloading media from platforms like YouTube, TikTok, or SoundCloud can be a hassle—users often face inconsistent interfaces, limited quality options, and the tedious task of manually adding metadata like lyrics or thumbnails. Media Downloader solves these pain points by offering a single, intuitive application that handles downloads across multiple platforms, provides quality choices, and automatically embeds detailed metadata, streamlining the entire process for a better user experience.
Approach & Methodology
Building Media Downloader required a structured approach to integrate powerful downloading features with a user-friendly interface. Here’s how it came together:
Implementing yt-dlp
Leveraged yt-dlp to enable downloading from numerous platforms, supporting both audio and video in single-file and playlist formats. Added quality selection for video downloads to give users control over their content.
Metadata Integration
Created a metadata system using mutagen to embed details like titles, artists, and thumbnails into audio files. Integrated LRCLib and Genius APIs to fetch lyrics, enhancing music downloads with rich information.
PySide6 Interface
Developed a clean, responsive interface with PySide6, featuring tabs for audio, video, and search. Added real-time progress updates, cancel options, and preview capabilities to keep users engaged and informed.
YouTube Search & Preview
Built a YouTube search feature within the app, allowing users to find videos, preview them, and download either audio or video directly—making content discovery seamless.
Optimization
Used threading for smooth, non-blocking downloads and conducted thorough testing to ensure compatibility, error handling, and a polished experience across all features.
Role & Contributions
As the sole developer of Media Downloader, I took on every aspect of the project, including:
- Designing the application’s architecture for scalability and ease of use
- Integrating yt-dlp to support downloads from diverse platforms
- Building the metadata module with mutagen and external APIs for lyrics and thumbnails
- Crafting the PySide6 UI with tabs, previews, and real-time feedback
- Implementing the YouTube search and preview system for in-app content discovery
- Optimizing performance with threading and robust error handling
- Testing and refining the app to ensure a reliable, user-friendly tool
Results & Outcomes
Media Downloader delivers a robust set of features that make media downloading effortless and enjoyable:
- Downloads audio and video from platforms like YouTube, TikTok, SoundCloud, Instagram, and Facebook
- Supports single files and playlists with customizable video quality options
- Automatically adds metadata—thumbnails, lyrics, artist info—to audio files
- Offers a YouTube search feature with preview and direct download capabilities
- Provides a sleek, intuitive interface with progress tracking and cancel options
The result is a versatile tool that simplifies media management, showcasing my skills in Python, GUI development, and API integration while meeting the needs of users who crave convenience and quality.
Technologies Used
- Python
- PySide6
- yt-dlp
- Mutagen
- Requests
- BeautifulSoup
- Genius API
- LRCLib API