1. Install python 3.12.xx, 3.11.xx, 3.10.xx, 3.9.xx or 3.8.
xx, be sure to add python to PATH while
installing it
2. Install Microsoft Visual C++ Redistributable
https://aka.ms/vs/17/release/vc_redist.x64.exe
3. Run install.bat
4. For services:
Netflix (NF), Crunchyroll (CR), Stan, ParamountPlus (PMTP), iTunes, DisneyPlus (DSNP), StarPlus,
Crave
-> go to the folder \vinetrimmer and add your email and password of those services in
vinetrimmer\vinetrimmer.yml (open the file with Notepad++ or VSCode).
For other services (not listed up):
-> go to \vinetrimmer\cookies\<servicefullname – example: Netflix>\default.txt (name of cookies
file depends on choosen profile name in vinetrimmer.yml, default is default.txt)
5. Getting cookies
For Firefox, use this addon:
https://addons.mozilla.org/en-US/firefox/addon/cookies-txt-one-click/
For Blink based browser (I recommend Edge or Chromium)
https://chromewebstore.google.com/detail/get-cookiestxt-clean/ahmnmhfbokciafffnknlekllgcnafnie
Example:
go to netflix.com and download the cookies, rename the file to default.txt (or your profile name) and
put it in.
vinetrimmer\Cookies\Netflix
In other word, its always like:
\vinetrimmer\cookies\<servicefullname – example: Netflix>\<profile_name – example: default>.txt
6. For Netflix you will need to add the ESN in Netflix.yml, which is in the folder
vinetrimmer\config\services
Generating of Netflix´s ESN is now happening automatically for Chrome CDM and L3 and it is being
refreshed after 6 hours. For L1 or manual config, use the examples from the file Netflix.yml from the
folder example_configs to understand how to add the correct ESN.
Service NETFLIX (NF):
Netflix has 3 encoding profiles, which they´ve different quality, you can let VT select the BEST in terms
of video bitrate. In default, all 3 are searched, but you can specify them… (more info below)
Example:
poetry run vt dl -q 1080 -al en -sl en -w S01E01 Netflix -p MPL+HPL+QC 80189685
To specify which profile do you want:
HIGH profile use -p HPL, MAIN profile use -p MPL, PRK-QC, use -p QC
Example: (let you download the best stream avaible in high profile)
poetry run vt dl -al en -sl en -w S01E1 Netflix -p HPL 80189685
poetry run vt dl -al en -sl en -w S01E1 Netflix -p MPL+HPL 80189685
CDM KEY REQUEST COMPATIBILITY:
(you can select which quality stream you want by using -q <p value> command. Example: -q 1080p)
L3:
The script does not support decrypting the videos with MAIN or HIGH profiles in 1080p or
720p (only MAIN profile in 480p and HIGH profile in 540p will get decrypted) using cdm l3,
Chrome CDM:
All profiles upto 1080p
L1:
,,Normal“ L1 – upto 1080p; Whitelisted L1 – upto 4K
If you want to downlod the video for a specific seasons or all the seasons use:
poetry run vt dl -al en -sl en -w S01 Netflix -p HPL 80189685
poetry run vt dl -al en -sl en -w S01,S03 Netflix -p HPL 80189685
poetry run vt dl -al en -sl en -w S01-S05 Netflix -p HPL 80189685
If you want to downlod the video for a specific episodes or specific episodes from specific seasons
use:
poetry run vt dl -al en -sl en -w S01E01 Netflix -p HPL 80189685
poetry run vt dl -al en -sl en -w S01E01 Netflix -p HPL 80189685
To download the video of a movie use:
poetry run vt dl -al en -sl en Netflix -p HPL 81252357
To download multiple audio languages use:
(-al <language_2letters>), for multiple (-al <firstlanguage>,<nextlanguage>,…)
poetry run vt dl -al en,es,fr -sl en Netflix -p HPL 81252357
To download all the audio languages use:
(-al all) command
poetry run vt dl -al all -sl en Netflix -p HPL 81252357
For downloading subtitles, rules are the same, just use „-sl“ command instead.
If you did not choose a language for the audio the script will download the original audio language,
and if you did not choose a language for the subtitles the script will download all the available
subtitles.
Example of selecting audio track (can be video track too -vb command) by bitrate:
poetry run vt dl -A -ab 96 -al en -sl en -w S01E1 Netflix 80189685
Service Amazon (AMZN):
To download the video from amazon.com, or primevideo.com you will need to get the asin for the
videos. All Amazon commands are same as for Prime Video, always use Amazon commands for both!
Use this userscript (tampermonkey browser extension) for getting ASIN:
https://greasyfork.org/en/scripts/381997-amazon-video-asin-display
For downloading the video of an episode use same commands as for Netlix.
CDM key requests are the same as for Netflix.
For GETTING 4K TRACKS, you have to put -q 2160 command and get cookies from „on the TV OTP
AMZN“ site!
For PRIMEVIDEO (PV): https://www.primevideo.com/region/eu/ontv/code
For AMZN US: https://amazon.com/mytv
For AMZN JP (Japan): https://amazon.co.jp/mytv
Similliar for other countries … also don´t forget to delete cache and refresh cookies on regular base!
Service Peacock (PCOK):
For downloading the series from PCOK, use:
poetry run vt dl -q 1080 -al en -w S01E1 Peacock /tv/the-office/4902514835143843112
For downloading the video of a movie from Peacock use:
poetry run vt dl Peacock /movies/action-and-adventure/4got10/3ae2c66c-2b1a-3a34-a84f-
930d60612b95
Service Disney Plus (DSNP):
-s browser command is used to request keys and streams with chrome headers, not possible to get
1080p or 4K tracks.
poetry run vt dl -q 720 -w S01E01 DisneyPlus -s browser 57TL7zLNu2wf
for getting 1080p/4K tracks:
TV series:
poetry run vt dl --keys -w s01e01 DisneyPlus 57TL7zLNu2wf
Movies:
poetry run vt dl --keys DisneyPlus -m 7OLRMMgd1vkx
IMAX / IMAX Enhanced
poetry run vt dl -q 1080 --selected -al orig,tr -sl en,tr DisneyPlus -m 1tmc3nPw04S2 -imax
poetry run vt dl -q 1080 --selected -al orig,tr -sl en,tr DisneyPlus -m 1tmc3nPw04S2 --imax-
enhanced
CDM key request
L3, Chrome CDM: upto 720p
L1 (whitelisted only): 1080p, 4K
Service HULU (HULU):
Movies:
poetry run vt dl Hulu -m 4800d468-b587-44de-bad8-2646588bfa6b
TV series:
poetry run vt dl -w S01E01 Hulu 4800d468-b587-44de-bad8-2646588bfa6b
CDM key request
L3, Chrome CDM: upto 4K SDR
L1: 4K HDR
Service Google Play (GPLAY):
Movies:
poetry run vt dl -q 480 googleplay -m aLSWgeqkdXU.P
TV series:
poetry run vt dl -w S01E01 -q 480 googleplay aLSWgeqkdXU.P -e
If you got an error message while trying to download from google play about SAPISID remove from
the cookies file the extra lines with the word SAPISID, just keep the first line with the word SAPISID
Service Paramount Plus:
Movies:
poetry run vt dl ParamountPlus -m
https://www.paramountplus.com/movies/video/7juDj4xQPZG1xtvD0pDPRQWgv1Vj6xox/
TV series:
poetry run vt dl -w S01E1 ParamountPlus https://www.paramountplus.com/shows/1883/
service requires using cookies only, no need to put logins in vinterimmer.yml
Service Crunchyroll:
CDM key request:
DRM-free streams: yt-dlp
DRM streams: L3 (upto 4K)
Note : CR is releasing FHD Titles till now,which is at L3.Not 4K titles released till now in CR.
Eventhough CR is not going to change security level even 4K releases.
Options in the PY file.
1. “-m” for downloading movies.
2. “—drm-free” for downloading non-drm titles in crunchyroll.
To download a movie
poetry run vt dl CR -m “title_id”
To download a non drm stream
poetry run vt dl CR —drm-free “title_id”
To download a drm title
poetry run vt -w S01E01 dl CR “title_id”
NOW WHERE DO WE GET THE TITLE_ID ?
----------→
POSSIBLE LIST OF ERRORS :
1. HTTP 401 : CLIENT ERROR —> Cookies Issue/Endpoint changes
Service VIKI:
CDM key request:
All streams: L3
Options In The PY File:
“-m” , Title is a Movie.
To download Movie In FHD:
poetry run vt dl -q 1080 Viki -m “movie_id“
To download Movie In HD:
poetry run vt dl -q 720 Viki “movie_id”`
To download In FHD:
poetry run vt dl Viki “title_id”`
To download In HD:
poetry run vt dl -q 720 Viki “title_id”`
NOTE : ALTHOUGH VIKI HAS THE ABILITY TO DOWNLOAD IN 4K,ITS RELEASING ALL EPISODES/MOVIES
IN 1080p.
AND AUDIO CODEC IS ONLY UPTO AAC 2.0 HIGHEST QUALITY TILL NOW IN VIKI.
NOW WHERE DO WE GET MOVIE/TITLE ID ?
---------→
Possible list of errors:
HTTP 403 – COOKIES ERROR
SO FAR NO ISSUES ENCOUNTERED.
Service Disney HotStar:
CDM key request:
All streams: L3
Options in the PY file:
1. “-m” for downloading movies
2. “-q” To choose the resolution (SD,HD,FHD,4K) default = FHD
3. “-c” To Choose Audio Codec (2.0,5.1,atmos) default = 5.1
To download In 4K and in atmos:
poetry run vt dl HS -q 4k -c atmos -m “movie id” (For Movies) `poetry run vt dl -w S01E01 HS -
q 4k -c atmos “series id” (for series)
To download In FHD and in 5.1:
poetry run vt dl HS -q fhd -c 5.1 -m “movie id” (For Movies) `poetry run vt dl -w S01E01 HS -q
fhd -c 5.1 “series id” (for series)
To download in HD/SD and in 5.1:
poetry run vt dl HS -q hd/sd -c 5.1 -m “movie id” (For Movies) `poetry run vt dl -w S01E01 HS -
q hd/sd -c 5.1 “series id” (for series)
NOW WHERE DO WE GET THE MOVIE/SERIES ID?
----------→
POSSIBLE LIST OF ERRORS :
1. HTTP 400 : BAD REQUEST – DUE TO VPN/PROXY/RDP IP BLOCKING ISSUE
2. HTTP 402 – PAYMENT ISSUE
3. HTTP 403 – COOKIES ISSUE
4. HTTP 404 : NOT FOUND – VPN/PROXY/RDP IP ISSUE
5. HTTP 475 : UNKNOWN – VPN /PROXY/RDP IP ISSUE
Before running the script, make sure To add the HDNTL CODE in Hotstar.py in line 299 (in my case)!
HDNTL code can be found from the exported cookies, for getting cookies, reffer to first site of this
documentation. But using „get cookies.txt clear“ from Google´s extensions store is recommended.
Or you can use the extension below (specially tested for HS – compatibility guaranteed):
https://chrome.google.com/webstore/detail/open-
cookiestxt/gdocmgbfkjnnpapoeobnolbbkoibbcif
NOTE: SELECT “VIEW AS TABLE” CHECK BOX
Apple TV Plus & iTunes
!IMPORTANT!
For AppleTVPlus you need to use the correct value of 'sf' in the file
vinetrimmer\config\services\appletvplus.yml
for the country of your account, you can get it from this file
https://gist.githubusercontent.com/BrychanOdlum/2208578ba151d1d7c4edeeda15b4e9b1/raw/8f01
e4a4cb02cf97a48aba4665286b0e8de14b8e/storefrontmappings.json
in case the link above wouldn´t work, please refer in VT folder to directory
\example_configs\storefrontmappings.json
and for the iTunes script add the correct value of 'sf' in vinetrimmer\services\itunes.py
7. Additional VT usage
More options of VT:
poetry run vt dl -h
For the extra options in the scripts use:
poetry run vt dl <servicename> -h
Example: poetry run vt dl Netflix -h
the extra options will be added after the service name.
Vinetrimmer.yml config:
To use your cdm l3 in the folder vinetrimmer\devices create a new folder for the cdm l3 and copy the
files device_private_key and device_client_id_blob to it like vinetrimmer\devices\generic_4464_l3
and create a new text file and rename it to wv.json and in the file wv.json add something like
"name": "generic_4464_l3",
"description": "android generic 4464 l3",
"security_level": 3,
"session_id_type": "android",
"private_key_available": "True",
"vmp": "False",
"send_key_control_nonce": "True"
change the name and the description to match the cdm l3 you have.
For cdm l1 use
"security_level": 1,
open the file vinetrimmer\vinetrimmer.yml with Notepad++ and add your cdm l3 name like this
Service Crave:
Command example:
poetry run vt dl -v H265 --list -al en -sl en Crave https://www.crave.ca/en/movies/fantastic-
beasts-and-where-to-find-them
IP:
Canada
CDM key request:
L3 = All streams (upto 4K support for movies by VT)
Warning!:
For downloading 4K, don´t forget to manually put the command -v H265
All other commands are same as for other services.
Service JioCinema:
Command example:
poetry run vt dl jio -m 3494266
IP:
India
CDM key request:
L3 = All streams (upto 4K support by VT)
For movies, add -m like in the example
Service Movies Anywhere:
command example: poetry run vt dl -q 720 --keys ma
https://moviesanywhere.com/movie/harry-potter-and-the-sorcerers-stone
Aliases (for VT to determined the service by command): „MA“ XOR „moviesanywhere“
IP:
Canada
CDM key request:
Authorization: Cookies
Security: SD-HD@L3, FHD SDR@L1 (any active device), FHD-UHD HDR-DV@L1
(whitelisted devices)
Specifying CDM for profile:
cdm:
default: 'generic_4464_l3' #it´s always like: <profile_name>: 'cdm_name'
Specifying CDM for different services:
cdm:
default: 'generic_8159_l3' #default CDM
Netflix: 'chrome_api' #CDM used for selected platform only
HBOMax: 'asus_asus_a001_2d470448_6623_l1' #CDM used for selected platform only
Dots in file naming:
In vinetrimmer.yml you can config naming, but in default, dots between file names are replaced by
space in default. To re-enable them, you have to delete titles.py and rename WITH_DOTS_titles.py
to titles.py
or
add # on line 157 in titles.py
so, it will look like:
(line 157) #filename = filename.replace(".", " ")
To enable dots in file name.
Tracks print functions
In VT, the appearance of tracks can be modified by disabling some print functions in dl.py file.
For an example, if you want to
disable category „All
tracks“ listing, you just have to
disable printing function of this
section. Find a file called dl.py
The path is:
\vinetrimmer\commands\dl.py
All tracks screenshot
Printing line - All tracks
In dl.py, scroll down until you find a string (text in „“) that´s named by function you want to hide.
For an example: in the code screenshot, in the 1.2 relase of VT, there´s line 322 and line 323, but just
commenting it (adding # before each line) makes them hidden and you´ll get no „all tracks“ like:
Printing lines without - All tracks
KID lookup tool
By entering KID and service name, you can get cached key from the API (SFAB | cache)
PAY ATTENTION!!: You have to ENTER YOUR API KEY IN THE SCRIPT THAT´S LOCATED IN
\scripts\API_cache_lookup.py
HERE:
Its temporary solution, until I will make it to read api key from some .txt „config“ file…