UVDM is a powerful and easy-to-use tool for downloading and managing videos from popular websites. Built with a feature-rich interface, it offers multiple video formats (MP3, MP4, AVI...), playlist downloads, batch downloads, and integrated history for seamless content organization.
- Download videos in various formats: Supports MP3, MP4, AVI, and more.
- Torrent Support: Download torrents from public and private trackers with magnet links and .torrent files.
- Clipboard Monitoring: Detects supported video links automatically.
- Playlist and Batch Download Support: Download entire playlists or batch multiple links together.
- Integrated Download History: View downloaded videos with thumbnails, video details, and advanced sorting options.
- Customizable Themes: Personalize the look of the application with multiple themes.
- Multi-threaded Downloads: Faster downloads by utilizing multiple threads.
- Manage Downloads: Resume, rename, delete, or play downloads directly from the app.
- Active Downloads Overview: Monitor active downloads, network usage, and storage usage.
- yt-dlp Integration: Built on top of yt-dlp for reliable and powerful downloading capabilities.
- License Management System: Optional API-based license verification and management for enterprise deployments.
- Video Preview & Trimming: Preview videos and trim them to your desired length with built-in FFmpeg integration.
- 2-Week Free Pro Trial: First-time users can try Pro features for 2 weeks, no credit card required.
- Multiple Payment Options: Subscribe to Pro via Stripe or PayPal (when configured).
- 1000+ Supported Platforms: Download from YouTube, Facebook, Instagram, TikTok, and 1000+ more sites.
To install UVDM, simply clone the repository and install the required dependencies:
git clone https://github.com/Lovsan/uvdm.git
cd uvdm
pip install -r requirements.txtTo start UVDM, run the following command:
python main.pyOr use the convenience startup script:
# Linux/Mac
./start_uvdm.sh
# With API server
./start_uvdm.sh --with-api-server
# Windows
start_uvdm.bat
# With API server
start_uvdm.bat --with-api-serverOnce the application launches, you can use the following features:
- Paste Video URL: UVDM will automatically detect video URLs from your clipboard.
- Download Options: Choose your desired format and quality before downloading.
- Playlist Download: Paste a playlist URL to download all the videos in it.
- Batch Download: Use the Batch Download feature to queue multiple links at once.
- Launch UVDM.
- Copy a YouTube video URL to your clipboard.
- The app will detect the link and prompt you to start downloading.
- Click "Ok" "Download Later" or "Cancel"
- The app will open new Download tab in new thread and starts the download process.
- View your download progress in the "Active Downloads" tab.
UVDM now includes comprehensive torrent downloading capabilities powered by libtorrent.
- Magnet Link Support: Paste magnet links directly into UVDM
- .torrent File Support: Upload and download .torrent files
- Public Tracker Support: Download from public torrent sites
- Private Tracker Support: Configure authentication for private trackers
- Real-time Information: View seeds, peers, download/upload speeds
- File Information: See complete file lists with sizes before downloading
- Progress Tracking: Monitor download progress with detailed statistics
- Launch UVDM and navigate to the "Torrents" tab
- Enter a magnet link or browse for a .torrent file
- Select your download location
- Click "Start Download" to begin
- Monitor progress with real-time statistics
- View downloaded files in the specified output folder
The Torrents tab displays comprehensive information about your torrent:
- Torrent Name: The name of the content being downloaded
- Total Size: Combined size of all files in the torrent
- File Count: Number of files in the torrent
- Creator: Who created the torrent (if available)
- Creation Date: When the torrent was created
- File List: Detailed list of all files with individual sizes
- Real-time Stats: Seeds, peers, download/upload speeds
- Download Progress: Visual progress bar and percentage
- Library: libtorrent 2.0.11+
- Protocol: BitTorrent protocol with DHT, PEX, and UPnP support
- Session Management: Efficient session handling with proper cleanup
- Thread Safety: Non-blocking downloads using Qt threading
- yt-dlp
- libtorrent
- Python 3.7+
- Flask (for API server)
- Additional Python packages (listed in
requirements.txt)
UVDM includes an optional API system for license verification and management. This is particularly useful for enterprise deployments or when you want to manage license distribution.
-
Start the API server:
python api_server.py
-
Generate a license (admin access):
curl -X POST http://localhost:5000/api/license/generate \ -H "Content-Type: application/json" \ -d '{"admin_key": "admin123", "license_type": "standard", "duration_days": 365}'
-
Use the License Manager in UVDM:
- Launch UVDM
- Go to Help > License Manager
- Enter your license key and activate it
For detailed API documentation, see docs/API_DOCUMENTATION.md.
Edit api_config.env to configure the API server:
UVDM_API_HOST=0.0.0.0
UVDM_API_PORT=5000
UVDM_ADMIN_KEY=your_secure_admin_key
UVDM_LICENSE_SERVER=http://localhost:5000Important: Change the default admin key in production!
UVDM supports downloading videos from 1000+ platforms through yt-dlp integration. Here are some of the most popular:
- YouTube: Single videos, playlists, channels, multiple qualities (144p to 4K+), age-restricted content, subtitles
- Facebook: Public videos, Facebook Watch, live videos, multiple quality options
- Instagram: Post videos, Reels, IGTV, Stories (with authentication for private accounts)
- TikTok: Single videos, downloads without watermark (when possible), audio extraction
- Adult Content Sites: Various adult platforms with premium content support (18+, requires authentication)
- And 1000+ More: Twitter/X, Reddit, Vimeo, Dailymotion, Twitch, SoundCloud, and many more
- Launch UVDM
- Navigate to the "About" tab or "Pro Features" tab
- Click on any platform icon to see detailed support information
- Use the "View Supported Sites" button to see the complete list of 1000+ supported extractors
First-time users can try UVDM Pro features for 2 weeks, completely free with no credit card required!
To claim your free trial:
- Launch UVDM
- Navigate to the "Pro Features" tab
- Click the "Claim Free Trial" button
- Enjoy 14 days of Pro features!
Pro Features Include:
- π Faster download speeds with priority servers
- πΉ Advanced video editing and trimming tools
- π¬ Batch processing up to 100 videos
- βοΈ Cloud storage integration
- π Automatic format conversion
- π Detailed download analytics
- π― Ad-free experience
- π¬ Priority customer support
- π Access to exclusive features
- Trial information is stored locally using Qt Settings
- If the API server is configured, trial data is also synced to the server
- No credit card required for trial activation
- Full access to all Pro features during trial period
- Automatic notification when trial is about to expire
UVDM supports multiple payment methods for Pro subscriptions:
- Stripe: Credit/debit cards, Apple Pay, Google Pay
- PayPal: PayPal balance, credit/debit cards
- Pro Monthly: $9.99/month - All Pro features
- Pro Yearly: $99.99/year - Save 2 months (annual billing)
Payment integration requires configuration on the API server. Follow these steps:
Create a config/payments.json file based on config/payments.example.json:
cp config/payments.example.json config/payments.jsonEdit config/payments.json and add your API keys:
For Stripe:
{
"stripe": {
"enabled": true,
"publishable_key": "pk_live_YOUR_KEY",
"secret_key": "sk_live_YOUR_KEY",
"webhook_secret": "whsec_YOUR_SECRET"
}
}For PayPal:
{
"paypal": {
"enabled": true,
"mode": "live",
"client_id": "YOUR_CLIENT_ID",
"secret": "YOUR_SECRET"
}
}You can also configure payments using environment variables:
# Stripe
export STRIPE_PUBLISHABLE_KEY=pk_live_YOUR_KEY
export STRIPE_SECRET_KEY=sk_live_YOUR_KEY
export STRIPE_WEBHOOK_SECRET=whsec_YOUR_SECRET
# PayPal
export PAYPAL_CLIENT_ID=YOUR_CLIENT_ID
export PAYPAL_SECRET=YOUR_SECRET
export PAYPAL_MODE=live # or 'sandbox' for testingStripe Setup:
- Log in to Stripe Dashboard
- Create products: "UVDM Pro Monthly" and "UVDM Pro Yearly"
- Create prices for each product
- Copy the price IDs and add them to
config/payments.json
PayPal Setup:
- Log in to PayPal Developer Dashboard
- Create subscription plans
- Copy the plan IDs and add them to
config/payments.json
Stripe Webhooks:
- In Stripe Dashboard, go to Developers β Webhooks
- Add endpoint:
https://your-domain.com/api/webhooks/stripe - Select events:
customer.subscription.created,customer.subscription.updated,customer.subscription.deleted - Copy the webhook signing secret to
config/payments.json
PayPal Webhooks:
- In PayPal Developer Dashboard, go to your app β Webhooks
- Add webhook URL:
https://your-domain.com/api/webhooks/paypal - Select events:
BILLING.SUBSCRIPTION.CREATED,BILLING.SUBSCRIPTION.UPDATED,BILLING.SUBSCRIPTION.CANCELLED
python api_server.pyUse test mode before going live:
Stripe Test Mode:
- Use test API keys (pk_test_... and sk_test_...)
- Test with Stripe test cards
PayPal Sandbox:
- Set
"mode": "sandbox"in config - Use PayPal Sandbox accounts
If payment credentials are not configured, UVDM operates in "placeholder mode":
- Payment buttons are visible but show configuration instructions when clicked
- Users see helpful setup messages
- No actual payment processing occurs
- Perfect for development and testing
UVDM includes built-in video preview and trimming capabilities powered by FFmpeg.
- Preview videos in your system's default media player
- Trim videos to specific start and end times
- Two trimming modes: Local (fast) and Server-side (for URLs)
- Visual time selection with second precision
- Progress indicators for trimming operations
- Save trimmed videos with custom names
- Download a video using UVDM
- Navigate to "Download History" tab
- Right-click on a downloaded video
- Select "Preview & Trim" from the context menu
- In the preview dialog:
- Click "βΆ Play" to preview the full video
- Set start and end times for trimming
- Choose trimming mode (Local or Server-side)
- Click "βοΈ Trim Video" to create the trimmed version
- Save the trimmed video to your desired location
Local Mode (Recommended):
- Requires: Downloaded video file and FFmpeg installed
- Pros: Fast processing, no server required, works offline
- Uses: FFmpeg with copy codec for quick trimming
Server-side Mode:
- Requires: API server with video processing configured
- Pros: Works with video URLs, no local FFmpeg needed
- Note: This is currently a placeholder - server implementation required
Video trimming requires FFmpeg to be installed:
Windows:
# Using Chocolatey
choco install ffmpeg
# Or download from https://ffmpeg.org/download.htmlmacOS:
brew install ffmpegLinux:
# Ubuntu/Debian
sudo apt install ffmpeg
# Fedora
sudo dnf install ffmpeg
# Arch
sudo pacman -S ffmpegVerify installation:
ffmpeg -versionTo enable server-side trimming, implement the /api/trim endpoint in api_server.py:
- Install FFmpeg on the server
- Set up video storage (local or cloud)
- Implement video processing queue
- Handle trim requests and return download URLs
- Configure CDN or file server for video delivery
The endpoint specification is already defined in api_server.py as a placeholder.
Important: Change the default admin key in production!
This project is licensed under the MIT License. See the LICENSE file for more details.
Contributions are welcome! Feel free to open issues or submit pull requests to improve UVDM.
- yt-dlp: The core downloading tool used by UVDM.
- libtorrent: High-performance BitTorrent implementation for torrent downloads.
- ffmpeg: A complete, cross-platform solution to record, convert and stream audio and video.
- GitHub Repository: Ultimate Video Download Manager
- yt-dlp GitHub Repository: yt-dlp
- libtorrent Website: libtorrent.org
Get started with UVDM and simplify your video downloading experience!