Changelog
v3.0.1
v3.0.1
Added
YouTube Music Handler: Integrated
youtube_music_handler.pyto properly detect and handlemusic.youtube.comlinks.
v3.0.0
v3.0.0
This is a major release introducing massive platform expansion, AI integration, and enriched terminal experiences.
Added
14 New Platform Handlers:
Music: Amazon Music, Boomplay, Audiomack
Video/Streaming: Dailymotion, Vimeo, Rumble, Twitch, Kick, TED, BitChute, Flickr, PeerTube, Veoh, TrillerTV
Concurrent Downloading: Added robust concurrent downloading support across all handlers to significantly speed up batch downloads.
Terminal Image Rendering: Added
sixelsupport to render images (e.g. thumbnails, wallpapers) directly in modern terminal emulators.AI-Powered YouTube Scoring: Introduced optional semantic matching (
sentence-transformersandtorch) to deeply improve the accuracy of YouTube searches when resolving music streams.Dynamic Patching: Introduced
patch_handlers.pyto seamlessly manage handler overrides.Testing Scripts: Expanded testing coverage with
test_new_handlers.pyandtest_video_handlers.py.
Changed
Updated
ultimate_downloader.pyto seamlessly orchestrate the 14 new handlers.Overhauled
requirements.txtto include new dependencies (sixel) and optional AI dependencies.
v2.2.1
v2.2.1
Issue #15
Downloaded media files should open normally without security warnings
Files should be recognized as safe by macOS
Actual Behavior
macOS blocks the file
Shows malware verification warning
Requires manual override ("Open Anyway")
Environment
OS: macOS (Ventura / Sonoma)
Tool version: v2.2.1
File type:
.mp4Possible Cause
Files are not signed/notarized, so macOS Gatekeeper flags them
Extended attributes (
com.apple.quarantine) added during download
Fixed (Cross-Platform Download Security Markers)
Added automatic post-download cleanup for OS security markers when present:
macOS: removes
com.apple.quarantineWindows: removes
Zone.Identifier(Mark-of-the-Web)Linux: removes common origin/referrer xattrs (
user.xdg.origin.url,user.xdg.referrer.url)Cleanup now runs in both normal success flow and fallback file-detection success flow.
Added clearer success/error messaging for marker cleanup in verbose mode.
v2.2.0
v2.2.0
This release adds a dedicated wallpaper downloader module for 4kwallpapers.com with a full interactive browsing and download experience.
Added
4K Wallpapers Handler (
handlers/four_k_wallpapers_handler.py):Interactive browsing with category, tag, and search menus
Pagination support — browse up to 2400 wallpapers per session using
?page=NRange-based selection (
1,3,4-7,10-12,all, or press Enter to skip)Multi-resolution download (auto-picks highest available resolution per image)
Parallel downloads with Rich progress bars
Cloudflare bypass using bare
cloudscrapersession (no browser args)Home/Featured, Recently Added, Browse by Tag, Categories, and Search modes
Direct URL routing — paste any 4kwallpapers.com link to auto-detect mode
fetch_listing_paginated()with deduplication and early-terminationGraceful fallback when a page returns fewer than 20 results
CLI flags (
cli_args.py):--wallpaper— open 4K Wallpapers interactive menu directly--wallpaper-search QUERY— jump straight to search resultsInteractive mode commands (
ultimate_downloader.py):New commands
wallpaper,wallpapers,wpin interactive promptPasting a 4kwallpapers.com URL is now auto-routed to the handler
Platform detection (
utils/platform_utils.py,utils/url_validator.py):4kwallpapers.comadded to supported platforms and URL validator
Changed
Interactive banner and help menu updated to show
wallpaper / wpcommandultimate_downloader.pyinstantiatesFourKWallpapersHandleron startup when availablehandlers/__init__.pyexportsFourKWallpapersHandler
Fixed
Cloudflare challenge responses (8 KB page) caused by incorrect
cloudscraperbrowser args — fixed by removing browser emulation arguments from session creationPasting a 4kwallpapers.com URL in interactive mode no longer triggers a yt-dlp error
Technical Changes
Added
four_k_wallpapers_handler.py(~950 lines) withFourKWallpapersHandlerclassImplemented
_parse_selection(raw, total)for flexible range parsingImplemented
fetch_listing_paginated(base_url, max_wallpapers)for multi-page scrapingSearch results limited to one page (site restriction; 24 results max)
Download URLs constructed as
https://4kwallpapers.com/images/wallpapers/<slug>-<WxH>-<id>.png
v2.1.0
v2.1.0
This release focuses on social media platform support and handler improvements.
Added
Instagram Handler with comprehensive features:
Playwright-based browser automation for reliable extraction
Cookie persistence for authenticated sessions
Support for posts, reels, stories, and IGTV
Profile downloads with interactive menu options
Bulk download with progress tracking
Range selection (download posts 1-10, 5-20, etc.)
ZIP file creation for bundled downloads
Multi-format support (images, videos, carousels)
Story downloads before 24-hour expiration
User agent rotation to avoid detection
Error recovery for failed downloads
Rich progress bars with detailed status
JioSaavn Handler with full music platform support:
Track, album, and playlist downloads via YouTube search
Intelligent YouTube scoring for accurate matches
Full metadata extraction and embedding
Interactive song selection for albums/playlists
Range and selective download support (1,3-5,7)
High-quality audio with cover art embedding
HTML entity decoding for proper character display
Gaana Handler with comprehensive Indian music support:
Track, album, playlist, and artist downloads
Advanced web scraping with BeautifulSoup
Interactive song selection with flexible input (all, 1-10, 1,3,5)
YouTube search with intelligent scoring algorithm
Full metadata extraction (title, artist, album, year)
Cover art embedding from Gaana artwork
HTML entity decoding for special characters
Multiple format support (MP3, M4A, FLAC)
Pinterest Handler with advanced features:
Multi-tier download strategy (gallery-dl → pinterest-downloader → yt-dlp → web scraping)
Interactive prompt for custom pin count
Real-time progress tracking with file names
High-quality media selection (1000px+ images)
10 regex patterns and 7 extraction methods for robust scraping
Support for profiles, boards, and individual pins
No metadata JSON files (clean downloads)
LinkedIn Handler for professional content:
Support for direct post URLs with media
Rich progress bars with download speed and ETA
No Selenium dependency (faster and more reliable)
Video and image extraction from posts
Simplified architecture for reliability
Reddit Handler for social media content:
Download posts with media (videos, images, GIFs)
User profile content downloads
PRAW integration for API access
Automatic ZIP file creation for bulk downloads
Support for v.redd.it and i.redd.it domains
Gallery post support (multiple images)
Fallback to yt-dlp and web scraping
External library support:
playwright>=1.40.0for Instagram browser automationgallery-dl>=1.26.0for Pinterestpinterest-downloader>=1.0.0as alternativepraw>=7.7.1for Reddit API access
Changed
Added six major platform handlers (Instagram, JioSaavn, Gaana, Pinterest, LinkedIn, Reddit)
LinkedIn handler simplified to direct URLs only (no profile scraping)
Pinterest handler replaced Selenium with advanced web scraping
Instagram handler uses Playwright instead of traditional requests-only approach
JioSaavn and Gaana handlers use intelligent YouTube search with scoring
Improved progress display across all handlers
Updated requirements.txt with Playwright and optional external libraries
Enhanced metadata extraction for Indian music platforms
Fixed
Selenium "Bad CPU type" errors (removed Selenium from LinkedIn and Pinterest)
Pinterest metadata JSON files no longer created
Instagram login and authentication handling via cookies
JioSaavn and Gaana metadata extraction with proper HTML entity decoding
Video quality now defaults to high
Real-time progress tracking for downloads
Character encoding issues in Indian music platforms
Technical Changes
Implemented Playwright browser automation for Instagram
Added cookie management system for Instagram sessions
Created intelligent YouTube scoring algorithm for music platforms
Implemented BeautifulSoup scraping for JioSaavn and Gaana
Added flexible song selection parsing (ranges, lists, all)
Implemented subprocess streaming for real-time gallery-dl output
Added Rich progress bars to download operations
Created multi-method fallback system for Pinterest
Added PRAW integration for Reddit API access
Removed Selenium dependencies where not needed
Enhanced error handling for social media platforms
Implemented HTML entity decoding for international characters
v2.0.0
v2.0.0
This is a major release with significant architectural improvements and new features.
Added
Modular handler system for platform-specific downloads
Spotify handler with API integration and YouTube search fallback
Apple Music handler with metadata extraction
Tumblr handler for blog media downloads
Pornhub, XNXX, and xHamster handlers
HiAnime handler for anime series and episodes
TikTok handler for TikTok video downloads with SSL bypass
Eporner handler with advanced SSL/TLS handling
HQPorner handler for high-quality video downloads
Beeg handler with API integration and curl fallback
Generic site downloader with advanced bypass capabilities
YouTube scoring algorithm for accurate search results
Rich CLI interface with progress bars and colored output
Interactive mode for guided downloads
Batch download support with parallel processing
Configuration file support (config.json)
Environment variable configuration
Comprehensive documentation in
/documentationsfolder
Changed
Refactored codebase into modular components
Moved utility functions to dedicated modules in
/utilsImproved error handling with graceful degradation
Enhanced logging system with warning/error counting
Updated default download directory to
~/Downloads/UltimateDownloaderImproved filename sanitization for cross-platform compatibility
Fixed
SSL certificate verification issues on certain sites
Rate limiting detection and automatic delays
Memory usage optimization for large playlists
Resume functionality for interrupted downloads
Technical Changes
Split monolithic code into handler modules
Created utility layer with reusable functions
Added browser automation utilities
Implemented proxy rotation support
Added Cloudflare bypass capabilities
v1.0.5
v1.0.5
Added
pipx installation support
Global
umdcommandInstallation scripts for all platforms
Basic playlist download support
Changed
Improved installation process
Better error messages
Updated dependencies
Fixed
PATH issues on various operating systems
Permission problems on Linux/macOS
v1.0.0
v1.0.0
Initial release of Ultimate Media Downloader.
Features
YouTube video and audio downloads
Basic playlist support
Quality selection
Format conversion
Metadata embedding
Command-line interface