VideoHelp Forum
+ Reply to Thread
Page 1 of 2
1 2 LastLast
Results 1 to 30 of 35
Thread
  1. 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=
    AAAAMnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABISEM8B+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:
    Image
    [Attachment 65720 - Click to enlarge]

    if someone could help me i would appreciate it.
    Quote Quote  
  2. Is it geo-locked? Or through an app?
    Quote Quote  
  3. Originally Posted by MindController View Post
    Is it geo-locked? Or through an app?
    It is not geographically blocked, I could see the channel even when I was outside my country
    Quote Quote  
  4. https://www.clarovideo.com/mexico/watch/1040620
    Code:
    --key c613411a3531e1cdc177d0ae803e9276:dfec4ab370eb040c8d1e54144786a523
    There's a payload tab in the license, with json data, so you have to adjust WKS a little.
    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)
    Quote Quote  
  5. Originally Posted by [ss]vegeta View Post
    https://www.clarovideo.com/mexico/watch/1040620
    Code:
    --key c613411a3531e1cdc177d0ae803e9276:dfec4ab370eb040c8d1e54144786a523
    There's a payload tab in the license, with json data, so you have to adjust WKS a little.
    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)
    how do i modify wks keys?
    Last edited by Brift_Bv; 5th Jul 2022 at 14:24. Reason: wrong message
    Quote Quote  
  6. Originally Posted by Brift_Bv View Post
    how do i modify wks keys?
    Jesus, dude. I posted the whole code.
    All you have to do is check the payloads tab to get the token and device id... and headers.
    Quote Quote  
  7. Originally Posted by [ss]vegeta View Post
    Originally Posted by Brift_Bv View Post
    how do i modify wks keys?
    Jesus, dude. I posted the whole code.
    All you have to do is check the payloads tab to get the token and device id... and headers.
    I managed to do it, but now it gives me this error:
    Image
    [Attachment 65751 - Click to enlarge]

    any solution?
    Quote Quote  
  8. psaframe
    Join Date
    Mar 2021
    Location
    Algeria
    Search PM
    Originally Posted by Brift_Bv View Post
    Originally Posted by [ss]vegeta View Post
    Originally Posted by Brift_Bv View Post
    how do i modify wks keys?
    Jesus, dude. I posted the whole code.
    All you have to do is check the payloads tab to get the token and device id... and headers.
    I managed to do it, but now it gives me this error:
    Image
    [Attachment 65751 - Click to enlarge]

    any solution?
    what the hell are u doing dude. from where you get shit pssh
    Quote Quote  
  9. Originally Posted by [ss]vegeta View Post
    https://www.clarovideo.com/mexico/watch/1040620
    Code:
    --key c613411a3531e1cdc177d0ae803e9276:dfec4ab370eb040c8d1e54144786a523
    There's a payload tab in the license, with json data, so you have to adjust WKS a little.
    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
    
    for key in keys:
        print('--key ' + key)
    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
    Quote Quote  
  10. Psychology student CrymanChen's Avatar
    Join Date
    Apr 2022
    Location
    Mainland China
    Search Comp PM
    Originally Posted by [ss]vegeta View Post
    https://www.clarovideo.com/mexico/watch/1040620
    Code:
    --key c613411a3531e1cdc177d0ae803e9276:dfec4ab370eb040c8d1e54144786a523
    There's a payload tab in the license, with json data, so you have to adjust WKS a little.
    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)
    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.
    Image
    [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.
    Quote Quote  
  11. Originally Posted by filipino View Post
    Could you upload the l3.py file?
    The code I posted is the actual l3.py...
    Originally Posted by CrymanChen View Post
    Did I modify it right?
    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).
    Quote Quote  
  12. Psychology student CrymanChen's Avatar
    Join Date
    Apr 2022
    Location
    Mainland China
    Search Comp PM
    Originally Posted by [ss]vegeta View Post
    Originally Posted by filipino View Post
    Could you upload the l3.py file?
    The code I posted is the actual l3.py...
    Originally Posted by CrymanChen View Post
    Did I modify it right?
    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).
    Thank you.
    I tried to change those you put up with, however, it still gave me a "[SSL: DH_KEY_TOO_SMALL] dh key too small" error.
    Trying to download videos from NOWE has trapped me for long time...
    Quote Quote  
  13. 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)
    result

    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>
    Quote Quote  
  14. Originally Posted by Brift_Bv View Post
    how do i modify wks keys?
    Just open the "l3.py" file with Notepad
    Quote Quote  
  15. Originally Posted by filipino View Post
    some lines have errors, but I still don't know what to delete or put
    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)
    Quote Quote  
  16. Originally Posted by CrymanChen View Post
    Thank you.
    I tried to change those you put up with, however, it still gave me a "[SSL: DH_KEY_TOO_SMALL] dh key too small" error.
    Trying to download videos from NOWE has trapped me for long time...
    trying adding these lines near the top to get around the DH_KEY_TOO_SMALL error
    Code:
    import urllib3
    
    requests.packages.urllib3.disable_warnings()
    requests.packages.urllib3.util.ssl_.DEFAULT_CIPHERS += ':HIGH:!DH:!aNULL'
    Quote Quote  
  17. Psychology student CrymanChen's Avatar
    Join Date
    Apr 2022
    Location
    Mainland China
    Search Comp PM
    Originally Posted by ElCap View Post
    Originally Posted by CrymanChen View Post
    Thank you.
    I tried to change those you put up with, however, it still gave me a "[SSL: DH_KEY_TOO_SMALL] dh key too small" error.
    Trying to download videos from NOWE has trapped me for long time...
    trying adding these lines near the top to get around the DH_KEY_TOO_SMALL error
    Code:
    import urllib3
    
    requests.packages.urllib3.disable_warnings()
    requests.packages.urllib3.util.ssl_.DEFAULT_CIPHERS += ':HIGH:!DH:!aNULL'
    Thanks.
    I've been googling these days about the dh key too small issue. But those methods online were too difficult for me.
    Quote Quote  
  18. [QUOTE=ElCap;2661885]
    Originally Posted by filipino View Post
    some lines have errors, but I still don't know what to delete or put
    Code:
    PSSH: AAAAR3Bzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAACcIARIQ5+zd/vZ549r2DU1bl1JoqxoDZGxhIgYxNzY1NDkqAlNEMgA=
    License URL: https://widevine-claroandina-vod.clarovideo.net/licenser/getlicense?user_id=66623590
    
        print('--key ' + key)
    I was a bit lost, thank you very much
    Quote Quote  
  19. 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
    Quote Quote  
  20. Originally Posted by [ss]vegeta View Post
    https://www.clarovideo.com/mexico/watch/1040620
    Code:
    --key c613411a3531e1cdc177d0ae803e9276:dfec4ab370eb040c8d1e54144786a523
    There's a payload tab in the license, with json data, so you have to adjust WKS a little.
    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)
    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)
    wrong

    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.
    help me please
    Quote Quote  
  21. Originally Posted by NOWEUSER View Post
    help me please
    Maybe you are slow (token lasts like 15 seconds as I said), maybe cdm is toasted... dunno, can't try now, seems like I don't have account for NOWE.
    Post your link and send user/pass via private message.
    Quote Quote  
  22. Originally Posted by [ss]vegeta View Post
    Originally Posted by NOWEUSER View Post
    help me please
    Maybe you are slow (token lasts like 15 seconds as I said), maybe cdm is toasted... dunno, can't try now, seems like I don't have account for NOWE.
    Post your link and send user/pass via private message.
    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.
    Quote Quote  
  23. Originally Posted by [ss]vegeta View Post
    Originally Posted by NOWEUSER View Post
    help me please
    Maybe you are slow (token lasts like 15 seconds as I said), maybe cdm is toasted... dunno, can't try now, seems like I don't have account for NOWE.
    Post your link and send user/pass via private message.
    i have send the user/pass to your private message,test it THX.
    Quote Quote  
  24. 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)
    PSSH:
    Code:
    AAAAVnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADYIARIQkbp1KkRhSMaEANeDdLF4tBoNd2lkZXZpbmVfdGVzdCIPMjAyMjAxMDkxNTczNTUzMgA=
    Error:
    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.
    Quote Quote  
  25. Originally Posted by lomero View Post
    video link ?
    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
    Quote Quote  
  26. @yawoo

    pssh

    Code:
    AAAAVnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADYIARIQkbp1KkRhSMaEANeDdLF4tBoNd2lkZXZpbmVfdGVzdCIPMjAyMjAxMDkxNTczNTUzMgAAAAOAcHNzaA==
    License

    https://fwp.nowe.com/wrapperWV

    Key

    Code:
    91ba752a446148c68400d78374b178b4:a01d7dc4edf582496b7e73d67e9e6899
    Quote Quote  
  27. Originally Posted by cedric8528 View Post
    @yawoo

    pssh

    Code:
    AAAAVnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADYIARIQkbp1KkRhSMaEANeDdLF4tBoNd2lkZXZpbmVfdGVzdCIPMjAyMjAxMDkxNTczNTUzMgAAAAOAcHNzaA==
    License

    https://fwp.nowe.com/wrapperWV

    Key

    Code:
    91ba752a446148c68400d78374b178b4:a01d7dc4edf582496b7e73d67e9e6899

    Thanks, your key is working. Would you mind to correct my steps? Thanks again.
    Quote Quote  



Similar Threads

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