VideoHelp Forum




+ Reply to Thread
Results 1 to 21 of 21
  1. This is the code I'm using
    Code:
    import requests
    
    headers = {
        'accept': '*/*',
        'cache-control': 'no-cache',
        'sec-ch-ua': '\\" Not A;Brand\\";v=\\"99\\", \\"Chromium\\";v=\\"96\\", \\"Google Chrome\\";v=\\"96\\"',
        '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/96.0.4664.110 Safari/537.36',
    }
    
    params = (
        ('CrmId', 'itvpnp'),
        ('AccountId', 'itvpnp'),
        ('ContentId', '10-0674-0003-001'),
    )
    
    data = '\b\x04'
    
    response = requests.post('https://itvpnp.live.ott.irdeto.com/Widevine/getlicense', headers=headers, params=params, data=data)
    and I keep getting this
    Code:
    license response status: <Response [400]>
    server reports: {"code":100100,"message":"The request is invalid. Error while parsing: AccountId. Parameter  not expected as an array"}
    server did not issue license, make sure you have correctly pasted all the required headers in the headers.py. Also check json/raw params of POST request.
    Last edited by ChemicalMisfit; 30th Dec 2021 at 15:52.
    Quote Quote  
  2. Originally Posted by ChemicalMisfit View Post
    This is the code I'm using
    Code:
    import requests
    
    headers = {
        'accept': '*/*',
        'cache-control': 'no-cache',
        'sec-ch-ua': '\\" Not A;Brand\\";v=\\"99\\", \\"Chromium\\";v=\\"96\\", \\"Google Chrome\\";v=\\"96\\"',
        '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/96.0.4664.110 Safari/537.36',
    }
    
    params = (
        ('CrmId', 'itvpnp'),
        ('AccountId', 'itvpnp'),
        ('ContentId', '2-7537-0338-001_31'),
    )
    
    data = '\b\x04'
    
    response = requests.post('https://itvpnp.live.ott.irdeto.com/Widevine/getlicense', headers=headers, params=params, data=data)
    and I keep getting this
    Code:
    license response status: <Response [400]>
    server reports: {"code":100100,"message":"The request is invalid. Error while parsing: AccountId. Parameter  not expected as an array"}
    server did not issue license, make sure you have correctly pasted all the required headers in the headers.py. Also check json/raw params of POST request.
    Whats the mpd address?
    Quote Quote  
  3. Originally Posted by T33V33 View Post
    Originally Posted by ChemicalMisfit View Post
    This is the code I'm using
    Code:
    import requests
    
    headers = {
        'accept': '*/*',
        'cache-control': 'no-cache',
        'sec-ch-ua': '\\" Not A;Brand\\";v=\\"99\\", \\"Chromium\\";v=\\"96\\", \\"Google Chrome\\";v=\\"96\\"',
        '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/96.0.4664.110 Safari/537.36',
    }
    
    params = (
        ('CrmId', 'itvpnp'),
        ('AccountId', 'itvpnp'),
        ('ContentId', '10-0674-0003-001'),
    )
    
    data = '\b\x04'
    
    response = requests.post('https://itvpnp.live.ott.irdeto.com/Widevine/getlicense', headers=headers, params=params, data=data)
    and I keep getting this
    Code:
    license response status: <Response [400]>
    server reports: {"code":100100,"message":"The request is invalid. Error while parsing: AccountId. Parameter  not expected as an array"}
    server did not issue license, make sure you have correctly pasted all the required headers in the headers.py. Also check json/raw params of POST request.
    Whats the mpd address?
    https://itvpnpdotcom.cdn1.content.itv.com/10-0674-0003-001/18/1/VAR028/10-0674-0003-00...7PCFZAZHWZVIBA
    Quote Quote  
  4. Thats the wrong mpd. That one won't work...

    Basically there are two mpd's...
    the one you posted
    Code:
    https://itvpnpdotcom.cdn1.content.itv.com/10-0674-0003-001/18/1/VAR028/10-0674-0003-001_18_1_VAR028.ism/.mpd?Policy=
    (note the cdn1 and Policy=)
    and the correct one
    Code:
    https://itvpnpdotcom.content.itv.com/10-0674-0003-001/18/1/VAR028/10-0674-0003-001_18_1_VAR028.ism/.mpd?hdnea=
    (no cdn1 and hdnea=)
    the bit after the = is different for both.

    It will give you one or the other. Often I get the wrong one a few times and then the correct one after a few refreshes. I don't know if there is a way of forcing the correct one each time.
    Quote Quote  
  5. Originally Posted by T33V33 View Post
    Thats the wrong mpd. That one won't work...

    Basically there are two mpd's...
    the one you posted
    Code:
    https://itvpnpdotcom.cdn1.content.itv.com/10-0674-0003-001/18/1/VAR028/10-0674-0003-001_18_1_VAR028.ism/.mpd?Policy=
    (note the cdn1 and Policy=)
    and the correct one
    Code:
    https://itvpnpdotcom.content.itv.com/10-0674-0003-001/18/1/VAR028/10-0674-0003-001_18_1_VAR028.ism/.mpd?hdnea=
    (no cdn1 and hdnea=)
    the bit after the = is different for both.

    It will give you one or the other. Often I get the wrong one a few times and then the correct one after a few refreshes. I don't know if there is a way of forcing the correct one each time.
    Ahh thanks even with the correct one I get: license response status: <Response [400]>
    server reports: {"code":100100,"message":"The request is invalid. Error while parsing: AccountId. Parameter not expected as an array"}
    server did not issue license, make sure you have correctly pasted all the required headers in the headers.py. Also check json/raw params of POST request.
    Quote Quote  
  6. I can only assume your headers are incorrect. What's the page of the video and I'll have a look?
    Quote Quote  
  7. Originally Posted by T33V33 View Post
    I can only assume your headers are incorrect. What's the page of the video and I'll have a look?
    https://www.itv.com/hub/joanna-lumleys-home-sweet-home-travels-in-my-own-land/10a0674a0003

    These are the headers I get:

    import requests

    headers = {
    'authority': 'itvpnp.live.ott.irdeto.com',
    'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="96", "Google Chrome";v="96"',
    'sec-ch-ua-mobile': '?0',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36',
    'sec-ch-ua-platform': '"Windows"',
    'accept': '*/*',
    'origin': 'https://www.itv.com',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    'referer': 'https://www.itv.com/',
    'accept-language': 'en-GB,en-US;q=0.9,en;q=0.8,es;q=0.7,ru;q=0.6',
    }

    params = (
    ('CrmId', 'itvpnp'),
    ('AccountId', 'itvpnp'),
    ('ContentId', '10-0674-0003-001_18'),
    )

    data = '\b\x04'

    response = requests.post('https://itvpnp.live.ott.irdeto.com/Widevine/getlicense', headers=headers, params=params, data=data)

    #NB. Original query string below. It seems impossible to parse and
    #reproduce query strings 100% accurately so the one below is given
    #in case the reproduced version is not "correct".
    # response = requests.post('https://itvpnp.live.ott.irdeto.com/Widevine/getlicense?CrmId=itvpnp&AccountId=itvpnp&ContentId =10-0674-0003-001_18', headers=headers, data=data)
    Quote Quote  
  8. I get these headers... (and having tried them it gives me the keys)
    Code:
    import requests
    
    headers = {
        'authority': 'itvpnp.live.ott.irdeto.com',
        'pragma': 'no-cache',
        'cache-control': 'no-cache',
        'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="96", "Google Chrome";v="96"',
        'sec-ch-ua-mobile': '?0',
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36',
        'sec-ch-ua-platform': '"Windows"',
        'accept': '*/*',
        'origin': 'https://www.itv.com',
        'sec-fetch-site': 'cross-site',
        'sec-fetch-mode': 'cors',
        'sec-fetch-dest': 'empty',
        'referer': 'https://www.itv.com/',
        'accept-language': 'en-GB,en-US;q=0.9,en;q=0.8',
    }
    
    params = (
        ('CrmId', 'itvpnp'),
        ('AccountId', 'itvpnp'),
        ('ContentId', '10-0674-0003-001_18'),
    )
    
    data = {
      '\b\x01\x12\xD6\x1F\x12A\n?\n)\b\x01\x12\x10\xB6"\x9B\xCB\xC4\xE3K\x95\x9D\0\xCC\xD9 \xED\xDBK"\x1310-0674-0003-001_18\x10\x01\x1A\x10\xFD\x8C\xCF\xD7U4\x8B\'\xFE\xCD\xBDbdb\xA5\xA9\x18\x01 \xB1\xE4\xB8\x8E\x060\x158\xC3\x97\xB8\x94\x0EB\x80\x1F\n\x14license.widevine.com\x12\x10\x17\x05\xB9\x17\xCC\x12\x04\x86\x8B\x063:/w*\x8C\x1A\xC0\x1C\x9B\x01\x80\xC4n': '\xA7\x83\xEC\xDB\xC7\xDC=9s\x8A3J\x05\xE70w\xD5!\x97\xCF\n\0|\x80\x8C\x9E\x8Eq\x8F\x8E\xC4\xA7e\xCEeG\xF3NN\xD8\x1D\x81\xFCJd8\x06\xC0h\xAE[\xFB:#Cr\xB0\x82p\x9A\xA6\x0F\x1F\xC9\xA3\f\xC1\xD2\xAE\x8D\xC0\x18\x126x\x8E\xA1k\xC5\xE3hQ\xF2K\xF7\x94\x11\xF3f\x9A\xF9\x11\x88g \x1F\x96<d\xA3\xF9sa~\xE3\x97\tX%<\xE3Vr\xBB{s\x05\x88\xBA\xB3K \x04,\x81*\x07\xBE\x91\xF4\xB3!\xC2\x9C\xB6\x93\xA6\x86\x03t\xC7^\xEF\xBA5\xD7\x13\x1E\x14\x8Ad\x97\\$j\xA2m\xFD\xCFN\xAE\xBA2\x06\xA8\xD8\xDF',
      '\xE1\xCF_G\xF8\xD0\xBBvc\xDD\xBCc_\'\xC9c\x066\x91\xCF\xB4\xBA\xD6\x0E\x0B\xFD\xBB\f\x91n#w{P\xFC_Sn2\xD6 \xB4\x02(\xD0Q\xCA\x0B4f8\xF8\x96)\xC72\x12\xF7/\x99m\xD1\xA2\x1F\xF5C\xD8\x85\xDDP\xE4[F\xF5C\x93qR\x1Bi_\x05i\xC8\xB4d\x9FY<\x8C?\xD4sz\x86\xE9\xC80\xAB`\xD7u\xFA\xF3\xA8\xBAz\xBBQ\xFD\xB6\xB1\xD6\x10H3x"v\xA8\x01\x98\xE7\xF2\r\xB0\x0E\x81\x16\xB8\x10{\xE7o\xA3\xD5\xCE~\x8A\r\xA4\xA1\x0EH\xBE\xB6J\xC3\x18\x13\b/gY\xEF\x03\xE3-\xDC\xCA\x19\x93\xDB\xF6\xBC\xBAV\xB6_?\x89\x91\x94\xCE {\x18\x83y\x1A\x102\xC1\x97F\x99\x15\xC1{\xAAvC>Dq~\x97\xB1E\xF1Rm\x98]\x8Aa40\x91\x07\xA1\x1B\xDFY\x073Y\x97\xA7\xC5\xAF\x1B\x8B\xCF\xDER\xA2\xE1\xA0\xA6e\x9Cj\xBD\xAE"l\fi\x14\xA3\xA6^\x06\xF5\x97\xC1|8\xF5\xF5\xCA\x87\xBB\x0E]\xB8\xB5\xC0\x05iKf\xB6:\xB0V\xA46\x8F\xF1\x04x\xAE\xBC\xB8\xB2\x89]\x9E\xE5O\x8EZ\x18\xB1[1 *\xE1\xE5j\x0F\xBC\x93D\xF8\x95\x9A@\fi\x05\x17\xE3\xD2\xFFD\xB5\xF6\xCF1\xC6\xC2\xE0\xCB\xA3Dj\xD7\x1E\xB5\xEEeP\r\xD8\xBC"\xC7\xE8%\x9E\0\0b@ \t\xC8|iW$\xE0\xF8\xD5\xEB\x04\x0EKR(?\xE2$\xD7s\xFE\xAE.\xA0\xF2~\xF2\xD6\xA5"\'R\x10\x8C\xA0\xBEY\xBC\x1E\x92w\xB9qa\x1A\x85\x88\xF3\x9A\xF5\x9B\x11\x1E\x18J6\xC5\xFD\xF6H\xCE\xEE\xC1(?\x9C\x8F\xB5\xA3 \xCDD4\x88.A\xE3\x8AC\xFD\x16\xB5\xC8\x1B\xAFa\tEf\x8DM': 'c\xBB\xE5\xE9\xFDg\x8B\x80\xEC\x9Em\xE1o\xC7\xD9X\xFCM\xFE=\xAE\xF4i#\xD7\x0BW\xFEN\xDE3\x8AA\xB9\xD4\x0B\nL\xCA\xD9o\x1E\xDE\xCE\xB3\\\x19\x88\xF0\r\x99\x99\xF5v\'~\x92\xB9\x1F\x17\xAE3',
      '\x12\xD4\xBE': '',
      '}\xF4\x96\x89\x96\xD7/l>\xA6\xAA\xD9]\x8D}Rf\x1A19C\x9B\xC7\xB8\xA03@c7\xA9-~\xF4\xAC\x196i\xE6)\x80\x0E\xCF\x809\xC2\xE0\xBC\xDB\xA7Bq\x9C3u\xC9\x16A\xB3th\x8Aj\xB8X#\xA8F\x82:H<Fn\x97\x9A_\x8A`Tx\xCA\x03\xF2\x9D\xAA\xB54\xBD\x7FF\xB8\x99\xBEe\xF5\xFCR\xD6\x84\x8E\x86\x81\xCB\f\x1EZU\xB8\xE8\xB3v\xB4\xCD\xC1\xEF\xF5\x02\xBB\x1BnJ:a\x842(\xFF%."\xD4Z\xD3\xEF\xC37\x9Ap\xFA\xA9\\\xE41aU\x04\xFC(\xF4\xD5\x0F\xAD\x1C\xB7\xB3\x9A\x1C\x8D\x81o\x1E\xE2\x809C\f\xB7a\xE5K\xF5\xAF\xA5\x9F{\x828\xBF\xA2?\x10\n\x8D\xED[\xC5\x1D\x07\xAA\x93\xB9\xB9\x93\x88\xC0\xCA\xB1\x19Y\x18\xE3\x87u\xB7\xEE{\x07\xD1\xF8\xD0o\xF8\x1DJ\xB9Z\xD4\xB0r5\x16\xCAW-\xC3\x13\xEB': 'dwSeWX\x16\x1B(\x06\xA6\xBA\xA7F^47j\xD8\xBB\xCEa\x90G\xF0\b\x11\x86\xF1\xF8\x8A\xC1\xE0<%\xC3Z~u\xDC\x839%\x86\xC1T\xDC\x99\xA2\x06\x1C\x95\xC8/\x93\x1E\x80\xD8=\xE3{(j\x0F\x9A\xA1\xFC\x16f\xA6\xEE\xFD\x07\xA1\xC4\xCA\xD3%\xB2\xFC\xD5\x99"\xF3\xE8\xD6\xB3\xA3\xC2g\xA8fMk\xE0\xC2\x93\xED\bVG\x85\xAE\x17\xBD\x9B\x8A\x01\x85\x97h\xA6\x7F\x86\x8EP1~\xE5\x9BrK\x8F\xB5H7\x11/\x13\xC4\xC4 \xFA7K\x87\x9C\xDA-]q\xD8"\xE9\xEA6V7k\xC6\x16T\x99%\xE6d\x917\x02\xAB\xA3\xDF\xB0\xA2\xC4\x8B\xC1M<\xC5\xFF\x86\xE2\x148\xD0\x0B\xB9\x12\xFA\x9B!\x11\xB5\xC6E\x1F\xE8\xDA\x1D\xDCQ\x93\xBAd\x8D\x1C\x95\xCF\xAB\xB6\xDD\xF0\x84=y\xFA\x0B\xE8-\xF03\x80\xE1u\t\xD5w\xFB\xEE\xF0\xCB,v_\xBBS\x90v\x1C\xCE\xE1\xE6\xC4\xC6\x18\xF6L;L\x92\x930\xE3\xE5\xC7\x93\xBBW\x8A\xAD\xE9\n\x84\xF3\x9E\x98?\xECfQ\x8F\xDE\x8Fm\x17t\xFB\xEB\x93\x8D\xDE\xF2\xF1\x13\x9F9P\xFB\xDA\xE1\x88\x8D\xB4\xAD\xEE\xFA\x0B\xB49\xBCq\x18Y\x8F\x11H53\f\xCA\xB8#\x01e\xAAK \xBB\xA6u\x91A\xE9C\xBE$y\xDBy\x90lX\x19v\xA9w\xBD\xB0\xFE\xE7rO @ \x82\x16B\x94*\x97\xA1)\xBF\xC1=w\xB2\x14 \x0Fr\xA5gJ\xC1\xEF\x7F\xBAr3\'\x9CA/,\x7F$_\xF8\xCF_\x93\x7F\t%*a\x01m\xC1O\xB5#\0/<*CmP\xB1\xFC\xAF\xC1*\xFAh\xF1\x96\xCD\x10\xC07g9\xD0\x0B,\xF9\x0B\xC7*XMj\x9CTS.\x03\x03\x98^Q\x8F\xE1',
      '\xA5vYsy\xCD\xEBg\x81BO\xB1d\x1B\x1Ef\xFDgI\xAF\xE7q.e\to\x80\xBC\xE0\xD0{\xA8\xAC\x1Des \x12\xB9\x9Ea\xEC68\xEC\x01l\xF9An\xEF\x812\xC0\xD7\xF1\x81\xF0\xD0\x9E\xDFa_\x90\xF9)\x80X/\xB6H{027{\x1E\xB8_8p\xB9\x1Ccf\xDC\xC7\x19\x03\xF5\xE7\xD6o\x97\xA7`?~\xF1\xDFw,x\x07N\b\x93\x8B\xE5\xA9e\xFB0\x85\xB9\xE95)\x88/\xE2\xF2\xC7\x10\xD8\xFCc\xB1S\x07\xD3\xA6\xC2\xC9h!\x17\x8Az\xD0\xAD\x8A?\x84\x8B.\x19}cV\xD4\x1EL}\x90\x907\x96P\b\x8A\xCAd\x9B\xC0ls[nh/ey[\x82g\xE9\xF0\xBB\xD9#;\'_\xB60w\xD6\x95^7\xAE\xD0w\xD5\x94\xA9|6\x13\xE4!\xD7': '',
      '\xFFnG\x8C\xDD\xE9\x96\x81\xA6\xB1(\xEC\x91\xD8(\xAC\xFE4\xB0\xBD\x11\x87': '',
      'Ab\xB4:\x9BzRR\x89\xC2\xD3\xF7\xF9\x02\t\x1D?\x87\xD7d\xA4\xA3\x9B\x8D4e`A\x9F\0\xFB\xCD\x88P\xC6\xC8\xEB\xCBP\xF6(\x8Fb7\xCF\x1C\xD6L\xBD\x82\xB6pu\xC7\xEC%\x10\b6\xEEr\xD0\\:]}\xB1\x90/V\xDAl\x01]G\x8BA\xB5\x8F!\xE9\xF3 0^\x90\xA1\x9B\xC15\xFDz1x\xB0\xF8I\xC2\x05(OF\xA5\x1A\t\xA3': '\xC99\x9B\xD8yo\xBBeU?\xBE\xF5V\xA4\xC4\xE3A\xF28\xEA\x8A\xA7\xFC\x10\xEE\xA2\xCA\x07\xB3\x96\x1Fo0\xC0\xD7\x0B\xA8yL\x90\n\\b^\xD4i\xC6\xCE\xC3\x1F\xBC\f\x80f\xC0/\xCC\xF73\x17\xB2\x0B\x9C\xB3\xC75\xAE\x02\x0Fz\tA\xB5\xF6\x80T\xA4t\xB2\x7Fi9\x025\x81(k\rlk\x171\'\xA6\xF6\xB0\x87\x83\xE4I\x0F\x05Oy\xEEg\xFA\\\x15\x01\xF3\x97\x18\x8D\x8C\xC3\xF6^b\x1B\xB1>.\x04=\xF71\xE8\xA6\xCC\xBBN\xE0\x947\x16\x9B\x87\xEC\x04\x1E/\xB4u\x84{\xF8<\xA9\xF9\x16\x07QC\x0B\x1F\xD9\xDEG\x89L\x14\xCD\xEB\xE3W\x97\x19\x0Fa\xEE\xAC\xCC \xA9_\x9E\x1A\x8B\x12\x8B\x1A\xC5\xFE\\\xB9\xE8JQ\xAE\x02\xD2\xFA\xA7\xF5\xBA\xC6\0\xD2\xB0l\xBDY\xFA\xE9\x0F^\xABq\xC6\xEE\xBD7\x03\xB6\x0E\xF4\x92\xA5s\x01\x8E\xB2[\xBA\xD5\x18\xB6\x88\xE7\xDD>%/\xAB2\xEC\xDA\xF6\xFF\xC1\xEBs^\xB33ry.t\xF8\x96\xEA\xD0\'\xA6.c\xBF\x85Cn\xA1\xE4\'\xF2\xE3\xE1\xC6l,\xE4\x10\x9D\xD5\x87\x17G\xF5,\x15\x87\xF4\xD4\xA8\xAD[\x8DO\xF97\xFF\xFD\xC5\x98|\xF8',
      '\xA9\x16\xF0c \x93\x12h\0F\xFAq,\x85F]\xCE:\x90\x1Fq|9\x7F>n\xE0\xA7\xA5s\x03\x9C$\x89P6i\xA5\x98P>\xBFssfP\x10\xB25\xA5\0\xCE\x18\xD9\xBF\x10\xE6\xF3\xF5\x7F\r\x12\xACY\xC6\xC5\xF6/V\xBA\xE6\x1A,\xDB\xC1S@\xF0\xFC\xB1\x18\xF4\xC2ji\x9DA\xB7\xDBl!\xC8\xF5M\x81\xCD\xB3\xF1\x12bA\xF7\xD8L\x8A\x90K\x85z]\x80\x8F\x98e@\xDC\x18\xC1a\x18\x11\xAA\xDC\xDB\x96e\xCEm\x11\xA4b"\x1C\x1C\xDC\xD2\xCE\xB2\x98v\x89\xE2\xD4S^ \x8AQ': '',
      '\xE5\xD1\xF2\xBBg\xC8\x077\x1Ena\x99\xF2\xE3\xF0\xEBy\x8D\x10\x88': '',
      '\x14Q>\xFDc\xCA\xE4\x8B\x1E.\xBD\xF9P\xFB^\xAC\xCC\x07\xBD#\x18\x92\xB6\xCA\x7F\x9F\xF6C!\xA9\x000C4T9\xAA\xCDM\x16\x84\xC4R\xB9\xCD\xAA\xDD64\x1F<\xEDVAc\xA6|A\xBC\x02d\x06#\x8A': '',
      'M(d{fQ\xC2\xD9Nl\xB8\x0F\xC1\xA8\x1DF\x1AI\xB6\x86\x04.l\x95\xDA\xFE\xC4h}Z\x7F\xBE\x1Cp"\xE8\xD6\b\xE3\xF2\x8C\xCD\xEE\xA1X~\x99\xA9\xD5s\x8F8y\x14\xC5\xC8\xFE\xBDy]*o,xX\xFB~\xAE\xF2\xE3\x0B\xB4\rm\x18\x99Z\x1A*\x80\xD6nC3\xE8tYl\x8C\xA3Z\xEBlo]\xF18\x91\x81\xC6\x01|W\xB9u\xD9\x02\x04H\xDE\xF8\x8D\x1C\xD7\xD8\xFC\xB4\xC0\xC1\xF4P\xDB\x8A\x8B\xE6*\xE7\xE2\xF7t\xDF\xDAK%y\x01\x07\x86\xCB\' <\x81\xFAJB}\x9C\x81y01\x8E9\x11u\xBA\x11\x9E<\xD8\xD5\xAE\xB9\x9A': '',
      'tz\xFA\x89\xE1 2P\xFC\xE1\xC3\xDD\x9F\x98\xDA\xD0s!{\x1B]T\xC8\x88\x15V\x05\xF3e\f\x9E\xFE\xA5\x1E2/\x07\x8D\xCE!\xBED5\x9A\x8Dl\xC1go\xB2%2TB\xE0\xF3\xC5-\x99\xF0A\xDA\xBD\xB7\x14U\xFC\\\xBCQ\xE8\xC4\xE7\x9C\x9Ac7u\x84\xB7\xD6\xADZ\0\xE5\x8A\xD3\xFAb9\xB7\xB4\x0E\x8B\xDD\xEE\x1BA\xAC\x81\xC6\x1F\xF1\x81_\xB7\x19\xD9\xD8{@\xD9.~a2\xEFS\xCA*\x14\xD1\x97\x05\x8B\x11\xCF\x8D\xEA\x83N\xF1\xB6\xB4P\x8Ccm\xE55\xCB9c\xD0\x8E_W\x13\x86f\x1AQ\x99C\x19\xD1\x05\xC2\xA3F\x87\0I\x07{#\x9F\xB9\xF5\xC0Q\xF3K\xBA\x83\xC7\x9B\xA3\x9AO`\xBB\xE5W\xE6\x96\xFF.\x9FQs\xEAn\xBCb\xA7\xC7k\x97[1\xDA\x98\x11\xD6\xE8q\x97\xFB\x97t9\x1Bb\x16\x814\x88\xFC\xAF$/H7p"\xB7\xDA\x1FX}\xD4okdz\x03\x13<7\xCB\xC8\x16\xA7m\xEB\x0E\xB5\xC0\xBFO\x8C\x02\x80\xE6\b\x93.\x11': '',
      '\x8C\x8E\x9E\xC9\xC9 \x12\xCC\xD5\x7F\x9D\xA2u\xE7X}\x04k\xC4\xB7\xA4\xBE\x17?\xC3\xAC\x11L\xC9\xA0Q\x05\x15\xB5\x91\x02\xBE\xC3o\x86\xB4%R\xB3\x07>\xB1\xB2\x1B\x89\x02\x87\x87\x8DP~`\xD46R\xFE\xCCc2\x15o\xA6RB\b': '\xBB\xE9\xEB7\xF4\x94=\xB8J\x8BIWi\x04\xD2i(\xA9cG\x13"\x18\xF8\xF6\x19:\xE6\xE3\xA9z\xBC\xFA<\x88\x10 B\x90\x95\xD9\xF4\xB50\xAC9\x8F\xCF"\xA0\xBD\xCF\x9D4\xEAJ\xB1\xE5\x01x\x9D\xF3X\x91\xBC!\x85\x0F\xD3\xCEE\x1A\xAE\xBB\x1E\xC9\xFD\xC2@\x8B\xA4\xD3.!\xE35cI\x14\x83\x8A\xDC@\x9C\x03\x1A\x98H\b\xD1\xE1z\xFC\xB0\xE7B\xE0\xBEH\x15^\'\xD9Xd^\xC1v\xA5\x9C\x1E,u3\x9D\xC6\x89\xC9\xDC\xF2\xE9\xAF\xEF5a\xD9\x98?a\\\xB2$^\xC4\tf)\xBC\xE2\r\xE4(\xCC\xDF\xD9\xAF\x8B\x8As]7\xD5R\x97Q4\xB0\xDA\xA65N\x86Rez\xD8\xE5L\x9B\xCB\xC9I\xDB\xE6\xCD\x15 \xBD\xC9\x9Dg\x91\x87;Hi\xB0\xF9\xD2-\xA2\x19\x80\xFC\x1FFs\xD6\x8D9$\x02\xE9\x8A\xD5MJ\xB6\xD1\x9AQ\xC0\x12\x1E\x1EWl\xEBrk\xEC\x01\xE5U\xE9\x15\xA4\xB9\xF1{=d\xE5= \b\x155\xB2\x0E}\xEC\xF6:\x02\x8A\xAA[\xB18iL\x82\xCCqx\x9A\xC6gk9\xBE\x05\xA3\x9B\x8F\x98\xA4\xF6F\xA7\xF1\t\t\xE6\xEB\x99m\xCB\'^\xB8\x87iKb\x1ClOX\x1Cf\x12\xF1\xD0\x99\xAB\x88\x84!\x96\x1C\x07\xAC\xC0\xED\xF5\x12\xA4\xBA\xE4\xFA)\x19\x8E\xD1\x1FH\xD3\x9CI\xC1\x96\xEE|\xB5\xA9g\xBF\xDB\x03\xA5\xD7\t\xCE@\f\xDC\x8C\xAFL\x1FJO\xC3\x83\xAD?',
      '\xED\x7F\xBE\xF7\xB5\x8F\x80\x7F\xDF9#*\x1E\x88\xC7\xBD\xD92\xCC>a\xBC(\xB3\xEF\xF1\xFC\xF8\x0E\xEC;\xCCU\xDC\xBEEg\x8E\xD7I\x0E\x1A\x11\xA3\x8FY\x8D\xD3\xDFU\xFE\n\x04\x7F\xD9\xD8\x17\xAA\xF860\xB4f\xE9\x8A\x078\xDF\n\xA9\xE6O\xB5\xCA\xA3\x1A\x96F\xD8*\x0B\xA9\xD9\x1F\xDF\xC3\xD8#\xA5\x17*\xD2\x11\x02^\x88': '\x03\xCE\xE43\x82g\x16\x92\xE8\x1F8A\x8E:I\xC14h\x96\x07\xB3\xC1\xA4A\xF0\x1E\x99\x11\x14\xEA\x06aP\xDB`\xAA\x84\xF4\xAB\b2\xB6\t\x93\xD4\x85\xF6ROTd\x894]Z\x82\x02|\xADq\xF9\x15\xD5s\x1Bsa\xAE|\xC1)\xAFS\x0Fj\r\x1C\xB5\x92\xEB\xB3>^\xE2\xD7-;\x19\xD1\xAC\r\x15{\x0F\xE0\xF6\x87\x10<\xD5\x84u\x0E\xC5)\x81\xB0\x07\xF1\xE8\xCD \xDC\xB6\xAD1\x9E\xD0\'\xEE!\x1Cv3P1S\x9D\x84-\xCB\x9D pj\x86\x03\x05^\xB9VN\xFB]\x0FfH\x11t`\xB3\x8DY\x03\xBD\x11\x87"k\xBDu7\x1D\xBC\xC1\xD2^\xD1\x9F\xFE\xF3\xD1d|\xF7\x97`\x8Cu\xA3/\xD9!(\xFDj]%\x0B\x81B*',
      'B\xB9@[[c7\xAF\xBA(\xFF\n\x8C\xFB\xFD Y\x18\x9B\x7F\xDA\xF9\f\xF1S2\x11 \x013\xC2\x1B\x19\x91o}': '',
      'X\xC1.D\xFC\xDF~': 'i\xD7\x03\xA7{\xD0\xEE{1\xC1\n<\xC7\x9A\xDB\xC2\xDB\x8B\x05\xB0M\x1A\xA4\xAF\xF3J\xCC\xAF\xA1k\x9E(c\xC7\xF9\x18\xE6\xF7x\xDB\xE5\xD6\xB0m\xD8\x8A\xFD0\xFB\xB4\xE5\x06;s\xB9ND,6\xC0^\xC3\x85<A\xE9D\xEDR"\xD8*\x18Z\x05r\xD93I dD\xE6\xE2\x18\rU\xE6\xE3\x807\xA7\xF2\xEC\xA7\xB5\x97\xA6\xF7 8y\xDA~\xA6`;qe/\xF7>\xD3\xF5\xFE\x8B\xDD\xE7\xAA\x99~\xB9\x13\xAF\xE9\xAAt\x80\xFF[a\x97\xE2\x19\x94HM\xDC.\xED,\xD6\x855tq\x8B\xC8\xDAW-jg\xE7e\x82\x87\x8E\x19\xB0\x80\xE1',
      '\xE6\x18\x87[e\xA8\xA5\xDDl\x81\x9E"\xFB\xBD\xA2\xAA9\xD5': '',
      '\x86\x88\xB6\x93\xD4,\x8E\xE7$3\xA8\xCA': '\x13\xBE\xA7\xB4\xA4\x03\x9F\xA036\xC3\xB9R\xEC!\xE5\xFB\x18,\xDFN\tl\xBE\xDC\xC5l\xF3!T\xDF\xFEI\xFF\xD2a\t!\xBD\xAAD\x864\xBAwq\xA5B\xCD\xC0m\x18\xCFph[6\x8F\x1B\xBF\xA1\x9B\x14\xF4\xFD"\x10\x97\xB9\xE6w\xBC\xD01]G]\xB5\x8E\xA4\xBBvd*\x80\x02\rs\x8E\x92\x1D\r\x979-\x02n\xDF<\xA3\x19\xCF\x1F\xEA(d\x95A\xBEd\x95\xBENFJ\x95\x82`\'\x0EN\xB5W^x\xD6"\xA6D\xFA\x10\xC3\f\xE6\x7F\xD3\x05\xB6\x15\xCB7\x1C\xDFT\xE1\xCFOH\x93S\xFFa{\xF7@Hx\xF4\xA0\xC4\xDFjql\xF4\xD1\x02v\xEA\xF0I#\x17a\xE5"U\xD2J\x84\xDC (Pl\xB5\x8Axa\xDEDD}\xB9lL#\x84\x01\'$\xD9\xFA\xDC\xE5\x1ClG\xB7\x9Bs\x91\x8A\xCF\x03\xC6\t\xBBY\xAB=\x9Bm\x1FXb\xA2\xBBM\xFF\x04\xA8\xF1W!\x01\xF2Du\xF59/\x8F\xD3\x83\xCD\xFA!\x1D\xCC\xD6<\xE9\x18c\xE40\xB4M\xDD\xE5\b\f*J\xB1|=\x966\xB4\xB7\x14<\xA1\xDC\x17\b\xA9\xC5xB\x14\x86\xB5\x1DLYI\0\xDB\xB1G^\x1A\x04\x1EoG\0\xF40\xBE\xB4\xE6\xF3n\x8EGfp\x9D\xB4\xE8\xCDP\x9F\x1CX\xEBx\xD2\x11,H\x85\xD1\xE8\x94~I\x11\xFDV\xEDN\xF8@\x82\xDC\x93#\x1A\x80\x01i,@\xD04;\xF6',
      '\x9B\xCC\x12\xCC \x7F\xA2\x906\xED\xE6\x94\xAF\x87\xC7\xB5\0\x17\xAE\xDA\xBEc\x9Ek\xFEE\x9E\x04A\x13\xC7H\xBCZ\xC1\xFFqj\xCA\x91\xF5\'T\xDA|\x92)\x01\xB2\t2\xE0{%"\'j\x98f\xD8\xCF\x951\xE5V\xCD\xED\x01\xC3\xB1\x91\xBF$z\xF0E\x105\xA3T\xA3m\xE7\x8E\x81B\x89\xE1\x855\xD1\xA7b!\xF5\xAEb\x90\xD0o\x19J\xD7\x1C\xE6\xA6.\x13\x8A^1\x9F:\xF6e\xF9\xC7\x14\xFDcJ\x14\0\0\0\x01\0\0\0\x14\0\x05\0\x10\xE2\x8E\x0B\xC3\xA5\x8A[\x9D': ''
    }
    
    response = requests.post('https://itvpnp.live.ott.irdeto.com/Widevine/getlicense', headers=headers, params=params, data=data)
    
    #NB. Original query string below. It seems impossible to parse and
    #reproduce query strings 100% accurately so the one below is given
    #in case the reproduced version is not "correct".
    # response = requests.post('https://itvpnp.live.ott.irdeto.com/Widevine/getlicense?CrmId=itvpnp&AccountId=itvpnp&ContentId=10-0674-0003-001_18', headers=headers, data=data)
    Yours looks like its missing a whole load of data? I think there are usually at least two POST requests to the lic server... try the other one
    Last edited by T33V33; 30th Dec 2021 at 16:34.
    Quote Quote  
  9. Originally Posted by T33V33 View Post
    I get these headers... (and having tried them it gives me the keys)
    Code:
    import requests
    
    headers = {
        'authority': 'itvpnp.live.ott.irdeto.com',
        'pragma': 'no-cache',
        'cache-control': 'no-cache',
        'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="96", "Google Chrome";v="96"',
        'sec-ch-ua-mobile': '?0',
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36',
        'sec-ch-ua-platform': '"Windows"',
        'accept': '*/*',
        'origin': 'https://www.itv.com',
        'sec-fetch-site': 'cross-site',
        'sec-fetch-mode': 'cors',
        'sec-fetch-dest': 'empty',
        'referer': 'https://www.itv.com/',
        'accept-language': 'en-GB,en-US;q=0.9,en;q=0.8',
    }
    
    params = (
        ('CrmId', 'itvpnp'),
        ('AccountId', 'itvpnp'),
        ('ContentId', '10-0674-0003-001_18'),
    )
    
    data = {
      '\b\x01\x12\xD6\x1F\x12A\n?\n)\b\x01\x12\x10\xB6"\x9B\xCB\xC4\xE3K\x95\x9D\0\xCC\xD9 \xED\xDBK"\x1310-0674-0003-001_18\x10\x01\x1A\x10\xFD\x8C\xCF\xD7U4\x8B\'\xFE\xCD\xBDbdb\xA5\xA9\x18\x01 \xB1\xE4\xB8\x8E\x060\x158\xC3\x97\xB8\x94\x0EB\x80\x1F\n\x14license.widevine.com\x12\x10\x17\x05\xB9\x17\xCC\x12\x04\x86\x8B\x063:/w*\x8C\x1A\xC0\x1C\x9B\x01\x80\xC4n': '\xA7\x83\xEC\xDB\xC7\xDC=9s\x8A3J\x05\xE70w\xD5!\x97\xCF\n\0|\x80\x8C\x9E\x8Eq\x8F\x8E\xC4\xA7e\xCEeG\xF3NN\xD8\x1D\x81\xFCJd8\x06\xC0h\xAE[\xFB:#Cr\xB0\x82p\x9A\xA6\x0F\x1F\xC9\xA3\f\xC1\xD2\xAE\x8D\xC0\x18\x126x\x8E\xA1k\xC5\xE3hQ\xF2K\xF7\x94\x11\xF3f\x9A\xF9\x11\x88g \x1F\x96<d\xA3\xF9sa~\xE3\x97\tX%<\xE3Vr\xBB{s\x05\x88\xBA\xB3K \x04,\x81*\x07\xBE\x91\xF4\xB3!\xC2\x9C\xB6\x93\xA6\x86\x03t\xC7^\xEF\xBA5\xD7\x13\x1E\x14\x8Ad\x97\\$j\xA2m\xFD\xCFN\xAE\xBA2\x06\xA8\xD8\xDF',
      '\xE1\xCF_G\xF8\xD0\xBBvc\xDD\xBCc_\'\xC9c\x066\x91\xCF\xB4\xBA\xD6\x0E\x0B\xFD\xBB\f\x91n#w{P\xFC_Sn2\xD6 \xB4\x02(\xD0Q\xCA\x0B4f8\xF8\x96)\xC72\x12\xF7/\x99m\xD1\xA2\x1F\xF5C\xD8\x85\xDDP\xE4[F\xF5C\x93qR\x1Bi_\x05i\xC8\xB4d\x9FY<\x8C?\xD4sz\x86\xE9\xC80\xAB`\xD7u\xFA\xF3\xA8\xBAz\xBBQ\xFD\xB6\xB1\xD6\x10H3x"v\xA8\x01\x98\xE7\xF2\r\xB0\x0E\x81\x16\xB8\x10{\xE7o\xA3\xD5\xCE~\x8A\r\xA4\xA1\x0EH\xBE\xB6J\xC3\x18\x13\b/gY\xEF\x03\xE3-\xDC\xCA\x19\x93\xDB\xF6\xBC\xBAV\xB6_?\x89\x91\x94\xCE {\x18\x83y\x1A\x102\xC1\x97F\x99\x15\xC1{\xAAvC>Dq~\x97\xB1E\xF1Rm\x98]\x8Aa40\x91\x07\xA1\x1B\xDFY\x073Y\x97\xA7\xC5\xAF\x1B\x8B\xCF\xDER\xA2\xE1\xA0\xA6e\x9Cj\xBD\xAE"l\fi\x14\xA3\xA6^\x06\xF5\x97\xC1|8\xF5\xF5\xCA\x87\xBB\x0E]\xB8\xB5\xC0\x05iKf\xB6:\xB0V\xA46\x8F\xF1\x04x\xAE\xBC\xB8\xB2\x89]\x9E\xE5O\x8EZ\x18\xB1[1 *\xE1\xE5j\x0F\xBC\x93D\xF8\x95\x9A@\fi\x05\x17\xE3\xD2\xFFD\xB5\xF6\xCF1\xC6\xC2\xE0\xCB\xA3Dj\xD7\x1E\xB5\xEEeP\r\xD8\xBC"\xC7\xE8%\x9E\0\0b@ \t\xC8|iW$\xE0\xF8\xD5\xEB\x04\x0EKR(?\xE2$\xD7s\xFE\xAE.\xA0\xF2~\xF2\xD6\xA5"\'R\x10\x8C\xA0\xBEY\xBC\x1E\x92w\xB9qa\x1A\x85\x88\xF3\x9A\xF5\x9B\x11\x1E\x18J6\xC5\xFD\xF6H\xCE\xEE\xC1(?\x9C\x8F\xB5\xA3 \xCDD4\x88.A\xE3\x8AC\xFD\x16\xB5\xC8\x1B\xAFa\tEf\x8DM': 'c\xBB\xE5\xE9\xFDg\x8B\x80\xEC\x9Em\xE1o\xC7\xD9X\xFCM\xFE=\xAE\xF4i#\xD7\x0BW\xFEN\xDE3\x8AA\xB9\xD4\x0B\nL\xCA\xD9o\x1E\xDE\xCE\xB3\\\x19\x88\xF0\r\x99\x99\xF5v\'~\x92\xB9\x1F\x17\xAE3',
      '\x12\xD4\xBE': '',
      '}\xF4\x96\x89\x96\xD7/l>\xA6\xAA\xD9]\x8D}Rf\x1A19C\x9B\xC7\xB8\xA03@c7\xA9-~\xF4\xAC\x196i\xE6)\x80\x0E\xCF\x809\xC2\xE0\xBC\xDB\xA7Bq\x9C3u\xC9\x16A\xB3th\x8Aj\xB8X#\xA8F\x82:H<Fn\x97\x9A_\x8A`Tx\xCA\x03\xF2\x9D\xAA\xB54\xBD\x7FF\xB8\x99\xBEe\xF5\xFCR\xD6\x84\x8E\x86\x81\xCB\f\x1EZU\xB8\xE8\xB3v\xB4\xCD\xC1\xEF\xF5\x02\xBB\x1BnJ:a\x842(\xFF%."\xD4Z\xD3\xEF\xC37\x9Ap\xFA\xA9\\\xE41aU\x04\xFC(\xF4\xD5\x0F\xAD\x1C\xB7\xB3\x9A\x1C\x8D\x81o\x1E\xE2\x809C\f\xB7a\xE5K\xF5\xAF\xA5\x9F{\x828\xBF\xA2?\x10\n\x8D\xED[\xC5\x1D\x07\xAA\x93\xB9\xB9\x93\x88\xC0\xCA\xB1\x19Y\x18\xE3\x87u\xB7\xEE{\x07\xD1\xF8\xD0o\xF8\x1DJ\xB9Z\xD4\xB0r5\x16\xCAW-\xC3\x13\xEB': 'dwSeWX\x16\x1B(\x06\xA6\xBA\xA7F^47j\xD8\xBB\xCEa\x90G\xF0\b\x11\x86\xF1\xF8\x8A\xC1\xE0<%\xC3Z~u\xDC\x839%\x86\xC1T\xDC\x99\xA2\x06\x1C\x95\xC8/\x93\x1E\x80\xD8=\xE3{(j\x0F\x9A\xA1\xFC\x16f\xA6\xEE\xFD\x07\xA1\xC4\xCA\xD3%\xB2\xFC\xD5\x99"\xF3\xE8\xD6\xB3\xA3\xC2g\xA8fMk\xE0\xC2\x93\xED\bVG\x85\xAE\x17\xBD\x9B\x8A\x01\x85\x97h\xA6\x7F\x86\x8EP1~\xE5\x9BrK\x8F\xB5H7\x11/\x13\xC4\xC4 \xFA7K\x87\x9C\xDA-]q\xD8"\xE9\xEA6V7k\xC6\x16T\x99%\xE6d\x917\x02\xAB\xA3\xDF\xB0\xA2\xC4\x8B\xC1M<\xC5\xFF\x86\xE2\x148\xD0\x0B\xB9\x12\xFA\x9B!\x11\xB5\xC6E\x1F\xE8\xDA\x1D\xDCQ\x93\xBAd\x8D\x1C\x95\xCF\xAB\xB6\xDD\xF0\x84=y\xFA\x0B\xE8-\xF03\x80\xE1u\t\xD5w\xFB\xEE\xF0\xCB,v_\xBBS\x90v\x1C\xCE\xE1\xE6\xC4\xC6\x18\xF6L;L\x92\x930\xE3\xE5\xC7\x93\xBBW\x8A\xAD\xE9\n\x84\xF3\x9E\x98?\xECfQ\x8F\xDE\x8Fm\x17t\xFB\xEB\x93\x8D\xDE\xF2\xF1\x13\x9F9P\xFB\xDA\xE1\x88\x8D\xB4\xAD\xEE\xFA\x0B\xB49\xBCq\x18Y\x8F\x11H53\f\xCA\xB8#\x01e\xAAK \xBB\xA6u\x91A\xE9C\xBE$y\xDBy\x90lX\x19v\xA9w\xBD\xB0\xFE\xE7rO @ \x82\x16B\x94*\x97\xA1)\xBF\xC1=w\xB2\x14 \x0Fr\xA5gJ\xC1\xEF\x7F\xBAr3\'\x9CA/,\x7F$_\xF8\xCF_\x93\x7F\t%*a\x01m\xC1O\xB5#\0/<*CmP\xB1\xFC\xAF\xC1*\xFAh\xF1\x96\xCD\x10\xC07g9\xD0\x0B,\xF9\x0B\xC7*XMj\x9CTS.\x03\x03\x98^Q\x8F\xE1',
      '\xA5vYsy\xCD\xEBg\x81BO\xB1d\x1B\x1Ef\xFDgI\xAF\xE7q.e\to\x80\xBC\xE0\xD0{\xA8\xAC\x1Des \x12\xB9\x9Ea\xEC68\xEC\x01l\xF9An\xEF\x812\xC0\xD7\xF1\x81\xF0\xD0\x9E\xDFa_\x90\xF9)\x80X/\xB6H{027{\x1E\xB8_8p\xB9\x1Ccf\xDC\xC7\x19\x03\xF5\xE7\xD6o\x97\xA7`?~\xF1\xDFw,x\x07N\b\x93\x8B\xE5\xA9e\xFB0\x85\xB9\xE95)\x88/\xE2\xF2\xC7\x10\xD8\xFCc\xB1S\x07\xD3\xA6\xC2\xC9h!\x17\x8Az\xD0\xAD\x8A?\x84\x8B.\x19}cV\xD4\x1EL}\x90\x907\x96P\b\x8A\xCAd\x9B\xC0ls[nh/ey[\x82g\xE9\xF0\xBB\xD9#;\'_\xB60w\xD6\x95^7\xAE\xD0w\xD5\x94\xA9|6\x13\xE4!\xD7': '',
      '\xFFnG\x8C\xDD\xE9\x96\x81\xA6\xB1(\xEC\x91\xD8(\xAC\xFE4\xB0\xBD\x11\x87': '',
      'Ab\xB4:\x9BzRR\x89\xC2\xD3\xF7\xF9\x02\t\x1D?\x87\xD7d\xA4\xA3\x9B\x8D4e`A\x9F\0\xFB\xCD\x88P\xC6\xC8\xEB\xCBP\xF6(\x8Fb7\xCF\x1C\xD6L\xBD\x82\xB6pu\xC7\xEC%\x10\b6\xEEr\xD0\\:]}\xB1\x90/V\xDAl\x01]G\x8BA\xB5\x8F!\xE9\xF3 0^\x90\xA1\x9B\xC15\xFDz1x\xB0\xF8I\xC2\x05(OF\xA5\x1A\t\xA3': '\xC99\x9B\xD8yo\xBBeU?\xBE\xF5V\xA4\xC4\xE3A\xF28\xEA\x8A\xA7\xFC\x10\xEE\xA2\xCA\x07\xB3\x96\x1Fo0\xC0\xD7\x0B\xA8yL\x90\n\\b^\xD4i\xC6\xCE\xC3\x1F\xBC\f\x80f\xC0/\xCC\xF73\x17\xB2\x0B\x9C\xB3\xC75\xAE\x02\x0Fz\tA\xB5\xF6\x80T\xA4t\xB2\x7Fi9\x025\x81(k\rlk\x171\'\xA6\xF6\xB0\x87\x83\xE4I\x0F\x05Oy\xEEg\xFA\\\x15\x01\xF3\x97\x18\x8D\x8C\xC3\xF6^b\x1B\xB1>.\x04=\xF71\xE8\xA6\xCC\xBBN\xE0\x947\x16\x9B\x87\xEC\x04\x1E/\xB4u\x84{\xF8<\xA9\xF9\x16\x07QC\x0B\x1F\xD9\xDEG\x89L\x14\xCD\xEB\xE3W\x97\x19\x0Fa\xEE\xAC\xCC \xA9_\x9E\x1A\x8B\x12\x8B\x1A\xC5\xFE\\\xB9\xE8JQ\xAE\x02\xD2\xFA\xA7\xF5\xBA\xC6\0\xD2\xB0l\xBDY\xFA\xE9\x0F^\xABq\xC6\xEE\xBD7\x03\xB6\x0E\xF4\x92\xA5s\x01\x8E\xB2[\xBA\xD5\x18\xB6\x88\xE7\xDD>%/\xAB2\xEC\xDA\xF6\xFF\xC1\xEBs^\xB33ry.t\xF8\x96\xEA\xD0\'\xA6.c\xBF\x85Cn\xA1\xE4\'\xF2\xE3\xE1\xC6l,\xE4\x10\x9D\xD5\x87\x17G\xF5,\x15\x87\xF4\xD4\xA8\xAD[\x8DO\xF97\xFF\xFD\xC5\x98|\xF8',
      '\xA9\x16\xF0c \x93\x12h\0F\xFAq,\x85F]\xCE:\x90\x1Fq|9\x7F>n\xE0\xA7\xA5s\x03\x9C$\x89P6i\xA5\x98P>\xBFssfP\x10\xB25\xA5\0\xCE\x18\xD9\xBF\x10\xE6\xF3\xF5\x7F\r\x12\xACY\xC6\xC5\xF6/V\xBA\xE6\x1A,\xDB\xC1S@\xF0\xFC\xB1\x18\xF4\xC2ji\x9DA\xB7\xDBl!\xC8\xF5M\x81\xCD\xB3\xF1\x12bA\xF7\xD8L\x8A\x90K\x85z]\x80\x8F\x98e@\xDC\x18\xC1a\x18\x11\xAA\xDC\xDB\x96e\xCEm\x11\xA4b"\x1C\x1C\xDC\xD2\xCE\xB2\x98v\x89\xE2\xD4S^ \x8AQ': '',
      '\xE5\xD1\xF2\xBBg\xC8\x077\x1Ena\x99\xF2\xE3\xF0\xEBy\x8D\x10\x88': '',
      '\x14Q>\xFDc\xCA\xE4\x8B\x1E.\xBD\xF9P\xFB^\xAC\xCC\x07\xBD#\x18\x92\xB6\xCA\x7F\x9F\xF6C!\xA9\x000C4T9\xAA\xCDM\x16\x84\xC4R\xB9\xCD\xAA\xDD64\x1F<\xEDVAc\xA6|A\xBC\x02d\x06#\x8A': '',
      'M(d{fQ\xC2\xD9Nl\xB8\x0F\xC1\xA8\x1DF\x1AI\xB6\x86\x04.l\x95\xDA\xFE\xC4h}Z\x7F\xBE\x1Cp"\xE8\xD6\b\xE3\xF2\x8C\xCD\xEE\xA1X~\x99\xA9\xD5s\x8F8y\x14\xC5\xC8\xFE\xBDy]*o,xX\xFB~\xAE\xF2\xE3\x0B\xB4\rm\x18\x99Z\x1A*\x80\xD6nC3\xE8tYl\x8C\xA3Z\xEBlo]\xF18\x91\x81\xC6\x01|W\xB9u\xD9\x02\x04H\xDE\xF8\x8D\x1C\xD7\xD8\xFC\xB4\xC0\xC1\xF4P\xDB\x8A\x8B\xE6*\xE7\xE2\xF7t\xDF\xDAK%y\x01\x07\x86\xCB\' <\x81\xFAJB}\x9C\x81y01\x8E9\x11u\xBA\x11\x9E<\xD8\xD5\xAE\xB9\x9A': '',
      'tz\xFA\x89\xE1 2P\xFC\xE1\xC3\xDD\x9F\x98\xDA\xD0s!{\x1B]T\xC8\x88\x15V\x05\xF3e\f\x9E\xFE\xA5\x1E2/\x07\x8D\xCE!\xBED5\x9A\x8Dl\xC1go\xB2%2TB\xE0\xF3\xC5-\x99\xF0A\xDA\xBD\xB7\x14U\xFC\\\xBCQ\xE8\xC4\xE7\x9C\x9Ac7u\x84\xB7\xD6\xADZ\0\xE5\x8A\xD3\xFAb9\xB7\xB4\x0E\x8B\xDD\xEE\x1BA\xAC\x81\xC6\x1F\xF1\x81_\xB7\x19\xD9\xD8{@\xD9.~a2\xEFS\xCA*\x14\xD1\x97\x05\x8B\x11\xCF\x8D\xEA\x83N\xF1\xB6\xB4P\x8Ccm\xE55\xCB9c\xD0\x8E_W\x13\x86f\x1AQ\x99C\x19\xD1\x05\xC2\xA3F\x87\0I\x07{#\x9F\xB9\xF5\xC0Q\xF3K\xBA\x83\xC7\x9B\xA3\x9AO`\xBB\xE5W\xE6\x96\xFF.\x9FQs\xEAn\xBCb\xA7\xC7k\x97[1\xDA\x98\x11\xD6\xE8q\x97\xFB\x97t9\x1Bb\x16\x814\x88\xFC\xAF$/H7p"\xB7\xDA\x1FX}\xD4okdz\x03\x13<7\xCB\xC8\x16\xA7m\xEB\x0E\xB5\xC0\xBFO\x8C\x02\x80\xE6\b\x93.\x11': '',
      '\x8C\x8E\x9E\xC9\xC9 \x12\xCC\xD5\x7F\x9D\xA2u\xE7X}\x04k\xC4\xB7\xA4\xBE\x17?\xC3\xAC\x11L\xC9\xA0Q\x05\x15\xB5\x91\x02\xBE\xC3o\x86\xB4%R\xB3\x07>\xB1\xB2\x1B\x89\x02\x87\x87\x8DP~`\xD46R\xFE\xCCc2\x15o\xA6RB\b': '\xBB\xE9\xEB7\xF4\x94=\xB8J\x8BIWi\x04\xD2i(\xA9cG\x13"\x18\xF8\xF6\x19:\xE6\xE3\xA9z\xBC\xFA<\x88\x10 B\x90\x95\xD9\xF4\xB50\xAC9\x8F\xCF"\xA0\xBD\xCF\x9D4\xEAJ\xB1\xE5\x01x\x9D\xF3X\x91\xBC!\x85\x0F\xD3\xCEE\x1A\xAE\xBB\x1E\xC9\xFD\xC2@\x8B\xA4\xD3.!\xE35cI\x14\x83\x8A\xDC@\x9C\x03\x1A\x98H\b\xD1\xE1z\xFC\xB0\xE7B\xE0\xBEH\x15^\'\xD9Xd^\xC1v\xA5\x9C\x1E,u3\x9D\xC6\x89\xC9\xDC\xF2\xE9\xAF\xEF5a\xD9\x98?a\\\xB2$^\xC4\tf)\xBC\xE2\r\xE4(\xCC\xDF\xD9\xAF\x8B\x8As]7\xD5R\x97Q4\xB0\xDA\xA65N\x86Rez\xD8\xE5L\x9B\xCB\xC9I\xDB\xE6\xCD\x15 \xBD\xC9\x9Dg\x91\x87;Hi\xB0\xF9\xD2-\xA2\x19\x80\xFC\x1FFs\xD6\x8D9$\x02\xE9\x8A\xD5MJ\xB6\xD1\x9AQ\xC0\x12\x1E\x1EWl\xEBrk\xEC\x01\xE5U\xE9\x15\xA4\xB9\xF1{=d\xE5= \b\x155\xB2\x0E}\xEC\xF6:\x02\x8A\xAA[\xB18iL\x82\xCCqx\x9A\xC6gk9\xBE\x05\xA3\x9B\x8F\x98\xA4\xF6F\xA7\xF1\t\t\xE6\xEB\x99m\xCB\'^\xB8\x87iKb\x1ClOX\x1Cf\x12\xF1\xD0\x99\xAB\x88\x84!\x96\x1C\x07\xAC\xC0\xED\xF5\x12\xA4\xBA\xE4\xFA)\x19\x8E\xD1\x1FH\xD3\x9CI\xC1\x96\xEE|\xB5\xA9g\xBF\xDB\x03\xA5\xD7\t\xCE@\f\xDC\x8C\xAFL\x1FJO\xC3\x83\xAD?',
      '\xED\x7F\xBE\xF7\xB5\x8F\x80\x7F\xDF9#*\x1E\x88\xC7\xBD\xD92\xCC>a\xBC(\xB3\xEF\xF1\xFC\xF8\x0E\xEC;\xCCU\xDC\xBEEg\x8E\xD7I\x0E\x1A\x11\xA3\x8FY\x8D\xD3\xDFU\xFE\n\x04\x7F\xD9\xD8\x17\xAA\xF860\xB4f\xE9\x8A\x078\xDF\n\xA9\xE6O\xB5\xCA\xA3\x1A\x96F\xD8*\x0B\xA9\xD9\x1F\xDF\xC3\xD8#\xA5\x17*\xD2\x11\x02^\x88': '\x03\xCE\xE43\x82g\x16\x92\xE8\x1F8A\x8E:I\xC14h\x96\x07\xB3\xC1\xA4A\xF0\x1E\x99\x11\x14\xEA\x06aP\xDB`\xAA\x84\xF4\xAB\b2\xB6\t\x93\xD4\x85\xF6ROTd\x894]Z\x82\x02|\xADq\xF9\x15\xD5s\x1Bsa\xAE|\xC1)\xAFS\x0Fj\r\x1C\xB5\x92\xEB\xB3>^\xE2\xD7-;\x19\xD1\xAC\r\x15{\x0F\xE0\xF6\x87\x10<\xD5\x84u\x0E\xC5)\x81\xB0\x07\xF1\xE8\xCD \xDC\xB6\xAD1\x9E\xD0\'\xEE!\x1Cv3P1S\x9D\x84-\xCB\x9D pj\x86\x03\x05^\xB9VN\xFB]\x0FfH\x11t`\xB3\x8DY\x03\xBD\x11\x87"k\xBDu7\x1D\xBC\xC1\xD2^\xD1\x9F\xFE\xF3\xD1d|\xF7\x97`\x8Cu\xA3/\xD9!(\xFDj]%\x0B\x81B*',
      'B\xB9@[[c7\xAF\xBA(\xFF\n\x8C\xFB\xFD Y\x18\x9B\x7F\xDA\xF9\f\xF1S2\x11 \x013\xC2\x1B\x19\x91o}': '',
      'X\xC1.D\xFC\xDF~': 'i\xD7\x03\xA7{\xD0\xEE{1\xC1\n<\xC7\x9A\xDB\xC2\xDB\x8B\x05\xB0M\x1A\xA4\xAF\xF3J\xCC\xAF\xA1k\x9E(c\xC7\xF9\x18\xE6\xF7x\xDB\xE5\xD6\xB0m\xD8\x8A\xFD0\xFB\xB4\xE5\x06;s\xB9ND,6\xC0^\xC3\x85<A\xE9D\xEDR"\xD8*\x18Z\x05r\xD93I dD\xE6\xE2\x18\rU\xE6\xE3\x807\xA7\xF2\xEC\xA7\xB5\x97\xA6\xF7 8y\xDA~\xA6`;qe/\xF7>\xD3\xF5\xFE\x8B\xDD\xE7\xAA\x99~\xB9\x13\xAF\xE9\xAAt\x80\xFF[a\x97\xE2\x19\x94HM\xDC.\xED,\xD6\x855tq\x8B\xC8\xDAW-jg\xE7e\x82\x87\x8E\x19\xB0\x80\xE1',
      '\xE6\x18\x87[e\xA8\xA5\xDDl\x81\x9E"\xFB\xBD\xA2\xAA9\xD5': '',
      '\x86\x88\xB6\x93\xD4,\x8E\xE7$3\xA8\xCA': '\x13\xBE\xA7\xB4\xA4\x03\x9F\xA036\xC3\xB9R\xEC!\xE5\xFB\x18,\xDFN\tl\xBE\xDC\xC5l\xF3!T\xDF\xFEI\xFF\xD2a\t!\xBD\xAAD\x864\xBAwq\xA5B\xCD\xC0m\x18\xCFph[6\x8F\x1B\xBF\xA1\x9B\x14\xF4\xFD"\x10\x97\xB9\xE6w\xBC\xD01]G]\xB5\x8E\xA4\xBBvd*\x80\x02\rs\x8E\x92\x1D\r\x979-\x02n\xDF<\xA3\x19\xCF\x1F\xEA(d\x95A\xBEd\x95\xBENFJ\x95\x82`\'\x0EN\xB5W^x\xD6"\xA6D\xFA\x10\xC3\f\xE6\x7F\xD3\x05\xB6\x15\xCB7\x1C\xDFT\xE1\xCFOH\x93S\xFFa{\xF7@Hx\xF4\xA0\xC4\xDFjql\xF4\xD1\x02v\xEA\xF0I#\x17a\xE5"U\xD2J\x84\xDC (Pl\xB5\x8Axa\xDEDD}\xB9lL#\x84\x01\'$\xD9\xFA\xDC\xE5\x1ClG\xB7\x9Bs\x91\x8A\xCF\x03\xC6\t\xBBY\xAB=\x9Bm\x1FXb\xA2\xBBM\xFF\x04\xA8\xF1W!\x01\xF2Du\xF59/\x8F\xD3\x83\xCD\xFA!\x1D\xCC\xD6<\xE9\x18c\xE40\xB4M\xDD\xE5\b\f*J\xB1|=\x966\xB4\xB7\x14<\xA1\xDC\x17\b\xA9\xC5xB\x14\x86\xB5\x1DLYI\0\xDB\xB1G^\x1A\x04\x1EoG\0\xF40\xBE\xB4\xE6\xF3n\x8EGfp\x9D\xB4\xE8\xCDP\x9F\x1CX\xEBx\xD2\x11,H\x85\xD1\xE8\x94~I\x11\xFDV\xEDN\xF8@\x82\xDC\x93#\x1A\x80\x01i,@\xD04;\xF6',
      '\x9B\xCC\x12\xCC \x7F\xA2\x906\xED\xE6\x94\xAF\x87\xC7\xB5\0\x17\xAE\xDA\xBEc\x9Ek\xFEE\x9E\x04A\x13\xC7H\xBCZ\xC1\xFFqj\xCA\x91\xF5\'T\xDA|\x92)\x01\xB2\t2\xE0{%"\'j\x98f\xD8\xCF\x951\xE5V\xCD\xED\x01\xC3\xB1\x91\xBF$z\xF0E\x105\xA3T\xA3m\xE7\x8E\x81B\x89\xE1\x855\xD1\xA7b!\xF5\xAEb\x90\xD0o\x19J\xD7\x1C\xE6\xA6.\x13\x8A^1\x9F:\xF6e\xF9\xC7\x14\xFDcJ\x14\0\0\0\x01\0\0\0\x14\0\x05\0\x10\xE2\x8E\x0B\xC3\xA5\x8A[\x9D': ''
    }
    
    response = requests.post('https://itvpnp.live.ott.irdeto.com/Widevine/getlicense', headers=headers, params=params, data=data)
    
    #NB. Original query string below. It seems impossible to parse and
    #reproduce query strings 100% accurately so the one below is given
    #in case the reproduced version is not "correct".
    # response = requests.post('https://itvpnp.live.ott.irdeto.com/Widevine/getlicense?CrmId=itvpnp&AccountId=itvpnp&ContentId=10-0674-0003-001_18', headers=headers, data=data)
    Yours looks like its missing a whole load of data? I think there are usually at least two POST requests to the lic server... try the other one
    I tried the other and it still didn't work, I wonder if its the tool i'm using, It's WKS-Keys that I found online.
    Quote Quote  
  10. WKS-Keys is what I'm using. What about the PSSH? What are you using? Where did you get it?
    Quote Quote  
  11. Originally Posted by T33V33 View Post
    WKS-Keys is what I'm using. What about the PSSH? What are you using? Where did you get it?
    I grabbed it from here https://github.com/weapon121/WKS-KEY/releases/tag/WKS-KEY
    and I'm using the EME logger to get the PSSH.
    Quote Quote  
  12. so this PSSH then... AAAASXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAACkIARIQti Kby8TjS5WdAMzZIO3bSyITMTAtMDY3NC0wMDAzLTAwMV8xOA==
    Quote Quote  
  13. Originally Posted by T33V33 View Post
    so this PSSH then... AAAASXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAACkIARIQti Kby8TjS5WdAMzZIO3bSyITMTAtMDY3NC0wMDAzLTAwMV8xOA==
    Yup it is.
    Quote Quote  
  14. ITV is a super simple one... As long as you use the correct headers, PSSH and lic-url it should give keys fine. From your info you are using the correct PSSH and lic-url so it must still be an error in the headers somewhere...

    Image
    [Attachment 62631 - Click to enlarge]
    Quote Quote  
  15. From Firefox, in Network tab of DevTools > right click on lic url - top one of the 2 when you Filter url for lic

    Copy as curl (windows)

    ...paste into https://curlconverter.com/ left hand window > lang Python in right hand window

    Image
    [Attachment 62633 - Click to enlarge]


    Paste result into headers.py in Notepad++ Note the indents - 4 spaces - identical to mine
    https://notepad-plus-plus.org/downloads/

    > SAVE

    Code:
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0',
        'Accept': '*/*',
        'Accept-Language': 'en-GB,en;q=0.5',
        'Referer': 'https://www.itv.com/',
        'Origin': 'https://www.itv.com',
        'Connection': 'keep-alive',
        'Sec-Fetch-Dest': 'empty',
        'Sec-Fetch-Mode': 'cors',
        'Sec-Fetch-Site': 'cross-site',
    
    }
    Exactly like this in Notepad++

    Image
    [Attachment 62634 - Click to enlarge]


    From a cmd prompt from within wks-keys folder which must include headers.py run:

    l3.py

    --keys

    Image
    [Attachment 62632 - Click to enlarge]


    If this doesn't work your cdm is revoked. I hope you have done some research / reading and know that the CDM that came with the original WKS-Keys is looooooong gone (?)
    Last edited by codehound; 30th Dec 2021 at 17:40.
    Quote Quote  
  16. Originally Posted by codehound View Post
    From Firefox, in Network tab of DevTools > right click on lic url - top one of the 2 when you Filter url for lic

    Copy as curl (windows)

    ...paste into https://curlconverter.com/ left hand window > lang Python in right hand window

    Image
    [Attachment 62633 - Click to enlarge]


    Paste result into headers.py in Notepad++ Note the indents - 4 spaces - identical to mine
    https://notepad-plus-plus.org/downloads/

    > SAVE

    Code:
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0',
        'Accept': '*/*',
        'Accept-Language': 'en-GB,en;q=0.5',
        'Referer': 'https://www.itv.com/',
        'Origin': 'https://www.itv.com',
        'Connection': 'keep-alive',
        'Sec-Fetch-Dest': 'empty',
        'Sec-Fetch-Mode': 'cors',
        'Sec-Fetch-Site': 'cross-site',
    
    }
    Exactly like this in Notepad++

    Image
    [Attachment 62634 - Click to enlarge]


    From a cmd prompt from within wks-keys folder which must include headers.py run:

    l3.py

    --keys

    Image
    [Attachment 62632 - Click to enlarge]


    If this doesn't work your cdm is revoked. I hope you have done some research / reading and know that the CDM that came with the original WKS-Keys is looooooong gone (?)
    Still getting the same issue i'm honestly stuck


    All I keep getting is

    C:\Users\Admin\Desktop\WKS-KEYS>py l3.py

    PSSH: AAAASXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAACkIARIQti Kby8TjS5WdAMzZIO3bSyITMTAtMDY3NC0wMDAzLTAwMV8xOA==
    License URL: https://itvpnp.live.ott.irdeto.com/Widevine/getlicense?CrmId=itvpnp&AccountId=itvpnp&C...74-0003-001_18
    unable to parse license - check protobufs


    or

    PSSH: AAAASXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAACkIARIQti Kby8TjS5WdAMzZIO3bSyITMTAtMDY3NC0wMDAzLTAwMV8xOA==
    License URL: https://itvpnp.live.ott.irdeto.com/Widevine/getlicense?CrmId=itvpnp&AccountId=itvpnp&C...74-0003-001_18

    license response status: <Response [400]>
    server reports: {"code":100100,"message":"The request is invalid. Error while parsing: AccountId. Parameter not expected as an array"}
    server did not issue license, make sure you have correctly pasted all the required headers in the headers.py. Also check json/raw params of POST request.


    and these are my Headers:

    Code:
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0',
        'Accept': '*/*',
        'Accept-Language': 'en-GB,en;q=0.5',
        'Accept-Encoding': 'gzip, deflate, br',
        'Referer': 'https://www.itv.com/',
        'Origin': 'https://www.itv.com',
        'DNT': '1',
        'Connection': 'keep-alive',
        'Sec-Fetch-Dest': 'empty',
        'Sec-Fetch-Mode': 'cors',
        'Sec-Fetch-Site': 'cross-site',
        'TE': 'trailers',
    }
    Last edited by ChemicalMisfit; 30th Dec 2021 at 19:27.
    Quote Quote  
  17. What browser are you using ?

    Are you using the cdm that came with Wks-keys ?

    If the answer to the secong Q is yes, then thats the issue. Revoked.
    Quote Quote  
  18. Originally Posted by codehound View Post
    What browser are you using ?

    Are you using the cdm that came with Wks-keys ?

    If the answer to the secong Q is yes, then thats the issue. Revoked.
    I'm using Firefox.

    A CDM I found online that CDM checker says is active (I don't have any access to an android device right now)

    I think it may be the CDM it's active but possibly blocked by ITV.
    Last edited by ChemicalMisfit; 31st Dec 2021 at 03:31.
    Quote Quote  
  19. You've answered your own question.
    Quote Quote  
  20. Originally Posted by ChemicalMisfit View Post
    Originally Posted by codehound View Post
    What browser are you using ?

    Are you using the cdm that came with Wks-keys ?

    If the answer to the secong Q is yes, then thats the issue. Revoked.
    I'm using Firefox.

    A CDM I found online that CDM checker says is active (I don't have any access to an android device right now)

    I think it may be the CDM it's active but possibly blocked by ITV.
    Your CDM being blacklisted by ITV is entirely possible...
    However, as the error message from the server clearly states, the problem is about the request parameters.

    Server response:
    license response status: <Response [400]>
    server reports: {"code":100100,"message":"The request is invalid. Error while parsing: AccountId. Parameter not expected as an array"}
    server did not issue license, make sure you have correctly pasted all the required headers in the headers.py. Also check json/raw params of POST request.

    The url parameters you are sending are either completely unparsed (One whole string for all the url parameters, when it should be an object/dictionary), or are arrays containing only one string element (per parameter).

    You're probably using medvm's widevine_keys. If so, the line you'd need to take a look at, and parse correctly for it to be an accepted parameter to be sent in the request, would be:
    Code:
    params = urlparse(lic_url).query
    Hope this helps
    Quote Quote  
  21. Originally Posted by SPBong999 View Post
    Originally Posted by ChemicalMisfit View Post
    Originally Posted by codehound View Post
    What browser are you using ?

    Are you using the cdm that came with Wks-keys ?

    If the answer to the secong Q is yes, then thats the issue. Revoked.
    I'm using Firefox.

    A CDM I found online that CDM checker says is active (I don't have any access to an android device right now)

    I think it may be the CDM it's active but possibly blocked by ITV.
    Your CDM being blacklisted by ITV is entirely possible...
    However, as the error message from the server clearly states, the problem is about the request parameters.

    Server response:
    license response status: <Response [400]>
    server reports: {"code":100100,"message":"The request is invalid. Error while parsing: AccountId. Parameter not expected as an array"}
    server did not issue license, make sure you have correctly pasted all the required headers in the headers.py. Also check json/raw params of POST request.

    The url parameters you are sending are either completely unparsed (One whole string for all the url parameters, when it should be an object/dictionary), or are arrays containing only one string element (per parameter).

    You're probably using medvm's widevine_keys. If so, the line you'd need to take a look at, and parse correctly for it to be an accepted parameter to be sent in the request, would be:
    Code:
    params = urlparse(lic_url).query
    Hope this helps
    Ahh yes it must be because of this I thought everything here would be okay:

    Code:
    params = (
        ('CrmId', 'itvpnp'),
        ('AccountId', 'itvpnp'),
        ('ContentId', '10-0674-0003-001_18'),
    Quote Quote  



Similar Threads

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