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
Page 2 of 2
FirstFirst 1 2
Results 31 to 47 of 47
  1. Originally Posted by jay_670 View Post
    I encountered an error
    ERROR
    Error 400: <error> <checksum>abbb9ef2db2d6d8d3c007961a827333d</checksum> <version>4.6.33.0.12</version> <code>40</code> <message>invalid device_profile</message> </error>
    I don't know how to type my own header

    Here's the link to the video I need to get the key to:https://www.nba.com/watch/video/2016-dunk-contest-lavine-vs-gordon-best-ever

    m3u8:https://nbalpng.akamaized.net/vod-pz/a/hls-wvpr/NBA_202301290937NBA_____VIDEOS__NBAE_2...41/v0-121.m3u8

    license URL:https://ottapp-appgw-amp.nba.com/v1/client/get-widevine-license?ownerUid=azuki&mediaId...7&is_dvr=false
    PSSH:AAAAgHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAGAIA RIQlk9C5GY4kyszQnRh8TZFnxoMbWVkaWFraW5kbmJhIjpOQkF fMjAyMzAxMjkwOTM3TkJBX19fX19WSURFT1NfX05CQUVfMjYzM Dk0MV9KaXRwX1JlYWNoX0hEMgA=
    header:HTTP/1.1 200 OK
    Content-Type: application/octet-stream
    Content-Length: 0
    Access-Control-Allow-Credentials: true
    Access-Control-Allow-Headers: Origin,Content-Type,Accept,x-tv3-transactionid,authorization,refreshtoken,redirectu ri,LogFormat,X-Adult-AuthToken,X-Requested-With,X-TV3-Profiles,X-ClientConfig,Geo-Position,x-tv3-tenantid,azukiapp,azukideviceprof,azukidrm,azukiim c,soapaction,azukiststoken,deviceprofile,developer id,applicationname,authorizationtoken,applicationt oken,X-LocationDetails,X-Requested-Region
    Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE
    Access-Control-Expose-Headers: Date, X-Result-Count
    Access-Control-Max-Age: 86400
    Expires: Mon, 11 Mar 2024 08:02:19 GMT
    Cache-Control: max-age=0, no-cache, no-store
    Pragma: no-cache
    Date: Mon, 11 Mar 2024 08:02:19 GMT
    Connection: keep-alive
    Access-Control-Allow-Origin: https://www.nba.com
    Strict-Transport-Security: max-age=86400


    Can you help me and tell me how to enter the correct header
    Those are the response headers, you should use the request headers. Here's your key btw:
    Code:
    N_m3u8DL-RE -M format=mkv --key 964f42e46638932b33427461f136459f:06ee868164f7d156637fde3fa500a671 "https://nbalpng.akamaized.net/vod-pz/a/hls-wvpr/NBA_202301290937NBA_____VIDEOS__NBAE_2630941/index.m3u8"
    Quote Quote  
  2. Member
    Join Date
    Mar 2024
    Location
    bejing
    Search Comp PM
    Originally Posted by white_snake View Post
    Originally Posted by jay_670 View Post
    I encountered an error
    ERROR
    Error 400: <error> <checksum>abbb9ef2db2d6d8d3c007961a827333d</checksum> <version>4.6.33.0.12</version> <code>40</code> <message>invalid device_profile</message> </error>
    I don't know how to type my own header

    Here's the link to the video I need to get the key to:https://www.nba.com/watch/video/2016-dunk-contest-lavine-vs-gordon-best-ever

    m3u8:https://nbalpng.akamaized.net/vod-pz/a/hls-wvpr/NBA_202301290937NBA_____VIDEOS__NBAE_2...41/v0-121.m3u8

    license URL:https://ottapp-appgw-amp.nba.com/v1/client/get-widevine-license?ownerUid=azuki&mediaId...7&is_dvr=false
    PSSH:AAAAgHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAGAIA RIQlk9C5GY4kyszQnRh8TZFnxoMbWVkaWFraW5kbmJhIjpOQkF fMjAyMzAxMjkwOTM3TkJBX19fX19WSURFT1NfX05CQUVfMjYzM Dk0MV9KaXRwX1JlYWNoX0hEMgA=
    header:HTTP/1.1 200 OK
    Content-Type: application/octet-stream
    Content-Length: 0
    Access-Control-Allow-Credentials: true
    Access-Control-Allow-Headers: Origin,Content-Type,Accept,x-tv3-transactionid,authorization,refreshtoken,redirectu ri,LogFormat,X-Adult-AuthToken,X-Requested-With,X-TV3-Profiles,X-ClientConfig,Geo-Position,x-tv3-tenantid,azukiapp,azukideviceprof,azukidrm,azukiim c,soapaction,azukiststoken,deviceprofile,developer id,applicationname,authorizationtoken,applicationt oken,X-LocationDetails,X-Requested-Region
    Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE
    Access-Control-Expose-Headers: Date, X-Result-Count
    Access-Control-Max-Age: 86400
    Expires: Mon, 11 Mar 2024 08:02:19 GMT
    Cache-Control: max-age=0, no-cache, no-store
    Pragma: no-cache
    Date: Mon, 11 Mar 2024 08:02:19 GMT
    Connection: keep-alive
    Access-Control-Allow-Origin: https://www.nba.com
    Strict-Transport-Security: max-age=86400


    Can you help me and tell me how to enter the correct header
    Those are the response headers, you should use the request headers. Here's your key btw:
    Code:
    N_m3u8DL-RE -M format=mkv --key 964f42e46638932b33427461f136459f:06ee868164f7d156637fde3fa500a671 "https://nbalpng.akamaized.net/vod-pz/a/hls-wvpr/NBA_202301290937NBA_____VIDEOS__NBAE_2630941/index.m3u8"

    Thank you so much for his work. What tool did you use to get the key? I have been using get windevine keys, but I can't get it. Could you please share the code you got this time
    Quote Quote  
  3. Originally Posted by jay_670 View Post
    Thank you so much for his work. What tool did you use to get the key? I have been using get windevine keys, but I can't get it. Could you please share the code you got this time
    I used a generic pywidevine script, like the one you could find here: https://github.com/devine-dl/pywidevine?tab=readme-ov-file#usage
    Quote Quote  
  4. Member
    Join Date
    Mar 2024
    Location
    bejing
    Search Comp PM
    Originally Posted by white_snake View Post
    Originally Posted by jay_670 View Post
    Thank you so much for his work. What tool did you use to get the key? I have been using get windevine keys, but I can't get it. Could you please share the code you got this time
    I used a generic pywidevine script, like the one you could find here: https://github.com/devine-dl/pywidevine?tab=readme-ov-file#usage
    thankyou so much. I'll give it a try
    Quote Quote  
  5. Member
    Join Date
    Mar 2024
    Location
    bejing
    Search Comp PM
    Originally Posted by jay_670 View Post
    Originally Posted by white_snake View Post
    Originally Posted by jay_670 View Post
    Thank you so much for his work. What tool did you use to get the key? I have been using get windevine keys, but I can't get it. Could you please share the code you got this time
    I used a generic pywidevine script, like the one you could find here: https://github.com/devine-dl/pywidevine?tab=readme-ov-file#usage
    thankyou so much. I'll give it a try
    Another question how do I get wvd
    Quote Quote  
  6. Originally Posted by jay_670 View Post
    Another question how do I get wvd
    https://forum.videohelp.com/threads/411862-Beyond-WKS-KEYS
    Quote Quote  
  7. Member
    Join Date
    Mar 2024
    Location
    bejing
    Search Comp PM
    Originally Posted by white_snake View Post
    Originally Posted by jay_670 View Post
    Another question how do I get wvd
    https://forum.videohelp.com/threads/411862-Beyond-WKS-KEYS
    Do I need to get client-id-bin and private-key-pem to be replaced device-client-id-blob and device-private-key in my Android device
    Quote Quote  
  8. Member
    Join Date
    Mar 2024
    Location
    bejing
    Search Comp PM
    Originally Posted by jay_670 View Post
    Originally Posted by white_snake View Post
    Originally Posted by jay_670 View Post
    Another question how do I get wvd
    https://forum.videohelp.com/threads/411862-Beyond-WKS-KEYS
    Do I need to get client-id-bin and private-key-pem to be replaced device-client-id-blob and device-private-key in my Android device
    i have used this code
    PHP Code:
    from pywidevine.cdm import Cdm
    from pywidevine
    .device import Device
    from pywidevine
    .pssh import PSSH

    import requests

    # prepare pssh
    pssh PSSH("AAAAgHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAGAIARIQlk9C5GY4kyszQnRh8TZFnxoMbWVkaWFraW5kbmJhIjpOQkFfMjAyMzAxMjkwOTM3TkJBX19fX19WSURFT1NfX05CQUVfMjYzMDk0MV9KaXRwX1JlYWNoX0hEMgA=")

    # load device
    device Device.load("D:/pywidevine-master/pywidevine/WVD/google_android_sdk_built_for_x86_v4.1.0-android_b055e439_4464_l3.wvd")

    # load cdm
    cdm Cdm.from_device(device)

    # open cdm session
    session_id cdm.open()

    # get license challenge
    challenge cdm.get_license_challenge(session_idpssh)

    # send license challenge (assuming a generic license server SDK with no API front)
    licence requests.post("https://ottapp-appgw-amp.nba.com/v1/client/get-widevine-license?ownerUid=azuki&mediaId=NBA_202301290937NBA_____VIDEOS__NBAE_2630941_Jitp_Reach_HD&sessionId=f09a683e-0623-450d-9da9-43a06422faa7&is_dvr=false"data=challenge)
    licence.raise_for_status()

    # parse license challenge
    cdm.parse_license(session_idlicence.content)

    # print keys
    for key in cdm.get_keys(session_id):
        print(
    f"[{key.type}] {key.kid.hex}:{key.key.hex()}")

    # close session, disposes of session data
    cdm.close(session_id
    but get this request File "C:\Users\11920\AppData\Local\Programs\Python\Pyth on38\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://ottapp-appgw-amp.nba.com/v1/client/get-widevine-license?ownerUid=azuki&mediaId...7&is_dvr=false
    Quote Quote  
  9. Originally Posted by jay_670 View Post
    i have used this code

    but get this request File "C:\Users\11920\AppData\Local\Programs\Python\Pyth on38\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://ottapp-appgw-amp.nba.com/v1/client/get-widevine-license?ownerUid=azuki&mediaId...7&is_dvr=false
    Of course you do, you are not using any headers. You literally removed everything related to them from the script. :S
    Quote Quote  
  10. Member
    Join Date
    Mar 2024
    Location
    bejing
    Search Comp PM
    Originally Posted by white_snake View Post
    Originally Posted by jay_670 View Post
    i have used this code

    but get this request File "C:\Users\11920\AppData\Local\Programs\Python\Pyth on38\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://ottapp-appgw-amp.nba.com/v1/client/get-widevine-license?ownerUid=azuki&mediaId...7&is_dvr=false
    Of course you do, you are not using any headers. You literally removed everything related to them from the script. :S
    Thank you. Where should I write my header or in this code?
    Quote Quote  
  11. Originally Posted by jay_670 View Post
    Thank you. Where should I write my header or in this code?
    Again: https://forum.videohelp.com/threads/411862-Beyond-WKS-KEYS
    Quote Quote  
  12. Member
    Join Date
    Mar 2024
    Location
    bejing
    Search Comp PM
    Originally Posted by white_snake View Post
    Originally Posted by jay_670 View Post
    Thank you. Where should I write my header or in this code?
    Again: https://forum.videohelp.com/threads/411862-Beyond-WKS-KEYS
    I understand now, thank you very much for your patience to answer my last question is do I need to use Android device or Android emulator to extract wvd file creation
    Quote Quote  
  13. Member
    Join Date
    Mar 2024
    Location
    bejing
    Search Comp PM
    Originally Posted by jay_670 View Post
    Originally Posted by white_snake View Post
    Originally Posted by jay_670 View Post
    Thank you. Where should I write my header or in this code?
    Again: https://forum.videohelp.com/threads/411862-Beyond-WKS-KEYS
    I understand now, thank you very much for your patience to answer my last question is do I need to use Android device or Android emulator to extract wvd file creation
    This is the latest code I use
    from pywidevine.cdm import Cdm
    from pywidevine.device import Device
    from pywidevine.pssh import PSSH
    import requests
    #
    # enter special header values here in the form 'token': ' value', each on one line - remember the quotes and the comma!
    headers = {
    "AuthorizationToken": "AuthToken1jVFNbxshFPw13hsWj6-Fwx62aRpbbRSldg49ssDGJLuLBWxs99cXu0krVW0VCT2ehpl5T 0M7W-8m45pdzvu0oO2CfConuuHkp8e9jvm03Mdg9XLq9DK_UDOE2S5N GAurWqc0u_iHNuX0H8mZ-5tqdm7UaXkchxT0fhniY0EPqRSCMS_XpXjrpuzzqbRm0H48v09 6dI2bEVYUC9obZLRgiGGlkRZQo1qAxFRxDIZVWzfpKa9tY12v5 yFXH92LN64AGJzmu5iQSE9PqCc0I2DQoce5hsTHZ0KTfGVvT3v XrEPa6m5wuWqHIRycfbNOv7wfkovF-b27tcaE-bIcs1JLwSiqWQ-ICWaQ5DVFWsm6WBVyp8oulymvQ94l-WvkozcxpNDn1495C12eQxf_CD2GwTVp7pKJvnOxaue8C9F_19m H6Van5wa4AkYZ5YIDUKgJZ1LVhFBQDAsliRBSUgKMKyEJ58CBC MUlVlJwTIBQRSjDQEvPa8KI5CBKI6vr495Hl-6mBmogJT9JoLqKTmdnf4IYyrQCfnanm9nbxijdKwwKlT82iClF kAYqUG97p4klXRFUq9v2arNqCRcNXpBu49mXcU0JNenrboOpH8 MNq7_1d_erkY2bwrh_WF_nD0d9WFD7Aw",
    "AzukiIMC": "IMC7.2.0_AN_D3.0.0_S0",
    "DeviceProfile": "eyJtb2RlbCI6IkRlc2t0b3AiLCJvc1ZlcnNpb24iOiIxMC4xN S43IiwidmVuZG9yTmFtZSI6IkFwcGxlIiwib3NOYW1lIjoiSFR NTDUiLCJ3dkxldmVsIjoiTDMiLCJkZXZpY2VVVUlEIjoiODdjN zYyNDVkY2RlNDMwMTlmMjhmMTBlNGQzZDYwNjQifQ=="
    }

    # prepare pssh
    #pssh = PSSH("AAAAVnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADYI ARIQSOe5B5JcTV2gbw07SycC7xoNd2lkZXZpbmVfdGVzdCIIMT IzNDU2NzgyB2RlZmF1bHQ=")
    pssh = input("PSSH? ")
    pssh = PSSH(pssh)
    lic_url = input("License URL? ")

    # load device
    # for example
    #device = Device.load(r"/home/angela/Programming/WKS-KEYS/pywidevine/L3/cdm/devices/emulator_1/WVD/google_aosp_on_ia_emulator_14.0.0_xxxxxc_4464_l3.w vd")
    device = Device.load(r"/Users/czm/Downloads/m3u8tools/pywidevine-master/pywidevine/WVD/google_android_sdk_built_for_x86_v4.1.0-android_b055e439_4464_l3.wvd")

    # load cdm
    cdm = Cdm.from_device(device)

    # open cdm session
    session_id = cdm.open()

    # get license challenge
    challenge = cdm.get_license_challenge(session_id, pssh)

    # send license challenge (assuming a generic license server SDK with no API front)
    licence = requests.post(lic_url, headers = headers, data=challenge)
    licence.raise_for_status()

    # parse license challenge
    cdm.parse_license(session_id, licence.content)

    # print keys
    for key in cdm.get_keys(session_id):

    if key.type=='CONTENT':
    print(f"\n--key {key.kid.hex}:{key.key.hex()}")

    # close session, disposes of session data
    cdm.close(session_id)

    After running it I still encountered error 403

    PSSH? AAAAgHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAGAIARIQlk 9C5GY4kyszQnRh8TZFnxoMbWVkaWFraW5kbmJhIjpOQkFfMjAy MzAxMjkwOTM3TkJBX19fX19WSURFT1NfX05CQUVfMjYzMDk0MV 9KaXRwX1JlYWNoX0hEMgA=
    License URL? https://ottapp-appgw-amp.nba.com/v1/client/get-widevine-license?ownerUid=azuki&mediaId...3&is_dvr=false
    Traceback (most recent call last):
    File "/Users/czm/Downloads/m3u8tools/pywidevine-master/pywidevine/nbatest2.py", line 35, in <module>
    licence.raise_for_status()
    File "/Users/czm/Downloads/m3u8tools/pywidevine-master/env/lib/python3.12/site-packages/requests/models.py", line 1021, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
    requests.exceptions.HTTPError: 403 Client Error: Forbidden for url: https://ottapp-appgw-amp.nba.com/v1/client/get-widevine-license?ownerUid=azuki&mediaId...3&is_dvr=false

    What is the reason for this
    Quote Quote  
  14. Originally Posted by jay_670 View Post
    Originally Posted by jay_670 View Post
    I understand now, thank you very much for your patience to answer my last question is do I need to use Android device or Android emulator to extract wvd file creation
    This is the latest code I use

    What is the reason for this
    Code looks correct, I suspect CDM is the problem here. Where did you get it from? It also seems to be from a very old Android version.
    Quote Quote  
  15. Member
    Join Date
    Mar 2024
    Location
    bejing
    Search Comp PM
    Originally Posted by white_snake View Post
    Originally Posted by jay_670 View Post
    Originally Posted by jay_670 View Post
    I understand now, thank you very much for your patience to answer my last question is do I need to use Android device or Android emulator to extract wvd file creation
    This is the latest code I use

    What is the reason for this
    Code looks correct, I suspect CDM is the problem here. Where did you get it from? It also seems to be from a very old Android version.
    I used the l3 DRM-generated WVD file that came with WKS-key, which seems to be from 2021
    Quote Quote  
  16. Originally Posted by jay_670 View Post
    I used the l3 DRM-generated WVD file that came with WKS-key, which seems to be from 2021
    That's 100% banned. I'll make it easy for you: pick a CDM from here and create your own .wvd by running the following command (you might have to edit the parts in italic):

    Code:
    pywidevine create-device -k device_private_key -c device_client_id_blob -t ANDROID -l3 -o WVD
    More info here.
    Quote Quote  
  17. Member
    Join Date
    Mar 2024
    Location
    bejing
    Search Comp PM
    Originally Posted by white_snake View Post
    Originally Posted by jay_670 View Post
    I used the l3 DRM-generated WVD file that came with WKS-key, which seems to be from 2021
    That's 100% banned. I'll make it easy for you: pick a CDM from here and create your own .wvd by running the following command (you might have to edit the parts in italic):

    Code:
    pywidevine create-device -k device_private_key -c device_client_id_blob -t ANDROID -l3 -o WVD
    More info here.
    i had change my wvd follow your guide,but still print “HTTPError: 403 Client Error: Forbidden for url: https://ottapp-appgw-amp.nba.com/v1/client/get-widevine-license?ownerUid=azuki&mediaId...&is_dvr=false”
    Quote Quote  



Similar Threads

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