PROJECT_OVERVIEW.md

Project Overview

This document provides a high-level overview of the Ultimate Media Downloader project, its goals, features, and technical details.


What is Ultimate Media Downloader

Ultimate Media Downloader is a command-line application written in Python that allows you to download media content from over 100 different websites. It handles videos, audio, playlists, and entire channels from platforms like YouTube, Spotify, Instagram, TikTok, and many more.

The project was created to provide a single, unified tool for downloading media instead of using different tools for different platforms.

Why This Project Exists

Many people need to download media for legitimate purposes:

  • Archiving personal content
  • Offline access to purchased content
  • Educational research
  • Creating backups
  • Accessibility needs

This tool makes these tasks easier by providing a consistent interface across all platforms.


Project Goals

Primary Goals

  1. Simplicity: One command (umd) to download from any supported platform
  2. Quality: Download the highest quality available
  3. Reliability: Handle errors gracefully and retry failed downloads
  4. Extensibility: Easy to add support for new platforms

Design Goals

  1. User-Friendly: Beautiful CLI interface with progress bars
  2. Cross-Platform: Works on Windows, macOS, and Linux
  3. Modular: Clean code organization with separate handlers
  4. Well-Documented: Comprehensive documentation for users and developers

Core Features

Feature Overview

Loading diagram...

Video Features

FeatureDescription
Quality SelectionChoose from 4K, 1080p, 720p, and more
Format SupportMP4, WebM, MKV output formats
Resume DownloadsAutomatically resume interrupted downloads
Live StreamsRecord live streams in progress

Audio Features

FeatureDescription
Audio ExtractionExtract audio from any video
Multiple FormatsMP3, FLAC, WAV, M4A, Opus
Quality SettingsUp to 320kbps bitrate
MetadataEmbed title, artist, album, year
Cover ArtEmbed thumbnail as cover art

Playlist Features

FeatureDescription
Full DownloadsDownload entire playlists
SelectiveChoose specific items to download
Batch ModeParallel downloading for speed
ProgressTrack overall playlist progress

Platform Features

FeatureDescription
Auto-DetectionAutomatically detect platform from URL
FallbackMultiple download methods per platform
AuthenticationCookie support for private content
Anti-Bot BypassHandle Cloudflare and other protections

Supported Platforms

Video Platforms

PlatformContent Types
YouTubeVideos, playlists, channels, shorts, live
VimeoVideos, private videos
DailymotionVideos
TwitchVODs, clips, live streams
FacebookVideos, live streams
HiAnimeVideos, Series, Episodes
TikTokVideos, user content
EpornerVideos
HQPornerVideos
BeegVideos
RumbleVideos
KickVODs, live streams
TEDVideos
BitChuteVideos
FlickrVideos, Images
PeerTubeVideos
VeohVideos
TrillerTVVideos, Streams

Music Platforms

PlatformContent Types
SpotifyTracks, albums, playlists (via YouTube)
SoundCloudTracks, playlists, user uploads
Apple MusicSongs, albums (via YouTube)
JioSaavnTracks, albums, playlists (via YouTube)
GaanaTracks, albums, playlists, artists (via YouTube)
BandcampTracks, albums
Amazon MusicTracks, albums, playlists
BoomplayTracks, albums
AudiomackTracks, albums, playlists
YouTube MusicTracks, albums, playlists

Social Media

PlatformContent Types
InstagramPosts, reels, stories, IGTV, profiles
TikTokVideos, user content
Twitter/XVideo tweets
RedditVideos, posts, user content
TumblrImages, videos, blogs
LinkedInPosts, videos
PinterestPins, boards, profiles

Image & Wallpaper Platforms

PlatformContent Types
4kwallpapers.com4K/8K wallpapers — browse by category, tag, or search; range selection; multi-resolution download

Additional Support

Through the yt-dlp integration, the application supports over 1000 additional websites. Use umd --list-platforms to see the full list.


Technology Stack

Core Technologies

Loading diagram...

Key Dependencies

PackagePurpose
yt-dlpCore download engine for 1000+ sites
richBeautiful terminal formatting
requestsHTTP requests
mutagenAudio metadata editing
PillowImage processing
spotipySpotify API wrapper
cloudscraperCloudflare bypass
BeautifulSoupHTML parsing
sixelTerminal image rendering
sentence-transformersAI YouTube search scoring (Optional)

Why These Technologies

  • yt-dlp: Most comprehensive video extraction library available
  • Rich: Modern, beautiful terminal UI with progress bars
  • Mutagen: Industry-standard audio metadata library
  • FFmpeg: Universal media processing tool

Project Statistics

Codebase Overview

MetricValue
Main Application~3500 lines
Generic Downloader~1200 lines
Spotify Handler~1200 lines
Apple Music Handler~1100 lines
JioSaavn Handler~1700 lines
Gaana Handler~1140 lines
Instagram Handler~1719 lines
4K Wallpapers Handler~950 lines
YouTube Scorer~1000 lines
Utility Modules~1500 lines
Total Python Code~15000+ lines

File Count

CategoryCount
Python Files35+
Handler Modules32
Utility Modules9
Shell Scripts8
Documentation11+

Supported Sites

CategoryCount
Video Platforms50+
Music Platforms10+
Social Media15+
Image/Wallpaper1+
Other Sites900+
Total via yt-dlp1000+

Future Development

Planned Features

  • GUI application (Electron or native)
  • Browser extension integration
  • Download scheduling
  • Enhanced metadata from additional sources
  • Mobile companion app

Contributing

The project welcomes contributions. See the main README for contribution guidelines.


Summary

Ultimate Media Downloader is a comprehensive solution for downloading media from the internet. It combines the power of yt-dlp with custom handlers for specific platforms, all wrapped in a user-friendly interface.

The modular architecture makes it easy to extend and maintain, while the extensive configuration options allow users to customize behavior to their needs.

For installation instructions, see Installation Guide. For usage instructions, see Usage Guide.