Hello everyone, I have been studying the A_n_g_e_l_a manuals and consulting some posts, especially looking for answers from [ss]vegeta and ElCap, but I can't find the solution.
I have created a virtual environment in Python to obtain the key of some sites, which only use PSSH and the License url and so far it has gone well.
I am using this template shared by A_n_g_e_l_a
But I always get this responsePHP Code:
from pywidevine.cdm import Cdm
from pywidevine.device import Device
from pywidevine.pssh import PSSH
import requests
# Obtener los valores de token, device_id y widevineBody desde el usuario
token = input("Ingrese el token: ")
device_id = input("Ingrese el ID del dispositivo: ")
widevineBody = input("Ingrese el cuerpo de widevine: ")
# Preparar los encabezados
import requests
headers = {
'Accept': '*/*',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'es-419,es;q=0.9',
'Connection': 'keep-alive',
'Host': 'https://widevine-claroglobal-vod.clarovideo.net',
'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 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36',
'sec-ch-ua': '"Chromium";v="122", "Not(A:Brand";v="24", "Google Chrome";v="122"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"Windows"',
}
params = {
'user_id': '15835741',
}
data = '{"token":"b250e2c5e4331a85bd75c41f3d952b52","device_id":"693e9af84d3dfcc71e640e005bdc5e2e","widevineBody":"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"}'
response = requests.post(
'https://widevine-claroglobal-vod.clarovideo.net/v2/licenser/getlicense',
params=params,
headers=headers,
data=data,
)
# Preparar PSSH
pssh = input("PSSH? ")
pssh = PSSH(pssh)
lic_url = input("License URL? ")
# Cargar el dispositivo
device = Device.load(r"C:\streaming\php env\WVD\google_widevine.wvd")
# Cargar CDM
cdm = Cdm.from_device(device)
# Abrir sesión CDM
session_id = cdm.open()
# Obtener el desafío de la licencia
challenge = cdm.get_license_challenge(session_id, pssh)
# Enviar el desafío de la licencia (suponiendo un servidor de licencias genérico sin API frontal)
license_data = {
'device_id': device_id,
'widevineBody': challenge,
}
license = requests.post(lic_url, headers=headers, data=license_data)
license.raise_for_status()
# Parsear el desafío de la licencia
cdm.parse_license(session_id, license.content)
# Imprimir claves
for key in cdm.get_keys(session_id):
if key.type == 'CONTENT':
print(f"\n--key {key.kid.hex}:{key.key.hex()}")
# Cerrar sesión, libera los datos de la sesión
cdm.close(session_id)
I already used http toolkit to see the request headers, but I haven't found the answer.Traceback (most recent call last):
File "C:\streaming\php env\claro.py", line 68, in <module>
license.raise_for_status()
File "C:\streaming\php env\env\Lib\site-packages\requests\models.py", line 1021, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 400 Client Error: Bad Request for url: https://widevine-claroglobal-vod.clarovideo.net/v2/licenser/getlicense?user_id=15835741
I think I am not editing the code correctly to add the token, device id and windevinebody variables.
Maybe as [ss]vegeta says I'm very slow, possibly it's a token that changes every 15 seconds like in NOWE.
Link and headers attached (It is a link that has already been posted in the forum, but I use it as a way to check my results with those posted here)
https://www.clarovideo.com/mexico/watch/1040620
Code:KID=C613411A-3531-E1CD-C177-D0AE803E9276Code:PSSH=AAAAOHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABgSEMYTQRo1MeHNwXfQroA+knZI49yVmwY=PHP Code:
import requests
headers = {
'Accept': '*/*',
'Accept-Language': 'es-419,es;q=0.9,en;q=0.8,tr;q=0.7,zh-CN;q=0.6,zh;q=0.5,ro;q=0.4,ru;q=0.3',
'Connection': 'keep-alive',
'DNT': '1',
'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 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36',
'sec-ch-ua': '"Chromium";v="122", "Not(A:Brand";v="24", "Google Chrome";v="122"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"Windows"',
'Content-Type': 'application/x-www-form-urlencoded',
}
params = {
'user_id': '15835741',
}
data = '{"token":"839c126735c3073811c610f7bd6f3c08","device_id":"693e9af84d3dfcc71e640e005bdc5e2e","widevineBody":"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"}'
response = requests.post(
'https://widevine-claroglobal-vod.clarovideo.net/v2/licenser/getlicense',
params=params,
headers=headers,
data=data,
)
Code:MPD: https://mxuspdashqro.clarovideo.com/multimediav81/plataforma_vod/MP4/202204/MAH031613_full/MAH031613_full_MA_WV_DASH.ism/.mpdIn no way do I want to bother anyone, thank you very much in advance for everything I have learned in this forum. RegardsCode:License URL: https://widevine-claroglobal-vod.clarovideo.net/v2/licenser/getlicense?user_id=15835741
Support our site by donate $5 directly to us Thanks!!!
Try StreamFab Downloader and download streaming video from Netflix, Amazon!
Try StreamFab Downloader and download streaming video from Netflix, Amazon!
+ Reply to Thread
Results 1 to 5 of 5
-
-
at least, widevineBody=base64.b64encode(challenge).decode()
and where is the token, I think that token change every time you make a request, that's required, because I got error 500, it said token not found in there database.
the payload is str type, not python dictionary, need pay attention. -
You don't need any headers, the challenge needs to be base64encoded, and the token is valid for at least a few minutes so no need to rush.
I cleaned up your script while keeping your comments:
Code:from pywidevine.cdm import Cdm from pywidevine.device import Device from pywidevine.pssh import PSSH import requests import base64 DEVICE = r"C:\streaming\php env\WVD\google_widevine.wvd" def decrypt(token: str, lic_url: str, pssh: str) -> None: # Preparar PSSH pssh = PSSH(pssh) # Cargar el dispositivo device = Device.load(DEVICE) # Cargar CDM cdm = Cdm.from_device(device) # Abrir sesión CDM session_id = cdm.open() # Obtener el desafío de la licencia challenge = cdm.get_license_challenge(session_id, pssh) # Enviar el desafío de la licencia (suponiendo un servidor de licencias genérico sin API frontal) payload = { "token": token, "device_id": "693e9af84d3dfcc71e640e005bdc5e2e", "widevineBody": base64.b64encode(challenge).decode("utf-8"), } response = requests.post(lic_url, json=payload) response.raise_for_status() # Parsear el desafío de la licencia cdm.parse_license(session_id, response.content) # Imprimir claves for key in cdm.get_keys(session_id): if key.type == "CONTENT": print(f"\n--key {key.kid.hex}:{key.key.hex()}") # Cerrar sesión, libera los datos de la sesión cdm.close(session_id) def main(): # Obtener los valores de token, device_id y widevineBody desde el usuario token = input("Ingrese el token: ") lic_url = input("License: ") pssh = input("PSSH? ") decrypt(token, lic_url, pssh) if __name__ == "__main__": main()
Code:Ingrese el token: 220b39f1fb49ff81d50dd20e35ae79ed License: https://widevine-claroglobal-vod.clarovideo.net/v2/licenser/getlicense?user_id=44065928 PSSH? AAAAR3Bzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAACcIARIQxhNBGjUx4c3Bd9CugD6SdhoDZGxhIgYzMjgyMDUqAlNEMgA= --key c613411a3531e1cdc177d0ae803e9276:dfec4ab370eb040c8d1e54144786a523
-
I can't access clarovideo.com/mexico, but I found the same video on /argentina.
Your script is basically right, but as for the data part, this would be better:
I code like this:
[Attachment 77829 - Click to enlarge]
Code:widevine_license = requests.post(url=lic_url, json=data, headers=self.headers, proxies=self.proxies )
And the key would return normally:
[Attachment 77830 - Click to enlarge]
Code:--key c613411a3531e1cdc177d0ae803e9276:dfec4ab370eb040c8d1e54144786a523
-
hello again
thank you so much 'shellcmd' 'stabbedbybrick' and 'CrimanChen.
Check again with http toolkit and they are right the payload returns a json response. Which must be interpreted with base 64.
Thank you very much for your response, stabbedbybrick for cleaning and correcting the code.
[Attachment 77841 - Click to enlarge]
[Attachment 77842 - Click to enlarge]
Similar Threads
-
How to get THE KEY from this TOKEN
By pericoplaner in forum Video Streaming DownloadingReplies: 1Last Post: 30th Nov 2023, 18:49 -
Where to start from? token+?
By pak0 in forum Video Streaming DownloadingReplies: 2Last Post: 22nd Nov 2023, 23:52 -
How to video download with bearer token?
By sagokey in forum Video Streaming DownloadingReplies: 2Last Post: 19th Feb 2022, 13:27 -
widevine license token help
By birbal1 in forum Video Streaming DownloadingReplies: 3Last Post: 1st Dec 2021, 22:44 -
Need help to get stream with token
By bayd in forum Video Streaming DownloadingReplies: 2Last Post: 17th Dec 2019, 13:42