good friends, I was trying to get the key of a free live channel from the Clarovideo.com platform, this is the mpd url: https://pelivechannelsdash-1.clarovideo.com/bpk-tv/TVPERU73HD/dash_fk/index.mpd
and the license is: https://widevine-claroandina-vod.clarovideo.net/licenser/getcertificate
download the mpd file and got a kid and two uuid then calculate pssh with that data and got these two pssh:
AAAAMnBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAABISEM8B+q 2eTaK7aIRE1SC6InI=then I put the headers in headers too, and try to decrypt the key using wks-keys and it doesn't work, it gives me this error:AAAAMnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABISEM8B+q 2eTaK7aIRE1SC6InI=
[Attachment 65720 - Click to enlarge]
if someone could help me i would appreciate it.
+ Reply to Thread
Results 1 to 30 of 35
-
-
-
https://www.clarovideo.com/mexico/watch/1040620
Code:--key c613411a3531e1cdc177d0ae803e9276:dfec4ab370eb040c8d1e54144786a523
Luckly very similar to NOWE and other platforms, and thanks to ElCap who helped me with NOWE, I managed to edit WKS.
The token for NOWE expires really fast like in 15 seconds or something, perhaps the same could be with this claro site.
Code:# -*- coding: utf-8 -*- # Module: KEYS-L3 # Created on: 11-10-2021 # Authors: -∞WKS∞- # Version: 1.1.0 import base64, requests, sys, xmltodict import headers_claro from pywidevine.L3.cdm import cdm, deviceconfig from base64 import b64encode from pywidevine.L3.decrypt.wvdecryptcustom import WvDecrypt pssh = input('\nPSSH: ') lic_url = input('License URL: ') token = input('Token: ') device_id = input('device_id: ') def WV_Function(pssh, lic_url, cert_b64=None): wvdecrypt = WvDecrypt(init_data_b64=pssh, cert_data_b64=cert_b64, device=deviceconfig.device_android_generic) challengeb64 = str(b64encode(wvdecrypt.get_challenge()),"utf-8") data = {"token":token,"device_id":device_id,"widevineBody":challengeb64} widevine_license = requests.post(url=lic_url, json=data, headers=headers_claro.headers) print(widevine_license.request.body) license_b64 = b64encode(widevine_license.content) wvdecrypt.update_license(license_b64) Correct, keyswvdecrypt = wvdecrypt.start_process() if Correct: return Correct, keyswvdecrypt correct, keys = WV_Function(pssh, lic_url) print() for key in keys: print('--key ' + key)
-
Last edited by Brift_Bv; 5th Jul 2022 at 14:24. Reason: wrong message
-
I managed to do it, but now it gives me this error:
[Attachment 65751 - Click to enlarge]
any solution? -
-
Could you upload the l3.py file? but when executing it throws many errors
I have the same problem but with https://www.clarovideo.com/ecuador/watch/749739 -
Hi @[ss]vegeta
I read about your code for downloading videos from e.g. NOWE, but I'm not sure if I got it right.
[Attachment 65755 - Click to enlarge]
What I modified were three parts, as you can see in the picture above. I marked them as ①② and ③
Did I modify it right? It would be so nice of you if you could help me with this. Many thanks. -
The code I posted is the actual l3.py...
Since you put headers inside, you can delete the line on red circle 1.
Red circle 2 can now be just headers=headers
There's no device id in NOWE. There's only token. And it's named drmtoken so in the same line for red circle 2 you should change "token" to "drmtoken", you should remove "device_id":device_id and you should change the name widevineBody to whatever it was named on NOWE (rawLicenseRequestBase64). -
-
some lines have errors, but I still don't know what to delete or put
contents L3
Code:# -*- coding: utf-8 -*- # Module: KEYS-L3 # Created on: 11-10-2021 # Authors: -∞WKS∞- # Version: 1.1.0 import base64, requests, sys, xmltodict import headers from pywidevine.L3.cdm import cdm, deviceconfig from base64 import b64encode from pywidevine.L3.decrypt.wvdecryptcustom import WvDecrypt import requests headers = { 'Accept': '*/*', 'Accept-Language': 'es-ES,es;q=0.9', 'Connection': 'keep-alive', 'Origin': 'https://www.clarovideo.com', 'Referer': 'https://www.clarovideo.com/', 'Sec-Fetch-Dest': 'empty', 'Sec-Fetch-Mode': 'cors', 'Sec-Fetch-Site': 'cross-site', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36', 'sec-ch-ua': '"Chromium";v="104", " Not A;Brand";v="99", "Google Chrome";v="104"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': '"Windows"', 'Content-Type': 'application/x-www-form-urlencoded', } params = { 'user_id': '66623590', } data = '{"token":"09d9b7ebb1f84f48f4e235c98793ea9e","device_id":"693e9af84d3dfcc71e640e005bdc5e2e","widevineBody":"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"}' response = requests.post('https://widevine-claroandina-vod.clarovideo.net/licenser/getlicense', params=params, headers=headers, data=data) pssh = input('\nPSSH: ') lic_url = input('License URL: ') token = input('Token: ') device_id = input('device_id: ') def WV_Function(pssh, lic_url, cert_b64=None): wvdecrypt = WvDecrypt(init_data_b64=pssh, cert_data_b64=cert_b64, device=deviceconfig.device_android_generic) challengeb64 = str(b64encode(wvdecrypt.get_challenge()),"utf-8") data = {"token":token,"device_id":device_id,"widevineBody":challengeb64} widevine_license = requests.post(url=lic_url, json=data, headers=headers_claro.headers) print(widevine_license.request.body) license_b64 = b64encode(widevine_license.content) wvdecrypt.update_license(license_b64) Correct, keyswvdecrypt = wvdecrypt.start_process() if Correct: return Correct, keyswvdecrypt correct, keys = WV_Function(pssh, lic_url) print() for key in keys: print('--key ' + key)
Code:PSSH: AAAAR3Bzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAACcIARIQ5+zd/vZ549r2DU1bl1JoqxoDZGxhIgYxNzY1NDkqAlNEMgA= License URL: https://widevine-claroandina-vod.clarovideo.net/licenser/getlicense?user_id=66623590 Token: 09d9b7ebb1f84f48f4e235c98793ea9e device_id: 693e9af84d3dfcc71e640e005bdc5e2e Traceback (most recent call last): File "c:\Users\USER\Downloads\WKS-KEYS\l3.py", line 55, in <module> correct, keys = WV_Function(pssh, lic_url) File "c:\Users\USER\Downloads\WKS-KEYS\l3.py", line 48, in WV_Function widevine_license = requests.post(url=lic_url, json=data, headers=headers_claro.headers) NameError: name 'headers_claro' is not defined PS C:\Users\USER\Downloads\WKS-KEYS>
-
-
since you have put the headers into the py file, change to:
Code:# -*- coding: utf-8 -*- # Module: KEYS-L3 # Created on: 11-10-2021 # Authors: -∞WKS∞- # Version: 1.1.0 import base64, requests, sys, xmltodict from pywidevine.L3.cdm import cdm, deviceconfig from base64 import b64encode from pywidevine.L3.decrypt.wvdecryptcustom import WvDecrypt headers = { 'Accept': '*/*', 'Accept-Language': 'es-ES,es;q=0.9', 'Connection': 'keep-alive', 'Origin': 'https://www.clarovideo.com', 'Referer': 'https://www.clarovideo.com/', 'Sec-Fetch-Dest': 'empty', 'Sec-Fetch-Mode': 'cors', 'Sec-Fetch-Site': 'cross-site', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36', 'sec-ch-ua': '"Chromium";v="104", " Not A;Brand";v="99", "Google Chrome";v="104"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': '"Windows"', 'Content-Type': 'application/x-www-form-urlencoded', } pssh = input('\nPSSH: ') lic_url = input('License URL: ') token = input('Token: ') device_id = input('device_id: ') def WV_Function(pssh, lic_url, cert_b64=None): wvdecrypt = WvDecrypt(init_data_b64=pssh, cert_data_b64=cert_b64, device=deviceconfig.device_android_generic) challengeb64 = str(b64encode(wvdecrypt.get_challenge()),"utf-8") data = {"token":token,"device_id":device_id,"widevineBody":challengeb64} widevine_license = requests.post(url=lic_url, json=data, headers=headers) license_b64 = b64encode(widevine_license.content) print(license_b64) wvdecrypt.update_license(license_b64) Correct, keyswvdecrypt = wvdecrypt.start_process() if Correct: return Correct, keyswvdecrypt correct, keys = WV_Function(pssh, lic_url) print() for key in keys: print('--key ' + key)
-
-
-
-
How can I download a live stream?
I can only download a few fragments with the methods used above
HTML Code:https://str01.lcdn.claro.com.ec/bpk-token/mffoubhi5aaaaaaaag5whpaaaaaaaaaaaaaqtcfhbknce1qi/bpk-tv/TELEAMAZONASHD/dash_fk/index.mpd
-
hi,[ss]vegeta, I use your code with NOWE,but it report wrong:
this is my code:
Code:# -*- coding: utf-8 -*- # Module: KEYS-L3 # Created on: 11-10-2021 # Authors: -∞WKS∞- # Version: 1.1.0 import base64, requests, sys, xmltodict from pywidevine.L3.cdm import cdm, deviceconfig from base64 import b64encode from pywidevine.L3.decrypt.wvdecryptcustom import WvDecrypt headers = { } pssh = input('\nPSSH: ') lic_url = input('License URL: ') drmtoken = input('Token: ') def WV_Function(pssh, lic_url, cert_b64=None): wvdecrypt = WvDecrypt(init_data_b64=pssh, cert_data_b64=cert_b64, device=deviceconfig.device_android_generic) challengeb64 = str(b64encode(wvdecrypt.get_challenge()),"utf-8") data = {"drmtoken":drmtoken,"rawLicenseRequestBase64":challengeb64} widevine_license = requests.post(url=lic_url, json=data, headers=headers) print(widevine_license.request.body) license_b64 = b64encode(widevine_license.content) wvdecrypt.update_license(license_b64) Correct, keyswvdecrypt = wvdecrypt.start_process() if Correct: return Correct, keyswvdecrypt correct, keys = WV_Function(pssh, lic_url) print() for key in keys: print('--key ' + key)
Code:Traceback (most recent call last): File "l3.py", line 47, in <module> correct, keys = WV_Function(pssh, lic_url) File "l3.py", line 43, in WV_Function wvdecrypt.update_license(license_b64) File "D:\3\WKS-KEYS\pywidevine\L3\decrypt\wvdecryptcustom.py", line 58, in update_license self.cdm.provide_license(self.session, license_b64) File "D:\3\WKS-KEYS\pywidevine\L3\cdm\cdm.py", line 275, in provide_license session.session_key = oaep_cipher.decrypt(license.SessionKey) File "C:\Users\LEO-PC\AppData\Local\Programs\Python\Python38\lib\site-packages\Cryptodome\Cipher\PKCS1_OAEP.py", line 167, in decrypt raise ValueError("Ciphertext with incorrect length.") ValueError: Ciphertext with incorrect length.
-
-
I want to send user/pass to you,but it
Code:[ss]vegeta has chosen not to receive private messages or may not be allowed to receive private messages. Therefore you may not send your message to him/her. If you are trying to send this message to multiple recipients, remove [ss]vegeta from the recipient list and send the message again.
-
-
I have followed above discussion, and use below l3.py to try to obtain key from NOWE. But I also encounter the same error message.
PSSH is obtained by EME logger. I notice that the drmtoken is not changed if I replay the media. Please have a help for me. Thanks.
Code:# -*- coding: utf-8 -*- # Module: KEYS-L3 # Created on: 11-10-2021 # Authors: -∞WKS∞- # Version: 1.1.0 import base64, requests, sys, xmltodict from pywidevine.L3.cdm import cdm, deviceconfig from base64 import b64encode from pywidevine.L3.decrypt.wvdecryptcustom import WvDecrypt import urllib3 requests.packages.urllib3.disable_warnings() requests.packages.urllib3.util.ssl_.DEFAULT_CIPHERS += ':HIGH:!DH:!aNULL' headers = { 'authority': 'fwp.nowe.com', 'accept': '*/*', 'accept-language': 'en,ja;q=0.9,zh-HK;q=0.8,zh-TW;q=0.7,zh;q=0.6,en-US;q=0.5', 'content-type': 'text/plain;charset=UTF-8', 'origin': 'https://viu.tv', 'referer': 'https://viu.tv/', 'sec-ch-ua': '"Chromium";v="106", "Google Chrome";v="106", "Not;A=Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': '"Windows"', 'sec-fetch-dest': 'empty', 'sec-fetch-mode': 'cors', 'sec-fetch-site': 'cross-site', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', } pssh = input('\nPSSH: ') lic_url = input('License URL: ') token = input('Token: ') # device_id = input('device_id: ') def WV_Function(pssh, lic_url, cert_b64=None): wvdecrypt = WvDecrypt(init_data_b64=pssh, cert_data_b64=cert_b64, device=deviceconfig.device_android_generic) challengeb64 = str(b64encode(wvdecrypt.get_challenge()),"utf-8") data = {"rawLicenseRequestBase64":challengeb64, "drmtoken":token} widevine_license = requests.post(url=lic_url, json=data, headers=headers) # widevine_license = requests.post(url=lic_url, data=wvdecrypt.get_challenge(), headers=headers) # print(widevine_license.request.body) license_b64 = b64encode(widevine_license.content) wvdecrypt.update_license(license_b64) Correct, keyswvdecrypt = wvdecrypt.start_process() if Correct: return Correct, keyswvdecrypt correct, keys = WV_Function(pssh, lic_url) print() for key in keys: print('--key ' + key)
Code:AAAAVnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADYIARIQkbp1KkRhSMaEANeDdLF4tBoNd2lkZXZpbmVfdGVzdCIPMjAyMjAxMDkxNTczNTUzMgA=
Code:Traceback (most recent call last): File "C:\WKS-KEYS\l3-viu.py", line 54, in <module> correct, keys = WV_Function(pssh, lic_url) File "C:\WKS-KEYS\l3-viu.py", line 50, in WV_Function wvdecrypt.update_license(license_b64) File "C:\WKS-KEYS\pywidevine\L3\decrypt\wvdecryptcustom.py", line 58, in update_license self.cdm.provide_license(self.session, license_b64) File "C:\WKS-KEYS\pywidevine\L3\cdm\cdm.py", line 275, in provide_license session.session_key = oaep_cipher.decrypt(license.SessionKey) File "C:\AppData\Local\Programs\Python\Python310\lib\site-packages\Cryptodome\Cipher\PKCS1_OAEP.py", line 167, in decrypt raise ValueError("Ciphertext with incorrect length.") ValueError: Ciphertext with incorrect length.
Last edited by yawoo; 23rd Oct 2022 at 08:46.
-
The MPD link, including token parameter will change everytime. So I give you the parent link as well. But you may need VPN to HK.
https://ewcdn111.nowe.com/session/p8-5-XXXXXXXX-U634e9fda62e9e8000/Content/DASH_VOS3/V...est.mpd?token=.....
https://viu.tv/encore/in-geek-we-trust/in-geek-we-truste1gei--wooi--chance -
@yawoo
pssh
Code:AAAAVnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADYIARIQkbp1KkRhSMaEANeDdLF4tBoNd2lkZXZpbmVfdGVzdCIPMjAyMjAxMDkxNTczNTUzMgAAAAOAcHNzaA==
https://fwp.nowe.com/wrapperWV
Key
Code:91ba752a446148c68400d78374b178b4:a01d7dc4edf582496b7e73d67e9e6899
-
Similar Threads
-
Help with key from this website
By jdanielw in forum Video Streaming DownloadingReplies: 4Last Post: 30th Oct 2022, 09:49 -
Problem getting the key
By crisvale in forum Video Streaming DownloadingReplies: 14Last Post: 18th Jun 2022, 16:43 -
key frame or not?
By Budman1 in forum EditingReplies: 3Last Post: 11th Oct 2021, 10:07 -
help to get key
By lomero in forum Video Streaming DownloadingReplies: 4Last Post: 7th Jul 2021, 12:59 -
How do I get the decryption key
By Bakekalu in forum Video Streaming DownloadingReplies: 6Last Post: 5th Jul 2021, 01:25