r3n@RSG 0.1
██╗ ██████╗ ██████╗ ██╗ ██████╗ ███████╗
██║ ╚════██╗██╔══██╗██║ ██╔══██╗██╔════╝
██║ █████╔╝██║ ██║██║█████╗██████╔╝█████╗
██║ ╚═══██╗██║ ██║██║╚════╝██╔══██╗██╔══╝
███████╗██████╔╝██████╔╝███████╗ ██║ ██║███████╗
╚══════╝╚═════╝ ╚═════╝ ╚══════╝ ╚═╝ ╚═╝╚══════╝
- L3DL-REscripted widevine downloader -
This script was modified from the base L3 module and named as such because it depends on N_m3u8DL-RE instead of yt-dlp/aria2c/ffmpeg/mkvmerge. This project is more of vinebatch's successor that is faster and better.
Since most big VODs have their dedicated downloaders, this is aimed for smaller sites that have no custom payload needed but you can modify it to your specific use case. I have already made multiple custom downloaders from this base script. This is initial release and will likely contain bugs that will either be fixed in the future or not.
Requirements:
- These should be on your PATH (use latest): mkvtoolnix/mkvmerge, shaka-packager.exe
- python3 (tested on python 3.10.xx)
- Working L3 CDM inside \pywidevine_\L3\cdm\devices\android_generic
usage: l3dl.py [-h] [-m] [-l] [-o] [-p] [--batch BATCH] [--select] [--keys] [--shut]
options:
-h, --help show this help message and exit
-m , --manifest your mpd/m3u8 link
-l , --license license url link
-o , --output output file name
-p , --pssh supply pssh instead of extracting from manifest
--batch BATCH batch download mode. what file to open?
--select manually pick what to download
--keys keys only, don't download
--shut shutdown windows after the process
There are two modes here, single video version and batch mode. For single version, you need to supply the manifest link, the license link, and the output file name (output filename is optional for --keys flag). For batch version, just include --batch and the text file with the following format: name;manifest_link;license_url
If you want to only get keys, add the --keys flag. By default, the settings will download all of the subs and best audio/video. If you know that your manifest has more than one audio, you can add --select flag which will provide you with an interactive menu before downloading.
The PSSH, KID:KEY, manifest link, license URL, are all added on the local db file for reference/review. If you want to view it, you can use sqlitebrowser or similar tools.
The code is self-documenting so browse and read it.