Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Ingan121/Vineless

Repository files navigation

Vineless Icon Vineless

  • A browser extension to play DRM-protected content without a real CDM
  • Works by redirecting the content keys to the browser's ClearKey handler

Features

  • User-friendly / GUI-based
  • Supports Widevine and PlayReady-protected content
  • Manifest V3 compliant
  • Per-site configuration

Devices

  • This addon requires a Widevine/PlayReady Device file (*.wvd/*.prd) to work. Don't ask me where to get those.
  • For remote devices, you can find samples in the devices directory. Some of them might require modification to work with your specific use case.

Compatibility

  • Should be compatible with all modern browsers that support the standard EME, the ClearKey CDM, and the Manifest V3 extensions
  • Tested browsers
    • Chrome, Edge, Brave, Supermium, ungoogled-chromium, Firefox, LibreWolf, and Marble on Windows
    • Lemur Browser on Android
  • Incompatible browsers:
    • Tor Browser (does not support ClearKey)
    • Firefox for Android, and its forks, such as Kiwi Browser (does not support ClearKey)
    • Safari and other WebKit-based browsers (its ClearKey implementation is weird and non-standard I think)
    • Internet Explorer, obviously.
  • Works with any service that accepts challenges from Android devices on the same endpoint.
  • Services incompatible with mobile/TV devices:
    • Netflix
    • VdoCipher (if 2074 error occurs)
    • CBS
    • Fastevo
    • Rakuten TV (only applies to Widevine)
  • Some services may detect your browser and interfere with PlayReady playback. Try using a user-agent changer extension, or use a Chromium-based browser for PlayReady playback.
  • Firefox-based browsers may fail to play some PlayReady-protected video, with an internal error saying ChromiumCDMParent::RecvDecodeFailed with status decode error. This is a problem with the browser's ClearKey handler, and Vineless can do nothing about it. Please use a Chromium-based browser if this error occurs.
  • Incompatible extensions:
    • WidevineProxy2, PlayreadyProxy2, or anything similar
    • EME Call and Event Logger (extension, not the userscript)
  • For Vineless to work, these extensions must be fully disabled in the browser's extensions page

Installation

  • Chrome
    1. Download the ZIP file from the releases section
    2. Navigate to chrome://extensions/
    3. Enable Developer mode
    4. Drag-and-drop the downloaded file into the window
  • Firefox
    • Persistent installation
      1. Download the XPI file from the releases section
      2. Navigate to about:addons
      3. Click the settings icon and choose Install Add-on From File...
      4. Select the downloaded file
    • Temporary installation
      1. Download the ZIP file from the releases section
      2. Navigate to about:debugging#/runtime/this-firefox
      3. Click Load Temporary Add-on... and select the downloaded file

Setup

  • Open the extension and select the type of device you're using in the top Systems section
  • Click one of the Choose File buttons to select device files
  • You're all set!

Notes

  • The files are saved in the extension's chrome.storage.sync storage and will be synchronized across any browsers into which the user is signed in with their Google account.
  • The maximum number of devices is ~25 Local OR ~200 Remote CDMs
  • The maximum number of per-site profiles is ~200 profiles
  • The number of saved key logs is unlimited as long as your disk space allows

Usage

All the user has to do is to play a DRM protected video. With everything set up properly, videos will start to play even without a supported DRM system.

FAQ

What if I'm unable to play the video?

  • First, check if the service accepts your device and is working correctly.
    • For Widevine, use either WidevineProxy2 or openwv with the same WVD file.
    • For PlayReady, use PlayreadyProxy2 with the same PRD file.
    • For ClearKey, just fully disable Vineless and test the playback with the non-intercepted ClearKey handler.
    • Do note that WidevineProxy2 and PlayreadyProxy2 do not support playback, so just test if you can acquire the keys with them. Also, fully disable Vineless before testing those two.
  • If those aren't working as well, this automatically means that the license server is blocking your CDM and that you either need a CDM from a physical device, a ChromeCDM, or an L1 Android CDM. Don't ask where you can get these.
  • If those are working but Vineless isn't working, please report this on the issues page. Please include the DevTools console logs as well, and make sure the verbose/debug logs are enabled.

Build

  • Requirements: Node.js (with npm), Git (if cloning from GitHub)
git clone https://github.com/Ingan121/Vineless
cd Vineless
npm install
npm run build
# The build output will be in the `dist` directory

Disclaimer

  • This program is intended solely for educational purposes.
  • Do not use this program to decrypt or access any content for which you do not have the legal rights or explicit permission.
  • Unauthorized decryption or distribution of copyrighted materials is a violation of applicable laws and intellectual property rights.
  • This tool must not be used for any illegal activities, including but not limited to piracy, circumventing digital rights management (DRM), or unauthorized access to protected content.
  • The developers, contributors, and maintainers of this program are not responsible for any misuse or illegal activities performed using this software.
  • By using this program, you agree to comply with all applicable laws and regulations governing digital rights and copyright protections.

Credits