SkillAgentSearch skills...

Vineless

Play protected contents without a real CDM

Install / Use

/learn @Ingan121/Vineless
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<img src="https://raw.githubusercontent.com/Ingan121/Vineless/refs/heads/master/src/images/icon.png" width="48" alt="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

View on GitHub
GitHub Stars189
CategoryContent
Updated9h ago
Forks32

Languages

JavaScript

Security Score

100/100

Audited on Apr 5, 2026

No findings