ThatNotEasy / Widevine-KSKEY

This script is a tool designed to obtain Widevine keys from Media Presentation Description (MPD) URLs. It leverages the Widevine DRM (Digital Rights Management) system to retrieve the necessary keys for protected content playback.
68 stars 27 forks source link

WKSKEY-2.0

WKSKEY-2.0 is a tool designed to obtain Widevine keys from Media Presentation Description (MPD) URLs. It uses a modular approach to handle various streaming services, allowing users to easily customize and expand its functionality according to their needs.

Table of Contents

  1. Introduction
  2. Features
  3. Installation
  4. Usage
  5. Directory Structure
  6. Adding New Services
  7. Contribution
  8. License

Introduction

WKSKEY-2.0 is designed to streamline the process of obtaining Widevine keys required for decrypting DRM-protected content from streaming services. It supports a modular architecture, making it easy to extend functionality to new services.

Features

Installation

To install WKSKEY-2.0, clone the repository and install the required dependencies:

git clone https://github.com/yourusername/WKSKEY-2.0.git
cd WKSKEY-2.0
pip install -r requirements.txt

Usage

To use WKSKEY-2.0, specify the Widevine license URL and other options through command-line arguments. Create a new directory named device and place the .wvd CDM file in that directory. Refer to KeyDive for more information.

Basic:

python main.py --license-url [URL_LICENSE] --mpd-url [URL_MPD] --service bitmovin

With Proxy (COUNTRY CODE):

python main.py --license-url [URL_LICENSE] --mpd-url [URL_MPD] --service bitmovin -pp US

With Proxy (ROTAETE PROXY):

python main.py --license-url [URL_LICENSE] --mpd-url [URL_MPD] --service bitmovin -pp rotate

With Proxy (SCRAPE PROXY):

python main.py --license-url [URL_LICENSE] --mpd-url [URL_MPD] --service bitmovin -pp scrape

Netflix, Skyshowtime & HBOGO

python main.py -m "<WATCH_URL>" -s "skyshowtime"
python main.py -c "<CONTENT_ID>" -s "netflix"
python main.py -c "<CONTENT_ID>" -s "hbogo"

Directory Structure

Adding New Services

To add a new service, create a module in the services folder with an implementation that handles specific DRM requests from that service. The module should provide methods such as get_headers(), get_params(), get_cookies(), and get_data(). After that, integrate the new module into license_retrieval.py by adding a condition for the service in the function get_license_keys.

Contribution

Contributions to WKSKEY-2.0 are greatly appreciated. If you have bug fixes, enhancements, or want to add support for new services, please make a pull request.

License

WKSKEY-2.0 is released under the MIT License.


Feel free to reach out if you have any questions or need further assistance!