Hello !
I want to decrypt a geo-restricted video from the M6 website, but being outside of France. :fr:
Here is the URL:
https://www.m6.fr/zone-interdite-p_845/maisons-de-vacances-les-nouveaux-coins-de-parad...rix-c_13132992
I already managed to download the encrypted video file with yt-dlp --allow-unplayable-formats
But I don't know how to get the kid:key...
For non-geo-restricted videos I was using WVGuesserExtension-NextGen plugin, or Widefrog program.
Could you help me?![]()
+ Reply to Thread
Results 1 to 14 of 14
-
-
Even though I already have the key (using WidevineProxy 2 and TuxlerVPN), I just want to know what this channel needs:
https://www.m6.fr/w9/direct
License: https://lic.drmtoday.com/license-proxy-widevine/cenc/
The license header: x-dt-auth-token
Origin, Referer, User-Agent...
What else is required? With just this, I can’t manage to get the key. -
Add "?specConform=true" to your licence url
[Attachment 88290 - Click to enlarge]
headers
[Attachment 88291 - Click to enlarge] -
Thank you. It worked by adding "?specConform=true" to the license. The only necessary header is "x-dt-auth-token"
I thought I could use the same license for all channels. I wanted to extract the key from these two:
https://origin-m6web.live.6cloud.fr/out/v1/6play/6play-pp/cmaf_cenc00/dash-short-hd.mpd
https://origin-m6web.live.6cloud.fr/out/v1/6play/6play-teva/cmaf_cenc00/dash-short-hd.mpd -
teva
ppCode:62443504892b3ef290e16e02be77a0b7:acd7867d298a5a14d371550935117d35 590db0e7543336ef9fa69a27d00123a9:6cd84df4f7a8497291896ed3f3514ce3 3246c307f7a23375bb1da07ec7833de2:c53ce5a8f55656e1d5c1483a9399abd1 dc804fbc64b53c5da8b80a9f482f4c5e:1b2aeb169d3bbf6c642d22acb436efa0 401f64e1e66b32ba864517cdb30ad0d9:278062586a14e639a1850111fb20cfa6 fd3dd527f0283972806b97a9a9c2df0f:9ff6dbd265103aaed45856e794d50170
Code:46a6063064f93bb7a97eafebc219642e:e97b681d73c134a26902e1f592276fcf b2313f92299a345991eaa36a0aef908b:b0df1cb0d8426cbb760168b071f0eb41 71b3fc6c1dec33ed893d31e21c5165ac:8c4208c49c52f8e5609b27c2ab612662 3148fff60f6536fda3793b814948d75f:886e690a3dcf7b6250ecc82c3c98294f e1de88e02a703ba797e786e9b3348b02:3d9987fe9b01106bc492550d484dc0ef f81fc4a14c2b3bd5856c3bfb797f574d:5efbaeed691adb03fd78648f2004b4d8
-
Hello, I have the same problem with 6ter: " Désolé, cette vidéo n’est pas accessible dans votre pays. "
https://www.m6.fr/6ter/direct
https://origin-m6web.live.6cloud.fr/out/v1/6play/6play-6ter/cmaf_cenc00/dash-short-hd.mpd
e555ac09f7da360c93552a5421768324: missing key
Can anyone help me? -
To get the keys on M6, here's a simplified version:
Code:import os import requests import pyfiglet from base64 import b64encode from pywidevine.L3.decrypt.wvdecryptcustom import WvDecrypt from pywidevine.L3.cdm import deviceconfig # ===================== CONSTANTES ===================== # # Couleurs terminal RED = "\x1b[38;5;160m" GREEN = "\x1b[38;5;46m" CYAN = "\x1b[38;5;14m" YELLOW = "\x1b[38;5;226m" END = "\x1b[0m" # ===================== AFFICHAGE ===================== # def print_title(): title = pyfiglet.figlet_format("Widevine Decryptor Keys", font="slant", width=150) print(f"{CYAN}{title}{END}") # ===================== VALIDATION ===================== # def validate_pssh(pssh: str) -> bool: if len(pssh) >= 150: print(f"{RED}❌ PSSH invalide{END}") return False return True # ===================== WIDEVINE ===================== # def get_widevine_keys(pssh: str, headers: str, LICENCE_URL: str): wvdecrypt = WvDecrypt(init_data_b64=pssh, device=deviceconfig.device_android_generic) try: response = requests.post(LICENCE_URL, data=wvdecrypt.get_challenge(), headers=headers, timeout=10) response.raise_for_status() except requests.RequestException as e: print(f"{RED}Erreur licence Widevine : {e}{END}") return [] license_b64 = b64encode(response.content) wvdecrypt.update_license(license_b64) success, keys = wvdecrypt.start_process() return keys if success else [] # ===================== MAIN ===================== # def main(): print_title() pssh = input(f"{RED}PSSH:{END} {YELLOW}") if not validate_pssh(pssh): print(f"{RED}PSSH invalide.{END}") return token = input(f"{RED}dt-auth-token:{END} {YELLOW}") if not token: print(f"{RED}Le token ne peut pas être vide.{END}") return headers = {"x-dt-auth-token": token} LICENCE_URL = "https://lic.drmtoday.com/license-proxy-widevine/cenc/?specConform=true" keys = get_widevine_keys(pssh, headers, LICENCE_URL) if not keys: print(f"{RED}❌ Aucune clé retrouvée.{END}") return for key in keys: print(f"{GREEN}--KEY:{END} {RED}{key}{END}") input("\nAppuyez sur Entrée pour quitter...") # ===================== EXEC ===================== # if __name__ == "__main__": main() -
Hello, i have the same problem with ab channels:
action
https://live-replay.actiontv.fr/
https://mdw-cji.akamaized.net/action/dash/manifest.mpd
16417fe5df1c45b096622e1149a4a90f: missing key
rtl9
https://live-replay.rtl9.com/
https://mdw-cji.akamaized.net/rtl9/dash/manifest.mpd
35e94b1865bc4107ae5ced02bb2f5a22: missing key
any chance ?
Similar Threads
-
Is it possible to get they KEY using the KID?
By pesfacemaker in forum Video Streaming DownloadingReplies: 4Last Post: 3rd Jul 2025, 07:30 -
Please Help me for Key and Kid
By dhudz in forum Video Streaming DownloadingReplies: 3Last Post: 16th May 2024, 08:45 -
Help to recieve KEY from KID
By release88 in forum Video Streaming DownloadingReplies: 1Last Post: 20th Mar 2024, 18:50 -
is a KID and KEY the same thing?
By momoknows in forum Newbie / General discussionsReplies: 1Last Post: 21st Oct 2023, 09:23 -
Need help for getting KID:KEY value pair
By jonax77 in forum Video Streaming DownloadingReplies: 7Last Post: 5th Feb 2023, 08:04


Quote
