Releases: MPZ-00/voe-dl
Releases · MPZ-00/voe-dl
v1.8.0: CLI and Abort Improvements
This release brings major improvements to the command-line interface, custom filename generation, and graceful abort handling for voe-dl.
New Features
Custom Filename Generation
--nameflag: Set custom base names for downloaded videos--numberingflag: Automatically add episode numbering in S##E## format- Extracts episode tags from URLs (e.g., S01E05, S2E10)
- Generates sequential numbering if no tag is found
- Supports flexible formats (S1E5 to S99E99)
- Defaults to "Episode" prefix when used without
--name
#:title prefix: Set a custom title for batch downloads by adding#: Titleas the first line in your links file
Dry-Run Mode
--dry-runflag: Test your download setup without actually downloading files- Perfect for validating links, checking filename patterns, and testing configurations
Graceful Abort Handling
- Ctrl+C support: Press Ctrl+C to gracefully abort all downloads
- SIGINT signal handler: Immediate response to abort signals (no waiting for blocking I/O)
- Interactive cleanup prompt: Choose whether to keep or delete
.partfiles after abort- Keep: Resume downloads later
- Delete: Start fresh next time
- Progress hooks: yt-dlp downloads now respect abort signals during active transfers
- Custom exception: New
DownloadAbortedExceptionfor clearer error handling
Enhanced CLI
- Mutually exclusive arguments:
-u(single URL) and-l(list file) are now properly validated - Worker control: Configure parallel download threads with
-wflag (default: 4)
Improvements
Multi-Threading Enhancements
- Global stop event for coordinating abort across all threads
- Proper executor shutdown with future cancellation on abort
- Thread-safe argument passing using
copy.copy() - Separate success and failure counters for better progress reporting
- Eliminated code duplication with helper functions
Better User Experience
- Output flushing to prevent interleaved messages from threads
- Clear status messages for downloads in progress
- Improved error reporting with detailed failure information
Bug Fixes
- Fixed Ctrl+C not stopping downloads immediately
- Fixed
PermissionErrorwhen cleaning up.partfiles during active downloads - Fixed
CancelledErrortracebacks appearing in console - Fixed redundant future completion checks
- Fixed signal handler being registered multiple times
Documentation
- Comprehensive README updates with examples for all new features
- CHANGELOG fully updated with all changes
- Build instructions maintained in BUILD.md
Credits
Special thanks to all contributors and the GitHub Copilot review system for helping improve code quality!
Installation
Download voe-dl.exe from the releases page or run from source:
git clone https://github.com/MPZ-00/voe-dl.git
cd voe-dl
pip install -r requirements.txt
python dl.py -hExample Usage
# Single download with custom name
voe-dl -u https://voe.sx/video --name "MyVideo"
# Batch download with episode numbering
voe-dl -l links.txt --name "Series Name" --numbering
# Test without downloading
voe-dl -l links.txt --dry-run
# 8 parallel downloads
voe-dl -l links.txt -w 8Full Changelog: v1.7.3...v1.8.0
v1.7.3
v1.7.2
[v1.7.2] - Upstream Merge & Sync
Release Date: 2025-05-06
Added
- Merged latest changes from
upstream/main, including upstream's implementation of Method 7.
Removed
- Redundant upstream Method 7 code block — already present and documented in earlier implementation.
Changed
- Codebase synced with upstream while preserving local improvements and structure.
[v1.7.1] - Improved Bait Detection
Release Date: 2025-05-06
Added
- Enhanced bait detection logic to include additional patterns for filenames and domains.
[v1.7.0] - Method 8 for Source Detection
Release Date: 2025-05-06
Added
- Implemented Method 8 for source detection, contributed by @Domkeykong.
- Decoding process includes multiple steps: ROT13, pattern replacement, Base64 decoding, character shifting, reversing, and final Base64 decoding.
- Handles obfuscated JSON sources embedded in
<script type="application/json">tags. - Added helper functions for decoding and deobfuscation.
Changed
- Updated
help()function to include Method 8 in the version history. - Improved error handling for obfuscated JSON parsing.
v1.6.0
[v1.6.0] - Enhanced Source Detection with Method 7
Release Date: 2025-04-21
Added
- Implemented Method 7 for source detection, contributed by @th3infinity and @ottobauer.
- Decoding process includes multiple steps: ROT13, pattern replacement, underscore removal, Base64 decoding, character shifting, reversing, and final Base64 decoding.
- Enhanced handling of encrypted and hidden sources.
Changed
- Improved robustness of source detection logic to accommodate evolving site structures.
v1.5.1
Changelog
[v1.5.1] - Documentation Updates
Release Date: 2025-04-06
Added
- Updated
README.mdwith detailed usage instructions, including examples for single and batch downloads. - Added information about the
-wargument for parallel downloads. - Included troubleshooting tips and common error fixes.
Changed
- Improved the
help()function to include a description of the-wargument.
[v1.5.0] - Improved Source Detection and Bait Handling
Release Date: 2025-04-06
Added
- Introduced functionality to identify and ignore "bait" sources using a predefined list.
- Enhanced Method 6 to support additional patterns like
var a168c = '...'for extracting encoded sources. - Added a
clean_base64function to safely handle and validate Base64 strings.
Changed
- Improved error handling and debugging output for better traceability.
- Ensured flexibility by allowing easy extension of "bait" patterns and encoded source patterns.