React Dislike Medal Cheers Love Haha Wow Sad Angry PepeBored MonkaS PepHands FeelsBadMan Pepega Clown BOOBA PepePerfect iLOVEyou PepoPopcorn PeepoFinger Wankge Gimme Love Simp FeelsOk Cheer FeelsLove Ban Toxic DMCA LOL Clap Shit

Off Topic [GUIDE] Extract your own L3 Widevine keys with Android Studio

  • Going forward please follow these rules when posting:

    -The content MUST be from TikTok, do not post slips from other platforms.

    -You MUST include profile names / link to the profile, or make every attempt to include it.

    -Include timestamps if you post a long video or a full live video.

    -Make sure ALL girls posted are 18+

Welcome to the Social Media Girls Forum!
Feel free to sign up and join the discussion on all your favourite Social Media Girls. YouTube and Twitch oops moments, Onlyfans leaks, Celebrity sex tapes and More! It's free and takes 10 seconds!
Sign up
Hello folks,

In these trying times, CDRM is being blocked by Onlyfans and CDRM2 / KEYDB is down.

This thread will revisite the famous , but updated for 2025.

This will be written from the perspective of a Linux user, but you can translate it easily for Windows.

Prerequisites

This assumes you have a PC with a x86_64 processor (AMD or Intel), either with Linux or Windows. It is possible to do it under ARM64 but I don't have such machine available.

Step 1: softwares needed

It is available for Windows and Linux and will allow us to create a virtual android.

On Linux, you can use Flatpak:

Code:
flatpak install com.google.AndroidStudio

or Snap

Code:
sudo snap install android-tools

It is in the AUR for Arch users:

Code:
sudo pacman -S android-studio
  • Install Android platform-tools
On linux, it's eitheir:

Code:
sudo dnf install android-tools
Code:
sudo apt install android-tools-adb
Code:
sudo pacman -S android-sdk-platform-tools

On Windows, grab it from and extract the zip to an easily accessible directory.
  • Install python3
If you're on Linux, it is most likely already installed, if not I assume you know how to install it. On Windows, you can get it from or from a package manager like Chocolatey.
  • Install frida
In a command line, type:
Code:
pip install frida frida-tools
Please note the version number of frida (currently it is 16.6.6).
On Windows, after installing Python, I think you can go to the Start menu, then Python, and launch a command line there to type that command.
  • Download the frida-server corrresponding to your Frida version at
    • Click either "Show all assets" or "Assets" under the release corresponding to the version of Frida you have (usually the last one if you just installed Frida)
    • Search for frida-server-XX.X.X-android-x86_64.xz and download it. Please make sur to use the Android, x86_64 version.
    • Extract the file with your favorite archive extractor. On Windows, you can use 7zip.
    • Rename the extracted file to frida-server
  • Download the utility to dump the keys
On linux, if you have git, you can git clone in a directory easiy accessible.
On Windows or Linux, you can also just download the archive from . In that case, just extract the zip afterward.
  • Install Protobuf 3.20.0
In a command line, type:
Code:
pip install --force-reinstall -v "protobuf==3.20.0"

We use this specific version to use the dump keys utility.
On Windows, after installing Python, I think you can go to the Start menu, then Python, and launch a command line there to type that command.

Step 2: creating a virtual Android device


Step 3: copy frida-server and start it

On Linux, type the following command in a terminal, in the directory where you have extracted frida-server:

Code:
adb root
adb push frida-server /data/local/tmp/
adb shell
chmod 755 /data/local/tmp/frida-server
/data/local/tmp/frida-server &

On Windows, open a command line (cmd) then go to the directory where you extracted adb.exe from the platform-tools, and do the same:

Code:
adb.exe root
adb.exe push /path/to/extracted/frida-server /data/local/tmp/
adb.exe shell
chmod 755 /data/local/tmp/frida-server
/data/local/tmp/frida-server &

Note, on both Windows and Linux, you can change directory with cd path/to/the/directory and go to the parent directory with cd ..

In any case, do not close that terminal window.

Step 4: start dump_keys.py

On Linux, open a new terminal, go to the directory where you extracted or cloned dumper, and launch
Code:
python dump_keys.py
On Windows, after installing Python, I think you can go to the Start menu, then Python, and launch a command line there. Then use the command cd path/to/the/dumper/directory to go to the correct directory, than launch
Code:
python dump_keys.py

The program is starting, when it is ready, you should see something like

Code:
2025-02-09 06:09:31 AM - root - 25 - INFO - Hooks completed

Step 5: load a webpage with DRM on the virtual device

Launch Chrome on the virtual phone (do not sign in). Then go to the following URL:

Click Allow when prompted to play protected content:



Then click Load and play the video:



Step 6: copy the keys

In the background, dump_keys should have been doing its work:



In the directory where you have cloned or extracted dumper, you should have the following directories: key_dumps/Android Emulator XXXX/private_keys/XXXX/

In this directory, you can have one or more folder with a number, and inside them you will find two files:
- client_id.bin
- private_key.pem

(do not share them)

Copy or backup them to a safe place.

You can now stop the virtual device, quit Android studio, stop dump_keys.py (Ctrl+C) and close adb too.

Step 7: Profit!

Assuming you want to use the keys with ofscraper, open the ofscraper config file called config.json, then go to the cdm_options object:
JSON:
    "cdm_options": {
        "private-key": "dumper/key_dumps/Android Emulator 5554/private_keys/4464/2516374905/private_key.pem",
        "client-id": "dumper/key_dumps/Android Emulator 5554/private_keys/4464/2516374905/client_id.bin",
        "key-mode-default": "manual",
        "keydb_api": ""
    },

key-mode-default should be manual, private-key should be the absolute path to private_key.pem and client-id should be the path to client_id.bin.

Once all of this is done, your ofscraper will be able to decode video decoded by L3 Widevine DRMs.
 
Last edited:
  • React
Reactions: cheekydelinq
0 Comments