Vinetrimmer-DRM-TOOL - Widevine DRM downloader and decrypter for AMZN|NF|STAN And all

Overview

🍃 ✂️ Vinetrimmer
Widevine DRM downloader and decrypter.

Thanks to wvleaks for this leak

NEED CDM ?

  • 🎉 Need L1 CDM FOR AMZN ,NF,DSNP mail us on [email protected],CDM is not free paid only

Open in Visual Studio Code GPL-3.0 License Python version DeepSource

DRM Sites Supported

  • Amazon
  • Netflix
  • Apple Tv Plus
  • DisneyPlus
  • Bbciplayer
  • Braviacore
  • Crave
  • CTV
  • Disney Now
  • Filmio
  • Flixole
  • Google Play
  • HBO MAX
  • Hotstar
  • HULU
  • Itunes
  • Paramount Plus
  • Peacock
  • Rakutentv
  • Rtlmost
  • Showtime
  • Spectrum
  • Stan
  • TVNow
  • Video Land
  • Vudu

To-do

There's various TODO's all around the project's code as comments as well as in the doc-strings of the root functions found in vinetrimmer.py, feel free to check them if you want something to do.

Installation

Requirements

Install the following dependencies in the listed order. Ensure shaka-packager is added to the environment path.

  1. python, 3.7.0 or newer
  2. pip, v19.0 or newer - Python package management
  3. poetry, latest recommended - Python dependency management
  4. shaka-packager, latest recommended - Battle-tested encryption suite created by Google

The following are optional, but will most likely be used:

  • MKVToolNix, v54 or newer for Muxing, Demuxing, and Remuxing. Required if not using --no-mux
  • FFMPEG, latest recommended for Repacking, Remuxing, and Identifying streams. Required if stream requires a repack, e.g. Disney+
  • CCExtractor, latest recommended for EIA (CEA) Closed Captions extraction (might only be doing CEA 608 and assumes Field 1 Channel 1). Required if a c608 box exists (e.g. iTunes) or ffprobe can find a CEA 608 track embedded in the video bitstream (e.g. CTV).
  • NodeJS, v12 or newer for Netflix web-data JS Object to JSON conversion. Required if using Netflix

Ensure any dependency that has no installer (e.g. portable .exe files) are stored somewhere and added to environment PATH.

Steps

  1. poetry config virtualenvs.in-project true (optional but recommended)
  2. poetry install
  3. You now have a .venv folder in your project root directory. Python and dependencies are installed here.
  4. You now also have vt shim executable installed in the virtual-env. Example usage method: poetry shell then vt -h or poetry run vt -h
  5. For more ways to use vt or the virtual-env, follow Poetry Docs: Using your virtual environment. You could even add the .venv\Scripts to your environment path to have vt available on any terminal.

Important: Do not run Pip as Admin. pip should not even be used with vinetrimmer, ever, unless you wish to directly install to the system Python installation with pip install ..

Usage

The first step to configuring and using vinetrimmer is setting up the data available for use.

See the Data-directory structure for the majority of data preparation. Then look at the vinetrimmer.toml file to configure the application settings and profile credentials.

Vinetrimmer currently has three commands: dl, cfg and prv. dl allows you to download titles. cfg allows you to configure your vinetrimmer setup. prv allows you to provision Widevine keyboxes.

For more usage information, see vt -h or e.g. vt dl -h for help on each command.

Config directory

The config directory is where the main configuration for vinetrimmer and each service is stored. It is usually at %LOCALAPPDATA%\vinetrimmer on Windows, ~/Library/Preferences/vinetrimmer on macOS, and ~/.config/vinetrimmer on Linux. You can do vt dl -h to see the exact path for your current platform. Example config files are available in the example_configs directory in the repo.

Structure:

  • vinetrimmer.toml
  • Services/ ¬
    • service_name.toml (e.g. DisneyPlus.toml)

Data directory

The data directory is where various data for use is stored, e.g. Profiles, Cookies, and .wvd WideVineDevices. It is usually at %LOCALAPPDATA%\vinetrimmer on Windows, ~/Library/Application Support/vinetrimmer on macOS, and ~/.local/share/vinetrimmer on Linux. You can do vt dl -h to see the exact path for your current platform.

Structure:

Profiles

A Profile is simply a filename moniker that will be used to identify a Cookie or Credential file per service.

Profile files are unique per service folder, i.e. two services can use the same john.txt cookie and/or credential file.

You can specify which profile (or profiles) to use on each service in the main configuration file under [profiles]. When defining multiple profiles per service like the Amazon example, you choose which one to use with -z or let it ask you when running.

Widevine Device (.wvd) files

This is the device key data in Struct format that is needed for the CDM (Content Decryption Module).

A good idea would be to name the file with respect to the device it's from as well as state its security level. For example, nexus_6_l3.wvd. The files must be using .wvd (_W_ide_V_ine_D_evice) as the file extension.

To make a WVD file is super simple! Use the available helper scripts at /scripts/WVD/, or take a look by manually creating one by using the LocalDevice class object below.

from pathlib import Path
from vinetrimmer.utils.Widevine.device import LocalDevice

device = LocalDevice(
    type=LocalDevice.Types.CHROME,
    security_level=3,
    flags={"send_key_control_none": False},  # example flags only, check struct in LocalDevice() to see flags
    private_key=b"...",
    client_id=b"...",
    vmp=b"..."  # or None if you don't have (or need) one
)
# print(device)  # print it out (as python Device object)
# print(device.dumps())  # print it out as bytes
device.dump(Path("C:/Users/john/Documents/chromecdm903_l3.wvd"))  # dump it to a file

Cookies

Cookies must be in the standard Netscape cookies file format.

Recommended extensions:

Any other extension that exports to the standard Netscape format should theoretically work.

Credentials

Credentials' sole purpose is to provide the service with a Username (or Email) and Password that would be used to log in and obtain required cookies and/or tokens automatically. Ideally, Services should only ever need either a Credential, or a Cookies file (not both). However, this isn't always the case.

Credentials are stored in the vinetrimmer.toml file of the config directory. See the [credentials] section in vinetrimmer.example.toml for information on the format and usage.

Tip: The key/profile name used in the [credentials] section must match the filename used for cookies if you wish to provide both Credentials and Cookies to a service.

Owner
Vlad Tănăsescu
ISTQB-BCS Certified Expert Software Quality Professional
Vlad Tănăsescu
Youtube_dl_helper - A hacky python script meant to automate the process of downloading mp3 files from YouTube using youtube-dl library

youtube_dl_helper A helper program meant to automate the process of downloading mp3 files from YouTube using youtube-dl library Dependencies In order

Guilherme Bittencourt de Borba 1 Jan 04, 2022
The PornHub Downloader is a powerfull script used to download and manage both videos and pictures

The PornHub Downloader is a powerfull script used to download and manage both videos and pictures

16 Aug 31, 2022
Download YouTube videos that are available in the given playlist

Youtube-Playlist-Downloader Download YouTube videos that are in a playlist Project assets: music downloaded music folder. (will be generated) music.db

Sultan Aljaberi 1 Dec 22, 2021
Download all your URI Online Judge source codes and upload to GitHub with simple steps.

URI-Code-Downloader Download all your URI Online Judge source codes and upload to GitHub with simple steps. Prerequisites Python 3.x Installing Downlo

Luan Simões 9 Mar 23, 2022
A Udemy downloader that can download DRM protected videos and non-DRM protected videos.

Udemy Downloader with DRM support NOTE This program is WIP, the code is provided as-is and i am not held resposible for any legal repercussions result

Puyodead1 468 Dec 29, 2022
A Python script to download PDB files associated with a Portable Executable (PE)

A Python script to download PDB files associated with a Portable Executable (PE)

Podalirius 33 Jan 03, 2023
一个在新番更新后第一时间在dmhy等BT下载站自动下载的小工具.

Anime Track 一个在新番更新后第一时间自动下载的小工具. 可以根据自定义的关键字在dmhy等BT下载站在搜索结果更新时将磁力链发送至aria2实现自动下载. 基本功能包含: 将BT下载站的某个关键字的搜索结果的所有磁力链添加至ARIA2 自动更新aria2 trackers 将已添加的磁力

Sunky 24 Oct 12, 2022
Archivist - Easily archive 📦 Download folder to Google Drive ☁️

Archivist Script for archiving Download folder by uploading unmodified files to a Google Drive folder. Modified files will remain in the Download fold

Timing Liu 3 Sep 30, 2022
A cross platform front-end GUI of the popular youtube-dl written in wxPython.

youtube-dlG A cross platform front-end GUI of the popular youtube-dl media downloader written in wxPython. Supported sites Screenshots Requirements Py

8.7k Dec 31, 2022
A simple contents download module using url for python

A simple contents download module using url for python

Fayas Noushad 16 Oct 20, 2022
Download YouTube videos that are available in the given playlist

Youtube-Playlist-Downloader Download YouTube videos that are available in the given playlist Project assets: music downloaded music folder. (will be g

Sultan Aljaberi 1 Dec 22, 2021
This simple Python script allows you to download songs on Telegram🌸❤️😁

SongsDownloaderTgBot 📺 YouTube Song Downloader Bot For Telegram 🔮 3X Fast Telethon Based Bot ⚜ Open Source Bot 👨🏻‍💻 Demo : 𝗔𝗻𝗻𝗶𝗲 - 𝗘𝗹𝗶𝘇?

Sehath Perera 23 Dec 03, 2022
Bulk Downloader for Reddit

saveddit is a bulk media downloader for reddit pip3 install saveddit Setting up authorization Register an application with Reddit Write down your clie

Pranav 136 Jan 03, 2023
Easy automated ebook downloader using openbooks as the backend

Easy automated ebook downloader using openbooks as the backend

27 Nov 06, 2022
Spotify Playlist Downloader With Python

Spotify Playlist Downloader This will let you download Spotify playlists for free without Premium. It gets all the songs from the API and downloads th

Yasho 16 Sep 28, 2022
An automatic beatmapset downloader via txt file, suitable for tourney mappools.

Pooler Pooler is a bulk osu! mapset downloader, perfect for use with osu! Tournament Mappools. Prerequisites Python 3.10 Requests (pip install request

Thomas 0 Feb 11, 2022
Youtube list to mp3 - Youtube list to mp3 downloader

Youtube list to mp3 downloader Tiny script to convert a list of youtube videos t

Papi Diagne 3 Feb 11, 2022
Download and save Bing wallpapers and set as background for GNOME desktop

Save Bing wallpapers and set as background for GNOME desktop This script downloads the Bing wallpaper and sets it in the background of your gnome desk

manikamran 2 Nov 06, 2021
Audio/Video downloader

youtubeDownloader Audio/Video downloader • The project downloads audio/video/both after link is entered • It also shows total size of the file, time l

Tulsi Thakur 1 Nov 16, 2021