VideoHelp Forum



Support our site by donate $5 directly to us Thanks!!!

Try StreamFab Downloader and download streaming video from Netflix, Amazon!



+ Reply to Thread
Results 1 to 5 of 5
  1. 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

    PHP 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_idpssh)

    # 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_urlheaders=headersdata=license_data)
    license.raise_for_status()

    # Parsear el desafío de la licencia
    cdm.parse_license(session_idlicense.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
    But I always get this response

    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 already used http toolkit to see the request headers, but I haven't found the answer.

    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-D0AE803E9276
    Code:
    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":"CAESjSASPwo9CicIARIQxhNBGjUx4c3Bd9CugD6SdhoDZGxhIgYzMjgyMDUqAlNEMgAQARoQURekLqHdAmpCozt4n5lHgBgBINSm6a8GMBY4m+eI0A1CrB8KEGFtZXJpY2Ftb3ZpbC5jb20SEILY9lDFxOoxUnrl3pb5sTAa8Bwlk/Z3n5fir3oQDtPXC3/aLvRNr/QK1UnkhDRNAm/kUyGL4Q0tvt4Zv51xPkYoJvs/U0lyIlQHBY3I0pUNGp6qEGWT6R3q2d9aZ18w9gkfNScbWdAL/NQtQvFlUn0Qmii9NZ85VR9uwou9pBybtx+9LrMtCwWvFjcmkfQBYp0gVeSpRcTUaeP36c4k30enmo5AxVIm/uEOERIgNjIjYtCzQO5rM6LkW8tnTipv55xOXbh5IgMAjQt0uusGeDWqpXQk+BXD9KxKv417VxJ0LgromT/5t5hakoULLhbhy0cq6Ov5tA0L0NZzsmHaYoJtNVDas20l6ve/ma1NZbgmlTkbgD+bE+nW5JmEu1r+BmuSLwi8Bqy/aUSjmgCstgtP14Qqefrn5cbglDs3Jn+ZHfLIPKNjwD3Mrn+fuGjsTeMG7F/Cv7RnmN523wj80mCI82txR8IetSQedC85zGZkbrvGWzxf2fFAodzF2FsjxvXbNzlZ+CfZn+dd/ksgLUGnPSE8I87MOBXQt49wKT67P1wm3mna5VNE7Ko2vPkSd1G+7NdnhreGnmsFkl1gTBAAkVtN8oL1azYuikHbmIWQzIDgQdIn97ew84gcc1uOXoDpQG+Fg5yKUswS2DfsbnTMN7e6XaQML9UlrqTOnFRmlYuHGGdZLb1WidhU+ocJGHGYZrr91h2OqSSAlJet3bYawxWWb0SlK55REYJIRxp35klhbn2ACF+Nw7Um1urjY/NCp6960jiPucbLWiIPdN7zAo62nLscM0boSz1apoLaySYDKN+Mv8Hq380WdehHWZtagumtSEpTMf8723O/Zgg4hCdQFgvNMHBIntNX6OIqJIqpX/aWGMl0lQFLDfDXabWiISUVz942A2GukNj7OVUQalR6U4v377Q1Ja1lyrm/AIpSMrk6ASHHO1zoq9rZMyMCeQRTBl46DCngqNk4e2yBJ/V+hgnHReGcJ0DTE1TUrQwKVrYXsD/ULY66Mgrf/juafFE2TEylFtPxt9VA2sET7yeZRwp7O49ykzHZHbwJyX9zZWOh77GvfHUa/Rcd6A/xWfDBXOCuNIzWEhJ3Re65ySHbhJeYyhdg4jUwgt/IYQMnMBvmkQ/7x8QXiZO1FHLK/61sTQiVsxnhal2wNcS4kkjSE/x7lOxxfc0IcPZJnn/WQtQsIjIVtHnMqbhKZoqy1WthgCarluOka/KHt7sZVbMdWnVaqbuw83ZY8MeVBji2zho/t3LhVR0Z6scHWAYobbw8czLQTT9UmM/TCF89LxdQGPI4+jlmgdRo0hMeUKg7IyI7TAz7F80RHqduZaqqggdi6YahH/4pxD250aCVJmJP8BNEiE5Qx+eWrUOnRxXC0W0UdDtrZImf24DrAFPKFTk4OhlolaJJ6DJCcj21/STHdgqKG8XZA1tuoqRcwkT6TSnyGCjREoZDUaUVk2si754FA2xBpTmXqC2RHVaHua3IXNC6PkEUxCAL92G0GpJB+QTvsRsEb2P6OpKripDQ6cTbOLN2HZLLLtDAuK+btQ0EI8nZjescjDKpNMOia0YA908zgOmEW+NF4h8fJsscAMruiyq1/ZUOpAINhtCSSe59uMN9Yp1NXFCsPgqjfveJ7p//gs7s461P/uX1znIO7md9eXfM21CAl+jmav4MOuYLzHZWoh9RjBrhSgqsrdpvyd9LrnT3WmR0J3pqCtS07j5rL1GMg/dqujGaViweVs0R+mYyI/y4l4VJxm1BgFPtM9S0Fah3EYpgysfRwLL1QfqRw7nrZnIn5tUlgSDsX8Z9aQK7mIoll7UJ6EkCML0/vGsTbHdC28klS+5XIEprrMEtc0INQD6pXSq3+MMl7cwkuhqIUf/s/qTjDtD7dSC5WcMM81C3KB5T/uSVCgbQCdqryw54Rz5hgOoo0WXJdSHx6Q50v02snWUJebFYGDQTGAF+XndOz7gsPMJKhje8e/7c6u/Kzti8fJpHENpZlhfqCMJqen+ONUbUa4ZyfkLRrkIrzhMz1RQNue5+ICwHsM7605cON60lUgJVcosd2L3HKrMrc9OtBktn8ldRkIzMSxShls+UacDcvj71ZIESBJhWJz3wZf40uTf/bSt6BB8VaPlZee1b2F92I5rfVNgDZSaC5CmAw2ox30zaUQSNTJzrZavu8nVlXouWQe7Ydl5Y2abfBLm6+HRW187wbf2G4UbU4Cceff6ttDjOeNvepruwjx1vwZWnwFlrVdqrPJUmeeyw055Iml7iL51rk9MnZDF4BlKGBmoR59VC1MJyUk/s13+Jl7rANJYW+Sc5Qg9/i6JhUghiQvxVBe3mrk7pATzOl8TNxtdFrKuLwd25JxFRNoi6zgUTvcp+sfwx6b3nle7XfkEtkbrA+KB1xnpWR+SV6loz01hbJKjEhaeq2/HEOk56p3M48IbmGKVU9lLa14LOnOVCGoGp51Kv+x8YP65eyXAgdDt+vlIuAJNMkoXqSCFDrFCdGPuoDqb79i867EAR2h5cRQnHLVcssEQzCCT6X2SLn8sCcuA0l9QM/BU6bHP4QEbfwF8D9gqHrP6foPYmfQeOqZGWlgGbV5thOyeTOa3ZZ7wqJ7rNKxXxioZkDfIReNOwITce9dFZdcRe4rUszRx+Nr+d/TKoTxcJuAJEO84g1HN+bSLwgz5TT0Ta4YDe5wbkcUp27fIN4xHml+UTXyOIy2CwkuVZCUxWNm8r0ZKwrHfOXFSIP3nXEI2iIUSIDUsdVbn0MQ9TpeFoaniecmUDpgPrC3WxAs8mrrh6H5DYg05FjHxwdgZeGKWXwScjP7UiBnvk1tYem90CDop48qBMbzhRUGtRmntgHH3jb2YAsbg7mM4VIw8X+SX8m981lMsTqmad0QcG6H5xAnlRLfiThtV5ryCI8b1nowvblXQL+s/t8Y+R4WvMq1Ms8vlm0weGAzpL0TPNd6Z2I9L2pn8NTycNRiW+WQ41ZyYfNTwAzHzeiFmX8BZrsdsHry7JdncuIf3pAftNgql+9agEVCwRfIV8HbsvnLwvHwbmHwqa/k+WkRxKNHOlf0oTmctYL5qRr7G1ooOhhZDjffRFnfPbHETwgaAEkG1Uyr/2GQGn22qYQxawrLRwbQ4X4Km/Ro2WdSZzFSCEiAQ0KoXO/kViKxhGf9IF7cFwWjqvfBplb5/7YoAS9Bl7OklWhUSnhlnN3LDQ3AMiiruy/FulEiMZ3gFroJJ2urTJ6VXMn9hTn1nTIQ9ETp8dUDXW0mKMX5tIyvz2zKR0hobQmDHTIVFv0s7T5XH2Oe1VPaidvM49GAo1V5Imw+LfN3kVxUlTMIpVyw3mUGxsYpd2oSG5gdmd0vNYJZk+8i+IWUr4JOzO7xdaUcMgsuWyq9eMbvWQfJIY+1jCK1P2PrBTxtpb0wO8tUtIRhwc0YdIbOiTEUHoci24CJ2VEDeGDz43bVOVVh24MG4p8zFHvWBaqz35OJXvH5ixYmN/ItnoyMEGGX+HSFfoDC3FE13gglBfq1LODEDruuU8/GoEENpcuM5228Dt6Vy/MB7WR36xK7z/9XET+HYsukBXzufCNrjK7M9WF75IZKdfbuL3sQCsEjqsYsYOkrT3+UTuoAcf92Qc+YGO4Jq+ukacsAdE6JZU0zw4TLmDisZej7TJ+uMmFXsLPf1QG8X87GOZeXZqmN2q/iWx5773H7LhizEe1DcrcrNivmz7ecCC0nzU3I687cauD1N+kDw2RiLEigE60bxP+v0YqdF+5h1Dy0i6KADflEd3RloIkh77GDyvanvT9COvnrTJjqIa524TcFoN4tB/blA0dNy9hmuWZzvWT4sxju9PZw2e0CFaYLR+NVmlsh5THfj6xictIuH8XFBuYaoErsTgMU+kAQJEc4ttnUrNhiXyC4VBfHRso30k5Wg44T+Dj58l/ARwe96PMBnw3GGIvOGaV9gKYA52ESDtT9DtUhK/8iVpY/fJgGE1m37QpjeAGwH4coUiGN//lpCLN4IuvjqGa4bfe6OONJx8E9ICkB7CQxap5ios7gCX/J0/6hZQ2+Qafjg/imqhO97dQ2GcoAtStjNIUK3qvRVOOg99I+s2lg7f22PAqZInm/rCGuC5Rw7dHJ4DrPXuY6gbeMfkbSeVD8/Wh7kNstOXYWI5RfXDRoAI3v7EARKGe9pC6oq6RZL8BRu+RWyO/2XqohXBQ1rZG8N0E2rz37//dn2i91t5uFu/OjrZEjtMYNyrq2ux2/QqGmkHrGcED6aHx6xMAc84tIXm5VYjEbLh2osLXHURo2t4PD+7BSl3u0uKBbVCxG5xl8kyaTPzjn6uoIASZMRk4vS/CI85QPtb7x0/AgGT8Yn+F2I6LOhRJ8pi5i4VNS+YnZD+0VG2y94zc23u8bby34G/7lG2jK7ielWc1mX1YRuFmphEkBMoKQTB3BonWnYbdRHn0YslaKAgOpmEaJTTroXeeS0NNaliggkZPIUfJLHtTy6tA8TW5yPofQx8LS8X87DQ+KVBdF+R/WfNgdMXAj6ejcMk5fnZFJxMXh2MSKSSaZb4Kt0mJ3I78e2fYwSA0NnHH5lt0XdXLiY7peXmGo9II2OPJZMjZV0zXTgLEYxiJWfst9DWMGIZoktVNECjylVrACK3TVAej/5zT684kB7V4iLysUWcbtRygo7ti8thsGa7xJ8Js84K/ltD+UjGE239enyp1TnxgmYBXjpPMFj72GKF9jiSeSOcXK9U9GKxo7N8Ec0epzIOZ+BihtxACelQTPdQxAGLRtKY2EyYNBSfsB+ZuHvvc7zixsMe00XB06cJ5ZkzLlwcpVfl6zsxQhRml553M8f3emHpZJZHi8NV3pmP31tp8IRdsj+Hx/2S/lfUb0ym8fUdm9rjl3dZZTbQyo6FDLY2pGgziTrQqmhnOteUdCBsWRTItAZ294mI2XqtqAanMC0iEDYJF0UR+xXchzek0o+HndAqgAKxDJn41I0MDtjN3m6c6U0lIPIUHSkifsUXixQRfCB1bD/y8ZUK2oyXbeTU6ug4w8EpRbR4ZzMyLdVAocVocDRUXnJwPmwGKdnZI53AVIxZAlM/QPKipuipyFznmOCJX2yx4y+Ve/MyYlaf0JJJWvJBjpzomFPU6EfNFxRD/DEaZA3WiRwKD5kiIbC+v3EP8zHZyDo3pLKl9LMD5IiyTkGrZ/3mNhcAIpwzg92dj6kjJNaCQgTXeK/ac4npITLu7MjJQVRh33GTqBrEWp0UOwRMOtbES/2kZqsA2FV0RwOJBtGi+unCfU6JZWqygnGxBKaVcUARad65hBIi8QU/mh6sSgs0LjEwLjI3MTAuMBqAAU5epNpEub5Qg7jwVJrfTE2QnBhCcz5qWSPPIlPVLQ9YHp56aba+cw55EYiSl17b3nZE8nHy3EXgqYNVPT02zfLDadqAeLhutUJAOyk6mM7UBe4Sr6kVuEEd3avJrg7g7fbwp+aJ9qRda9zWm1DzW5zT00nD1dVhoclbkaG+V52nShQAAAABAAAAFAAFABDaAjObPBaIVQ=="}'

    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/.mpd
    Code:
    License URL: https://widevine-claroglobal-vod.clarovideo.net/v2/licenser/getlicense?user_id=15835741
    In no way do I want to bother anyone, thank you very much in advance for everything I have learned in this forum. Regards
    Quote Quote  
  2. 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.
    Quote Quote  
  3. 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
    Quote Quote  
  4. Banned
    Join Date
    Apr 2022
    Location
    Hong Kong
    Search Comp PM
    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:
    Image
    [Attachment 77829 - Click to enlarge]

    Code:
    widevine_license = requests.post(url=lic_url,
                    json=data,
                    headers=self.headers,
                    proxies=self.proxies
    )
    Of course just copying won't work. You should edit your own based on this.
    And the key would return normally:
    Image
    [Attachment 77830 - Click to enlarge]

    Code:
    --key c613411a3531e1cdc177d0ae803e9276:dfec4ab370eb040c8d1e54144786a523
    The Key ID is the same, you can take my key to try decrypting the video to see if it's right.
    Quote Quote  
  5. 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.

    Image
    [Attachment 77841 - Click to enlarge]

    Image
    [Attachment 77842 - Click to enlarge]
    Image Attached Thumbnails Click image for larger version

Name:	Captura de pantalla 2024-03-20 2017102.png
Views:	14
Size:	52.8 KB
ID:	77839  

    Click image for larger version

Name:	Captura de pantalla 2024-03-20 192610.png
Views:	51
Size:	19.5 KB
ID:	77840  

    Quote Quote  



Similar Threads

Visit our sponsor! Try DVDFab and backup Blu-rays!