Merge branch 'dev' of https://github.com/chu23465/VT-PR into dev

This commit is contained in:
chu23465 2025-04-17 10:02:35 +05:30
commit 31aa7d19c7

View File

@ -3,17 +3,21 @@ A tool to download and remove DRM from streaming services. Modified to remove Pl
The name `VineTrimmer` comes from `Vine` as in `WideVine` and `Trimmer` as in remove. The name `VineTrimmer` comes from `Vine` as in `WideVine` and `Trimmer` as in remove.
## This project is under active development. Occasionaly expect bugs and errors. ## Read the README thoroughly atleast twice. I cannot stress how important this is. There is a reason why this README is so verbose.
## This project is under active development. Expect bugs and errors.
## Disclaimer!!! ## Disclaimer!!!
This project is ONLY for educational/archival/personal purposes. I do not condone piracy in any form. This project is ONLY for educational/archival/personal purposes. I do not condone piracy in any form.
By using this project you agree that: By using this project you agree that:
`The developer shall not be held responsible for any account suspensions, terminations, or penalties imposed by third-party platforms. The User acknowledges and agrees that they are solely responsible for complying with all terms, policies, and guidelines of any such platforms.` `The developer shall not be held responsible for any account suspensions, terminations, penalties or legal action taken/imposed by third-party platforms. The User acknowledges and agrees that they are solely responsible for complying with all terms, policies, copyright and guidelines of any such platforms.`
I AM NOT taking credit for the entirety of this project. This project is based on a version of an old fork of [devine](https://github.com/devine-dl/devine) that was found floating around online. I AM taking credit for about 20% of the additional stuff that I personally worked on. I AM NOT taking credit for the entirety of this project. This project is based on a version of an old fork of [devine](https://github.com/devine-dl/devine) that was found floating around online. I AM taking credit for about 20% of the additional stuff that I personally worked on.
Support for Sport replays or live streams is not planned. It's a whole thing with OTT panels and restreaming and whatnot. It's a can of worms that I don't plan on opening.
## Supporters ## Supporters
[@m41c0n](https://github.com/m41c0n) [@m41c0n](https://github.com/m41c0n)
@ -21,10 +25,11 @@ I AM NOT taking credit for the entirety of this project. This project is based o
## Features ## Features
- Progress Bars for decryption ([mp4decrypt](https://github.com/chu23465/bentoOldFork), Shaka) - Progress Bars for decryption ([mp4decrypt](https://github.com/chu23465/bentoOldFork), Shaka)
- Refresh Token fixed for Amazon service - Refresh Token fixed for Amazon service
- Reprovision .prd after 2 days - Reprovision .prd automatically after 2 days
- ISM manifest support (Microsoft Smooth Streaming) (WIP/Experimental) - ISM manifest support (Microsoft Smooth Streaming) (WIP/Experimental)
- N_m3u8DL-RE downloader support - N_m3u8DL-RE downloader support (Experimental)
- Atmos audio with ISM manifest (Amazon) is Fixed - Atmos audio with ISM manifest (Amazon) is Fixed
- Resume failed download has been sort of implemented. If a track has been successfully downloaded previously and exists in `Temp` directory, VT will not download said track again and will resume download.
## Usage ## Usage
@ -33,16 +38,16 @@ I AM NOT taking credit for the entirety of this project. This project is based o
2. Ensure Python is installed in your system (cannot be from the the Microsoft Store). Refer to [link](https://www.python.org/downloads/) or on Ubuntu -> `sudo apt install python3`. I recommend python 3.10.11 (or higher). Python 3.13 does not work. 2. Ensure Python is installed in your system (cannot be from the the Microsoft Store). Refer to [link](https://www.python.org/downloads/) or on Ubuntu -> `sudo apt install python3`. I recommend python 3.10.11 (or higher). Python 3.13 does not work.
3. Make sure git is installed in your system by running `git --version`. If not refer to [link](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) 3. Make sure git is installed in your system by running `git --version`. If not refer to [link](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git).
4. Choose a branch, either `dev` or `main`. Use below command to download. (Recommended instead of downloading zip) 4. Choose a branch, either `dev` or `main`. Use below command to download. (Recommended instead of downloading zip)
```bash ```bash
git clone -b <branch-name> --single-branch https://github.com/chu23465/VT-PR git clone -b <branch-name> --single-branch https://github.com/chu23465/VT-PR
``` ```
5. Navigate and find `install.bat` 5. Navigate and find `install.bat`.
6. Run `install.bat` 6. Run `install.bat`.
7. Activate venv using `venv.cmd`. 7. Activate venv using `venv.cmd`.
@ -122,18 +127,16 @@ Options:
| --mux | Force muxing when using --audio-only/--subs-only/--chapters-only. | False | | --mux | Force muxing when using --audio-only/--subs-only/--chapters-only. | False |
| -ss, --strip-sdh | Stip SDH subtitles and convert them to CC. Plus fix common errors. | False | | -ss, --strip-sdh | Stip SDH subtitles and convert them to CC. Plus fix common errors. | False |
| -?, -h, --help | Show this message and exit. | | | -?, -h, --help | Show this message and exit. | |
Currently supported platforms:
COMMAND :- COMMAND :-
| Alaias | Command | Service Link | | Alaias | Command | Service Link |
|--------|---------------|--------------------------------------------| |--------|---------------|--------------------------------------------|
| AMZN | Amazon | https://amazon.com, https://primevideo.com | | AMZN | Amazon | https://amazon.com, https://primevideo.com |
| ATVP | AppleTVPlus | https://tv.apple.com |
| DSNP | DisneyPlus | https://disneyplus.com/ | | DSNP | DisneyPlus | https://disneyplus.com/ |
| HS | Hotstar | https://www.hotstar.com/ | | HS | Hotstar | https://www.hotstar.com/ |
| MAX | Max | https://max.com | | MAX | Max | https://max.com |
| NF | Netflix | https://netflix.com |
| PCOK | Peacock | https://peacocktv.com/ | | PCOK | Peacock | https://peacocktv.com/ |
Untested or not fully implemeted services: Untested or not fully implemeted services:
@ -144,6 +147,7 @@ Untested or not fully implemeted services:
| HULU | Hulu | https://hulu.com | | HULU | Hulu | https://hulu.com |
| JC | JioCinema | https://www.jiocinema.com | | JC | JioCinema | https://www.jiocinema.com |
| MA | MoviesAnywhere | https://moviesanywhere.com | | MA | MoviesAnywhere | https://moviesanywhere.com |
| NF | Netflix | https://netflix.com |
| PMTP | ParamountPlus | https://paramountplus.com | | PMTP | ParamountPlus | https://paramountplus.com |
| SL | SonyLiv | https://sonyliv.com | | SL | SonyLiv | https://sonyliv.com |
@ -171,10 +175,10 @@ Usage: vt.cmd AMZN [OPTIONS] [TITLE]
Use 'Amazon Video ASIN Display' for Tampermonkey addon for ASIN Use 'Amazon Video ASIN Display' for Tampermonkey addon for ASIN
https://greasyfork.org/en/scripts/496577-amazon-video-asin-display https://greasyfork.org/en/scripts/496577-amazon-video-asin-display
vt dl --list -z uk -q 1080 Amazon B09SLGYLK8
Below flags to be passed after the `AMZN` or `Amazon` keyword in command. Below flags to be passed after the `AMZN` or `Amazon` keyword in command.
ARGS:
| Command Line Switch | Description | | Command Line Switch | Description |
|-------------------------------------|-----------------------------------------------------------------------------------------------------| |-------------------------------------|-----------------------------------------------------------------------------------------------------|
| -b, --bitrate | Video Bitrate Mode to download in. CVBR=Constrained Variable Bitrate, CBR=Constant Bitrate. (CVBR or CBR or CVBR+CBR) | | -b, --bitrate | Video Bitrate Mode to download in. CVBR=Constrained Variable Bitrate, CBR=Constant Bitrate. (CVBR or CBR or CVBR+CBR) |
@ -194,14 +198,17 @@ https://www.primevideo.com/region/eu/ontv/code?ref_=atv_auth_red_aft
Login and get to the code pair page. Extract cookies from that page using [Open Cookies.txt](https://chromewebstore.google.com/detail/open-cookiestxt/gdocmgbfkjnnpapoeobnolbbkoibbcif). Login and get to the code pair page. Extract cookies from that page using [Open Cookies.txt](https://chromewebstore.google.com/detail/open-cookiestxt/gdocmgbfkjnnpapoeobnolbbkoibbcif).
Save it to the path `vinetrimmer/Cookies/Amazon/default.txt`. Pay attention to path if you are on Linux. Path is case sensitive and needs the capital `C` for `Cookies` and capital `A` for `Amazon`. Save it to the path `vinetrimmer/Cookies/Amazon/default.txt`. Pay attention to path if you are on Linux. Path is case sensitive.
When caching cookies, use a profile without PIN. Otherwise it may cause errors. When caching cookies, use a profile without PIN. Otherwise it may cause errors.
If you are facing 403 or 400 errors even after saving fresh cookies and clearing `Cache` Folder, try logging out of your Amazon account in the browser and logging back in. Then save cookies. If you are facing 403 or 400 errors even after saving fresh cookies and clearing `Cache` folder, try logging out of your Amazon account in the browser and logging back in. Then save cookies.
Some titles say `UHD/2160p` is available and if VT is saying `no 2160p track available`, then `UHD/2160p` is only available via renting. Some titles say `UHD/2160p` is available and if VT is saying `no 2160p track available`, then `UHD/2160p` is only available via renting.
If you are getting an `AssertionError` with Amazon, then try reprovisioning the device. I have included a batch script in the `vinetrimmer/devices/` directory to do this. Simply execute the script and try again.
### Peacock ### Peacock
- PCOK bans leaked certs quickly (for 4k), be cautious. - PCOK bans leaked certs quickly (for 4k), be cautious.
@ -218,15 +225,10 @@ Some titles say `UHD/2160p` is available and if VT is saying `no 2160p track ava
### DisneyPlus ### DisneyPlus
Needs only credentials added to `vinetrimmer.yml`. - Needs only credentials added to `vinetrimmer.yml`.
- Requires you to use `-m` or `--movie` flag if you are downloading a movie. Append flag to end of your command.
Requires you to use `-m` or `--movie` flag if you are downloading a movie. Append flag to end of your command. - From my testing, when using with VPN, it causes lots of issues, mainly needing to clear `Cache` folder and login repeatedly. Use residential proxies if available. Don't hammer service. Try waiting a minute or two before logging in again.
- If you are getting `No 2160p track found` error for a title you know has 4k, then try passing `-r DV` or `-r HDR`. Make sure your account can access highest qualities.
From my testing, when using with VPN, it causes lots of issues, mainly needing to clear `Cache` folder and login repeatedly. Use residential proxies if available.
If you are getting `No 2160p track found` error for a title you know has 4k, then try passing `-r DV` or `-r HDR`.
Make sure your account can access highest qualities.
### Example Command ### Example Command
@ -289,7 +291,7 @@ Above command:
## Proxy ## Proxy
I recommend [Windscribe](https://windscribe.com/). You can sign up, getting 10 GB of traffic credit every month for free. We use the VPN for everything except downloading video/audio. I recommend [Windscribe](https://windscribe.com/). You can sign up, getting 10 GB of traffic credit every month for free. We use the VPN for everything except downloading video/audio.
Tested so far on Amazon, AppleTVPlus, Max. Tested so far on Amazon, AppleTVPlus, Max, and DisneyPlus.
### Steps: ### Steps:
1. For each service, within get_tracks() function we do this below. Below is only when you are integrating a new service yourself. Set needs_proxy to True if your service needs proxy to get manifest (Ex - Netflix, Hotstar). 1. For each service, within get_tracks() function we do this below. Below is only when you are integrating a new service yourself. Set needs_proxy to True if your service needs proxy to get manifest (Ex - Netflix, Hotstar).
@ -308,7 +310,7 @@ Tested so far on Amazon, AppleTVPlus, Max.
5. Go to `Options` -> `Connection` -> `Proxy Gateway`. Enable it. Select `Proxy Type` as `HTTP`. 5. Go to `Options` -> `Connection` -> `Proxy Gateway`. Enable it. Select `Proxy Type` as `HTTP`.
Copy the `IP` field (will look something like `192.168.0.141:9766`) Copy the `IP` field (will look something like `192.168.0.141:9766`).
Pass above copied to Vinetrimmer with the proxy flag like below. Pass above copied to Vinetrimmer with the proxy flag like below.
@ -354,8 +356,8 @@ Tested so far on Amazon, AppleTVPlus, Max.
## Broken / To-Do (Descending order of priority) ## Broken / To-Do (Descending order of priority)
- [ ] First stable release - [ ] First stable release
- [ ] Shaka with progress bar repo - [ ] Shaka with progress bar repository
- [ ] Fix cdm type errors. - [ ] Fix CDM type errors.
- [ ] Insert command to start of log in vt - [ ] Insert command to start of log in vt
- [ ] Linux support - Debian/Ubuntu/Mint + Fix service config load for Linux. - [ ] Linux support - Debian/Ubuntu/Mint + Fix service config load for Linux.
- [ ] Single script that installs, and if already installed checks for and applies updates - [ ] Single script that installs, and if already installed checks for and applies updates
@ -371,7 +373,6 @@ Tested so far on Amazon, AppleTVPlus, Max.
- [ ] Modify aria2c to include a progress bar ? - [ ] Modify aria2c to include a progress bar ?
- [ ] Github Actions Python script that builds and publishes release for every commit to not readme.md - [ ] Github Actions Python script that builds and publishes release for every commit to not readme.md
- [ ] MAX - Fix HDR10/DV --list - [ ] MAX - Fix HDR10/DV --list
- [ ] ATVP service is currently broken in dev branch
- [ ] Fix original language (Was removed as workaround for a bug) - [ ] Fix original language (Was removed as workaround for a bug)
- [ ] Fix `-sl all` and `-al all` - [ ] Fix `-sl all` and `-al all`
- [ ] Make a windscribe.py for proxies modelled after nordvpn.py. Refer to the chrome extension for the code. - [ ] Make a windscribe.py for proxies modelled after nordvpn.py. Refer to the chrome extension for the code.
@ -379,7 +380,7 @@ Tested so far on Amazon, AppleTVPlus, Max.
- [ ] Netflix service is currently broken (will probably be fixed Soon™) - [ ] Netflix service is currently broken (will probably be fixed Soon™)
- [ ] Integrate [subby](https://github.com/vevv/subby) - [ ] Integrate [subby](https://github.com/vevv/subby)
- [ ] Licensing before download (?) - [ ] Licensing before download (?)
- [ ] Add MoviesAnywhere service. - [ ] Test and fix MoviesAnywhere, ParamountPlus, AppleTVPlus, Hulu services.
- [ ] Guide for writing a service + debugging - [ ] Guide for writing a service + debugging
- [ ] Implement a scan/hammer/cache keys for each service - pass string of zeros as title id. Then copy and rework dl.py to iterate over returned list of titles from scan function - [ ] Implement a scan/hammer/cache keys for each service - pass string of zeros as title id. Then copy and rework dl.py to iterate over returned list of titles from scan function
@ -407,7 +408,7 @@ My discord is `@crapola`
[@rlaphoenix](https://github.com/rlaphoenix) for [pywidevine](https://github.com/devine-dl/pywidevine) [@rlaphoenix](https://github.com/rlaphoenix) for [pywidevine](https://github.com/devine-dl/pywidevine)
[@rlaphoenix](https://github.com/rlaphoenix) again as he was the original developer behind the `VineTrimmer` (later version renamed to `devine`) base `Widevine` version. [@rlaphoenix](https://github.com/rlaphoenix) again as he was the original developer behind the `VineTrimmer` base (later renamed to `devine`) `Widevine` version.
[@DevLARLEY](https://github.com/DevLARLEY) for [pyplayready](https://git.gay/ready-dl/pyplayready) [@DevLARLEY](https://github.com/DevLARLEY) for [pyplayready](https://git.gay/ready-dl/pyplayready)