MediaDownloader Project Overview

Media Downloader is a powerful desktop application developed using PySide6 and yt-dlp, designed to make downloading media from platforms like YouTube, TikTok, SoundCloud, Instagram, and Facebook a breeze. It allows users to download both audio and video content, either as single files or entire playlists, with customizable quality options. For audio downloads, it automatically adds rich metadata such as thumbnails, lyrics, and artist details—perfect for music lovers. The app also features a YouTube search tool, letting users preview and download content directly within the interface.


View on GitHub

Project Information

  • Category: App
  • Project Date: December 2024
  • Project URL: View on GitHub
  • Status: Completed

Project Summary

Media Downloader is an all-in-one tool for downloading audio and video from multiple platforms. Built with PySide6 for a sleek user interface and powered by yt-dlp for robust downloading capabilities, it supports single files and playlists, offers quality selection for videos, and enriches audio files with metadata like thumbnails, lyrics, and artist info. A built-in YouTube search feature allows users to find, preview, and download content without leaving the app, making it a go-to solution for media enthusiasts.

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:

Phase 1: Download Core

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.

Phase 2: Metadata Magic

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.

Phase 3: UI Design

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.

Phase 4: Search Functionality

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.

Phase 5: Polish & Testing

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