do you want my account? i can give you my user and pass, by pm?Unfortunately I don't have access to the website so I can't see for myself.thank karoolus, i did this way also, but i did the other way without nv-auth....., and my l3.py doesnt give to me the keys, so its not this one the problemPlease use code blocks to post code. It makes everything readable, as it's just a big blob of text now.
Then also: you declare your variable as nv_authorizations but you later call upon that variable using nv-authorizations so it throws an error because it doesn't know that variable.
i use also this l3.pyobiously with the headers with the nv-auth.... but still not workingCode:# -*- 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.getPSSH import get_pssh from pywidevine.L3.decrypt.wvdecryptcustom import WvDecrypt pssh = input('\nPSSH: ') lic_url = input('License URL: ') 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) widevine_license = requests.post(url=lic_url, data=wvdecrypt.get_challenge(), headers=headers.headers) 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)
What is the error you're getting when running the script? What is the response code?
Support our site by donate $5 directly to us Thanks!!!
Try StreamFab Downloader and download streaming video from Netflix, Amazon!
Try StreamFab Downloader and download streaming video from Netflix, Amazon!
+ Reply to Thread
Results 31 to 50 of 50
-
-
@shellcmd there arent any json in the response license url, no json in headers mate
@karoolus thank for you help
pssh widevine: AAAAPHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABwIARIQrR UnxLzkTrOGBTsX045tFyIGQ1VQMDAzpssh nagra: AAAAfHBzc2gAAAAArbQcJC2/Sm2Vi0RXwNJ7lQAAAFxleUpqYjI1MFpXNTBTV1FpT2lKRFZWQX dNRE1pTENKclpYbEpaQ0k2SW1Ga01UVXlOMk0wTFdKalpUUXRO R1ZpTXkwNE5qQTFMVE5pTVRka016aGxObVF4TnlKOQ==
ERROR
PSSH: AAAAPHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABwIARIQrR UnxLzkTrOGBTsX045tFyIGQ1VQMDAz
License URL: https://vds7b9j3.anycast.nagra.com/VDS7B9J3/wvls/contentlicenseservice/v1/licenses
unable to parse license - check protobufsmpd url: https://alc-bks-08.alc.cdntv.vodafone.es/bpk-token/3aq@ivvlf0jpwovihrybankhslxkutln3kroij25dzca/sdash/LIVE$CUP003/2.mpd/Manifestheaders:
import requests
headers = {
'authority': 'vds7b9j3.anycast.nagra.com',
'accept': '*/*',
'accept-language': 'es-ES,es;q=0.9',
'cache-control': 'no-cache',
'content-type': 'application/octet-stream',
'nv-authorizations': 'eyJraWQiOiI1MTYzZhYi1lOGViZWRlMjdlZDAifQ.Foir5BlK 8jy7qcaOY1sjEdlESVHMIsXkcrQtSitcm1c',
'origin': 'https://tv.vodafone.es',
'pragma': 'no-cache',
'referer': 'https://tv.vodafone.es/',
'sec-ch-ua': '"Google Chrome";v="119", "Chromium";v="119", "Not?A_Brand";v="24"',
'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/119.0.0.0 Safari/537.36',
}
data = '\b\x01\x12¦ \x124\n2\n\x1c\b\x01\x12\x10\xad\x15\'ļäN³\x86\x0 5;\x17Ó\x8em\x17"\x06CUP003\x10\x01\x1a\x10Êvøß\x a0ß{Zß}`À)O¨\x18\x01 ¸\x95Þª94s\x94\x85¿1À\x98ÙÙà{¸Û°4vÑ%Â\x8dâu\x06q\x 98êa\x95c\x85;4»\x01½¯¤9Ý\x01\x98z\x92¸ÊH\x12\x94\ x1cL\x1c\x8f\x1a:·\x03O¾w\x82Uª«ÿ\x93\n×f\x97mZ\x9 7²\x91\x90õ3\x13!«\x06Å<É=\x9a\x06\x9d«\nPë\x91~\x 02v@ ªÑ;q¹\x14"@¨\x19\x97D|\x89\x1d§M7\x057p}\x8cxtÃË\x 05m\x00¹ô\x01ø\x06\x99Ñ\t`á\x16 \x84æ\n2MCcØC3x°Xº6\xadÝWHj\x82¶q.jÃ\x11ÑÀ¾\x96\x1 dÕ\x9bp \x14üÿh0Eݾ\x01æ\x10ÊÃ\x17\x87rͲK\x95¯<\x99f±I\x1 c?jK\x8eUê\x91Ó\a:7\x1c,\xa0 4\x8cV\x91;júìÖáKÅ)\x99Ù\x88iÈüãà=\x15S®\x7fAªÄ4Òº +¬\x03¦÷)405îï^\x1bÂo`\x81ë¼k»\x85køòç\x16\x13TÑCé s§Dp\x0eE\x9aÊÕ|ò-h¢¹a\t\x0fÑz÷àP\x86nV"Ðí¥\bó\x81\x1d\a¼\x9fØ«âÌ:¬" à"°ü¼©ÊZ\x9b\x8dYlç%^]\x7fÑ\x12¨Þyç¨8\x97 ÃÔ\x1c\x19Fz\x14hõP\x94\x82̪\x94J°pæ\x17zìõ-Ö{ázGº8éü\x8esS\x87lb\x10¿¯¨J¼Á\x16ùÊ\x8c©hB\rjÝY\ x81R@\x98»½æÿ&\x9c³ë\x92pÒyJ[w\x85ï\x11á<û\r\x94&\x84\x01¸Ç°êÏys\x0fjüEeÂ˲I\x9 7b\x1d\x11wü\x94á\x99\x1bkéè\x00\x85{¢¡¡+ åsÞ¸\x12RQ\x0fÒ\x03å\x19#Õ\fæÁtb\x93@b\x862g\xa0©¨ £ÁPì\x8e\'[|éa¡E²¦ðËG\x0e\x1a¬,`câÚjé"\x1f7E{t¦Þ÷ \x19&]¾\x1f\fbm\x1f·¿\x1dü4\x830äØN[µª\n\x14h\x86L"\x94Àø\x82\x96æ\x9b¿c2v\a¥\x0f@g&ià \x9f\x05Æ\b\\\x91¡ÏRî·ý\x87\r8\x86[*½ÿÑöE+\x87¦\xa0\x14p{RÀÏ_ÍáJÿ×\x01ô\x9fv\\Áx<°\x8 aD1\x12m\vw\x83\x04>â\x99t^\x10Ë\x10[\\ùRηO8%\x84øUdV\x9f+<9)\x0e\x86×:ô¿2µ§\x95|6Ç\x8 d>[uHà\x11\x97LY\x92\x1eý½×o!=¥snòd¥4j}\x02ø£v½eþÈÓ]Iö\x88\x94ì\x99F1Ja\x8c\x9a|f\x89dt]\x9dÐÆ"zí\x83\x99J\x0flË/\x10ê\x15ÑôÂ\x9b]L3dÆ«QòÕÓô\fܶ\x8ca\xad§\x17¦ç²6è\x15km\x7f¿\x93òÆ Y?\x90Ʊ "\xad½íJY\x8a\x1eþ¹©Go)5Öx?ëY7¹ö\x80ÀÁÕRÔ\x89bÜã\x 1cp8«\x8b;t\x8aDïfàØ\x8aÀúu\bZ\\£.\x99Å\x1e\x81\bî \x04\x9a\x8c\xa0S\x8b>®3B÷ô\x89&Î\x82m\x95\'NçØkàW \x1c×üW"\x10\x80j\a¥\x13_\'¯õ:^a4\x15\x14\x8a*\x80 \x02q\tÕN\x01.\x97x\x14Lî¦E\x0f?¬ÞRÝ\x83ýÌ_\x10\x1 eê0Îæ\x1aìä\x14¨\xa0ûæâÐ\a\x04\x98¶\x93§©1Ù:^ÚQ\x1 b@N äf\x9awÛ\x89>\x92Ée\x8d+f7¯Bü_.Kê\'\xa0Ù}\x98]§²ÙÿÊ\x93*òÐC\x84\xa0\x98,6.Dwñ\x89È I[Â2ÒUT\n5$\\\x06ú\x00\x10]\x14Hù¿Û$Ý\x14\x88´Vu¿Éä\x1c\x90Å\x1d\x94\x19\x84\ f\x8c^÷x£~IÇ&¡\x05\x06iâ}\x80\x11½\x8dƳY\x1b·\b³¾ º²ý\x8cß\x98ä\x85¤ð»£\x03\x00\x81\x9e\x04{\x9füÚ±¤ Èç®,ÿ\x91Mêù\x8d\x1f±¹¨?\x11>kJ\x14\x00\x00\x00\x0 1\x00\x00\x00\x14\x00\x05\x00\x10V\x85nÜt_ÐO'.enco de()
response = requests.post(
'https://vds7b9j3.anycast.nagra.com/VDS7B9J3/wvls/contentlicenseservice/v1/licenses',
headers=headers,
data=data,
)Last edited by marioeivissa; 21st Feb 2024 at 14:11.
-
-
like this karoolus?
HTML Code:# -*- coding: utf-8 -*- # Module: KEYS-L3 # Created on: 11-10-2021 # Authors: -∞WKS∞- # Version: 1.1.0 # Modified by: CrymanChen # Modified on: April 7, 2023 import base64, requests, sys, xmltodict import headers # 增加了一个第三方库pyperclip, 目的是将key(有时是多个key)快速复制到剪贴板中 import pyperclip from pywidevine.L3.cdm import cdm, deviceconfig from base64 import b64encode from pywidevine.L3.getPSSH import get_pssh from pywidevine.L3.decrypt.wvdecryptcustom import WvDecrypt data = '\b\x01\x12¦ \x124\n2\n\x1c\b\x01\x12\x10\xad\x15\'ļäN³\x86\x05;\x17Ó\x8em\x17"\x06CUP003\x10\x01\x1a\x10Êvøß\xa0ß{Zß}`À)O¨\x18\x01 ¸\x95Þª\x060\x168ÜÝ\x95´\x05BÐ\x1f\n\x14license.widevine.com\x12\x10\x17\x05¹\x17Ì\x12\x04\x86\x8b\x063:/w*\x8c\x1a\x90\x1d\x1dì[\x88Qð\ae½Nû\x1a!ï¬Ø+úò\x19\x18\x049\x9a°{Vð,!Ä"h#\x85\x0fxòzd\x00`\x94Çf\x14ÿ\x8aÿO¦\aH4]â\b\x19k!Û*]\x99¨¶k1¹9\x17cDú¯H\x90Þ\bo\x19\x90Û¬=ÜÍùÏ\x9f²w0xH\x13pa ]\x9cPQ\x17u\x18\x94>YH÷\x9bàt\x01\f:\x8f\x1d\x9dÊÚ=Æ"\x1eÓJ&\x96\x8do²uW\x15~nÅ¥\x88T\x17TÉ\x94N¤Ã\x81\x11F\x7fÕÔ\x9e¨\x81F7Â\x99en7¢Ê°_\x0f;a\x9dAñ¶tÌ\x87É®\x00º#¼\x9d¶ØÅªf\x16»ð<¨fþ(\x1c8°\v\x9f¿ô|\x82Û\x19?\rÓïAyTª%îÚz¸)n#gKt\x98\a9ì\x90¾Ò(\x12ç\x9a,Ùb±UÄ\x97t³\x19j5\x91ï \x88µ¢òa\f$Ýçÿ\x85vüÙÇ7\x1bÔ\\c¢ï;b´®tòÞh\x85;)+ñ!x8\x95Sºoã\x95PÇH¶K@L\t®\x89_o¡w\x1c?\x11³@§\bdê£\x1aòP\x1a_/½ü&Ç\x94=ÌEB*§ÅÞvêi\x19ñ;ß\x11|¥Ù\x9f\x06\x7f\x8bY¯ìÒ\x19æKJ/Öâ@°S0\x02\x17òåcåa\x00¥6¢a>íHoµV\x12\x1c\x8d«è\x0fTu£Z#\x1dw\x1a\x9dÄ\xadxþ4\x93\f#¡g¿¾I\x17~®\n2`\x1d\x9eÄØÆ9\x1ce\x86dd_\x7f47: ²¤\x93ò%}»Cn\x14¿0AÇ\x18*rA\x135\x9bT\x8e\x9a.Ó\x93K\x8dÁd~\ta[\b8s¸ößD\x86ÿÓG\x9dp\x97Ò\x9aW0êKí\x05â@í\x9d\x8d]Ç´¶\xad~8Úa\x02KRiôckØ\x03b\x8e\x8a\x91N/\x8eó4"èàñ¥\x0fF\x8d³zá¦4këÙô\x88&;ãÔZ\'Ai\b2\xadæTN\xa0\xa0ìøùóH\x88°-Ôµ\b*1l\x81k¶\x02-2<Ff\x18\x00\x93\x96@\rnD\x9d\x87éÏå\v\x1c\r<Ï\x87]0ËàÀ\x8b\x81\x10ð~iÕUë\x0eÅL\x17!\x85ø\x8b\x19\x93\x9aÂû¿\x1e\'O¤´\x97.î«;CßDØÞ£oï@µ\x1d²F²¿÷\x97\x95\x98Ïâ\t¿¹\x9d\x95×(åü\x9d×d!\x17ûQy+Ë\x16\x16\x91\x16\x83*ÒäG\xa0lS@wÈíK\x1d©ýý\x885¼\xa0¥\a\x18o°\x16\x97Ñì[Ý[ñK·\x12¯Sg\x8a¯c\x86¢±0JÏ®77f¤\x8b!\x10Ûi¿Çèè}Ó«\x97ú\x139~\x12\x87]}ÅdñØãT\x14\x13ývyD\ngl\x99/qg\x9eQ§h¬g\x84Âáy\x18a\'gÎ\x04Í\x89ê¸âaÏv`á\x1e\rÀÿ\x8d®ì\x8fÙ\x84\xad\x1f\x87\x91\x16÷jnº\x13]ü\x0f<qþ¥+gú\x06Äþ\x00\x7fY¼3R4\x05©s(kí©k\x14\x9bà3)â@jA-\x95\v[I¿0ÉF\x8fä(@Ô>jÅÛÂ<Ïá³2x\x84G^F¦\x11ÔlEa\x89¯y¹B\x97¶©\x86\x93¯\x8dÃÛt\xad\x83\b\xad)H\x14@ê\x02\x9f-è\v"z]_ÁYøB¶mj©\\i?Ìf\x98(\x90\x8e¶\x010 \x81ðõl[2ÿ\x8eÆ¿núËÌéï\x94½Êu\bÔúL\x93{òEÝþq\x94D?jix\x12çõ\x80=agórï~\x14iÙ\x90\x04ÊKâktQë\x17-øÜ£VC²´+ä=áK.\x0e+\x18¬»NÃÄû/8\x9fbÊë\aÙ(m¥ó2\x96h\x82D\x1eþy\x1e{%\x06ã\x98ø\x1cT\x9f¹{ï{#îÃ\x9a\x8c\x04\x92\x90syi\x94« \x93ĨcÝzUHUnØÌ_ãÙÿ\x96\x936L4á¨^6á_\x9f\x9bØJ¥g»j@x^K2Á\x19\xad\b{\x89ªCw¦\x9dB\x95Èh×ft0Ø^F_\x90\x82-öÍÒäÚ\x00Æù\x8f@\x05§\x11\x92(¤1Þaö¡\x04âÙ\x820µ"Û(g\x7f\x80-\x90Ç\x89mò\x16¯¯Å\x9c\x02Èr/ð%ø8ª\x7f¼yÌðÒén\x8c>òL\x1e\\\x80Ë\vÿI9AåÛ+ÚAÒ6¸\x9aÍ+¨ù_åëµ\x88=;ó²\x01hm·üL`L¶óõT_\x9aV3:\x1eSX\x82Z\x9fÌI\x03µX¶\x1a\r²!acÙQÞ\x05\x9b\x1c§\x11ãzã¿\x03<\t÷\x82\x9d\b\x8c\\\x0f\\l^ô¨\xad.\x13\x06`¿àÄ\x85¹Ä\x1fk`ùD\x9fó£*´Iô\x92\x0e\x19\rL*\x9e2®\x02òsW\x85-[U\x10\x10J\x03\ne#Sô\x89ñ\x85\vÁù[\x8bð¹B\v§K\x88À±Þ\x1bæ\x84îºM7Ñ&*5õÇ8m\x0eò\x14\aåJz\x17÷Ù\x86\x8c8[\x19ÿíUþO\r\x88\x9c\x94LÚ\x88\x87ë|\x98¼3ññ\x85LÉgÄ¿-3+\x18\x14ö¾K\x1bÏWèEC\x97\x99tÒ\x82\x9a\x99\x97n\x16¬ÐÅ/÷â¢\'DÒ\x05Û\x85\x97X\\c¨}\x86Æ«-Fqázè^\v\x10P÷ö0\x82\'u\x11ëM\x01Ïf6\x95ÈkØ\'\x7f\x92\x1c®²Ø\x94\x17\xa0¹g\x81üî\x9c7#á\x83\ft\t\x92ãs]$¤÷\x01*&s{I"ôã\x87\x8dÌÆÒåyùRPBÀV\x8bãcÓ©ÿxاÃx\x97\x06ìßHÞ\x82A\vÝSßp$§ðS\x97ñ\x99K8\x809»X«\x97kÎñ(\x91ü·\x89+¡nGq>w~\x17õKé¢1;رî\x8fè\xadÄ\x010¼Ý;\x8fc\x05·\x01¨É²0ë\\$E\xa0sñC:)nç\b\x90(+\x82Ãîôdͽ¬M\x8f¢;ú\x8c\x92\x18\x8cÖ\x15\x1e#\txë\x1f³\x16.\x86c\x86$1D@ZiìÅ\x85ôÒçÄ$\x9fÔ\x18ó\x81Â\x8c¬Qù½¡mø\x1c\bdî\x89>\x1ci$\x18\r÷\x1e\x83Ã\x1b\x99»G«kÞ{\x9d\x06¤Êÿ\vúÀP\as\x19Æ\x05úþ\x1bp\x8a\x96ý«RÀÌÒ\x13\x8aÛ\x14z\vOó\x93)J\x83\x8eùh¸\x12\fé*HG\x17Ýʦ½\x99\x9eò?ÝÉ\x85¶\x84\x96íÊè´\x8aã¤]Ù\x02á\x94\xa0\x829\x13C\x90õ,"Þ\a/væäPHJû³µu\x85 Ö\x8c\x04+fi\x89ïq\x9d\x8ev«\x95\x06£s\x84;ÞÕ\x87ô\x8ca\x01\x1d\x99\x80çf\n£$\x85\x00m\x96Oq~\x8c}\xad\x84¿èmöÓp5\f\x9dt\x9cox7ô§éN¸\x17¿C{g\x90\x9d\x18éò|\x965¼]Y±\x13;\a2õÖm¬w; ¿J\x88[ên\x95\x89E\x9c6½\x1c\x92Edª[JUò´/O\x83}ê.Åw$;¶¯U¬Ä¸ü\xad\b5êx\x05\x9cÖzq\x18ÇÏwCý@\x99%S\x11¥Eß9ê\x00\x1ak#Á\t\x86¸\x819\x0e4P\x1bl¿Ó9{¡°§Õ»¯¹?\t\x7fò>ä\x90\béxz\x98%Â\x98\v[ü\vI[zÙÍkÛ(¿D>®\aKðö\x94\x1a²~\x158¶I\x9e\x8eep᧸\x87ì\x9dÒ\x00\x8bpW×;ø\x1eN\x81\x90¥Â2Ä>!j|b\x01\x0f\bãz\x9fÔî\x1bÿ4Ôi\x17¤¨²\x86ä\\uù\x019<\x0eÖbä\xad¶»¥LÁXXl\x99æu\x8c,"zjµv\x0e(¡\'ÆXM\x96\x04\xad\b´¬W"O\x89¡´c\x95L\x8e\x93µvE\x95â\x95ÅGQ\vZ\x1fdÉgÂï/n\x8a¶\x812l\x8f[B\x06A\x8cJe¸2ΣY\x14}[Z\x84\x98\x15\\¸\x98\x06kCû;ÖîT9\x05=,Î\x8fÖ¦`öê«êTtÁ×yñî\x87ì\x14\x8c\x99`&ì\x9fÙO7³¥¿mè¥\x14\x98\x82þ\x91¾ÕÚ;\vK\x02¿\n\xa0ºEûEñÈGw\x0e\rt}N-£\x94?ÙO\x8eô\x88b5/\x95Zø×\x1c¤ÈÅ\'\x1fWR\x86¾&©BòÄ`"Ûj/·\x01ú±Ç\f\x95DwúÄÌþ\x1añ!\a¥\n \\Õ\x8b\x81\x0fhH=¸\x8a\x8fÑÉ\x17 ]\x0eH\x86\x1a?\x181êZFé¹;ñ÷Þî\x0eßÕ_mcʧø\x8bDBTà´¢ Õe\x1dÃh©\aÌc¤h\n¨8\x8eÈÊØMÛÇ\x99ú\x1bù\fViXÚQÈíjÈ\bY\x8f* k<5P(\x82¾T«c²ª£\x93{p×bX\x10:Ø\b«L×Ͳ\'çcÀ÷\x7f|\x1d\x9f»ÀMÊÛAy.l°¿\tä\aü\x8aþ~\x8cä\x8cb,³\x1eë)9LïsÐ\x8d\x91\x8cCîXêsÜ\x1b¶Tzma\x0eÈã6ú\x94`Ý\aa½q»W"\x19ë\x168}qu\x97\x89\x14{\xad+³U´În\x8e|\t%\x125\x13S\xad1»OÂ\xad¥ó\\úÚ6È\xa0\x95\fï\x86\r2\x8c©ÂG#îIU\x12üù¥ÒÅ ]zz\x06\x95\x13Ûæ\x0e\xadª¤I½\x05s©"Nâ&\x95\\# !+Ò´\x9d\x96\n\x15\x9f¿`ízÉ\x8b\x17~ºß{/*öç¡@Qª.T\x8c&¡)\x9a2\x95s\x1f\x85À%çpÄ0 °©@uû\x99\x11ÿ\x1a|I§)ÂØ\fò\x9eÐ\xad4\x8b\x9d\x88Å»\x01#\vWû~Z¾¬c\\\nãñÆ\x06\x9b5Dl±\f\x87!ù\x1d\x02\x9aÿ\\NÛ\x9bKp\x9b\x9a/Üúµý6\x04\x91ü\nKò^\x12\x06Ä»aà&§-R4}\x84\x12\x11\x8b\x9bÂ2Dáðï\x99\x92s¡\vI¯\x19\x9bX\x9dk×O²ÀO®Óv\x06VíÆ\x9aR6*+æÔm³\x14ºEhÓæé1å&÷Q_\'ü<s\x03I\x83\x13\x97áCÃ~\x9b\xa0\x9eÙ.ñ^=ƹB±>\x94s\x94\x85¿1À\x98ÙÙà{¸Û°4vÑ%Â\x8dâu\x06q\x98êa\x95c\x85;4»\x01½¯¤9Ý\x01\x98z\x92¸ÊH\x12\x94\x1cL\x1c\x8f\x1a:·\x03O¾w\x82Uª«ÿ\x93\n×f\x97mZ\x97²\x91\x90õ3\x13!«\x06Å<É=\x9a\x06\x9d«\nPë\x91~\x02v@ ªÑ;q¹\x14"@¨\x19\x97D|\x89\x1d§M7\x057p}\x8cxtÃË\x05m\x00¹ô\x01ø\x06\x99Ñ\t`á\x16 \x84æ\n2MCcØC3x°Xº6\xadÝWHj\x82¶q.jÃ\x11ÑÀ¾\x96\x1dÕ\x9bp \x14üÿh0Eݾ\x01æ\x10ÊÃ\x17\x87rͲK\x95¯<\x99f±I\x1c?jK\x8eUê\x91Ó\a:7\x1c,\xa0 4\x8cV\x91;júìÖáKÅ)\x99Ù\x88iÈüãà=\x15S®\x7fAªÄ4Òº+¬\x03¦÷)405îï^\x1bÂo`\x81ë¼k»\x85køòç\x16\x13TÑCés§Dp\x0eE\x9aÊÕ|ò-h¢¹a\t\x0fÑz÷àP\x86nV"Ðí¥\bó\x81\x1d\a¼\x9fØ«âÌ:¬"à"°ü¼©ÊZ\x9b\x8dYlç%^]\x7fÑ\x12¨Þyç¨8\x97 ÃÔ\x1c\x19Fz\x14hõP\x94\x82̪\x94J°pæ\x17zìõ-Ö{ázGº8éü\x8esS\x87lb\x10¿¯¨J¼Á\x16ùÊ\x8c©hB\rjÝY\x81R@\x98»½æÿ&\x9c³ë\x92pÒyJ[w\x85ï\x11á<û\r\x94&\x84\x01¸Ç°êÏys\x0fjüEeÂ˲I\x97b\x1d\x11wü\x94á\x99\x1bkéè\x00\x85{¢¡¡+ åsÞ¸\x12RQ\x0fÒ\x03å\x19#Õ\fæÁtb\x93@b\x862g\xa0©¨£ÁPì\x8e\'[|éa¡E²¦ðËG\x0e\x1a¬,`câÚjé"\x1f7E{t¦Þ÷ \x19&]¾\x1f\fbm\x1f·¿\x1dü4\x830äØN[µª\n\x14h\x86L"\x94Àø\x82\x96æ\x9b¿c2v\a¥\x0f@g&ià\x9f\x05Æ\b\\\x91¡ÏRî·ý\x87\r8\x86[*½ÿÑöE+\x87¦\xa0\x14p{RÀÏ_ÍáJÿ×\x01ô\x9fv\\Áx<°\x8aD1\x12m\vw\x83\x04>â\x99t^\x10Ë\x10[\\ùRηO8%\x84øUdV\x9f+<9)\x0e\x86×:ô¿2µ§\x95|6Ç\x8d>[uHà\x11\x97LY\x92\x1eý½×o!=¥snòd¥4j}\x02ø£v½eþÈÓ]Iö\x88\x94ì\x99F1Ja\x8c\x9a|f\x89dt]\x9dÐÆ"zí\x83\x99J\x0flË/\x10ê\x15ÑôÂ\x9b]L3dÆ«QòÕÓô\fܶ\x8ca\xad§\x17¦ç²6è\x15km\x7f¿\x93òÆY?\x90Ʊ "\xad½íJY\x8a\x1eþ¹©Go)5Öx?ëY7¹ö\x80ÀÁÕRÔ\x89bÜã\x1cp8«\x8b;t\x8aDïfàØ\x8aÀúu\bZ\\£.\x99Å\x1e\x81\bî\x04\x9a\x8c\xa0S\x8b>®3B÷ô\x89&Î\x82m\x95\'NçØkàW\x1c×üW"\x10\x80j\a¥\x13_\'¯õ:^a4\x15\x14\x8a*\x80\x02q\tÕN\x01.\x97x\x14Lî¦E\x0f?¬ÞRÝ\x83ýÌ_\x10\x1eê0Îæ\x1aìä\x14¨\xa0ûæâÐ\a\x04\x98¶\x93§©1Ù:^ÚQ\x1b@N äf\x9awÛ\x89>\x92Ée\x8d+f7¯Bü_.Kê\'\xa0Ù}\x98]§²ÙÿÊ\x93*òÐC\x84\xa0\x98,6.Dwñ\x89È I[Â2ÒUT\n5$\\\x06ú\x00\x10]\x14Hù¿Û$Ý\x14\x88´Vu¿Éä\x1c\x90Å\x1d\x94\x19\x84\f\x8c^÷x£~IÇ&¡\x05\x06iâ}\x80\x11½\x8dƳY\x1b·\b³¾º²ý\x8cß\x98ä\x85¤ð»£\x03\x00\x81\x9e\x04{\x9füÚ±¤Èç®,ÿ\x91Mêù\x84\b¿\x10|\x87äË»y\x86Û\x95õ\ai\r\n\x12\x80\x94§:\x0få¢@/{7¿$\xa0\b\x95F°]%{4»\xa0õ\x87\x856Î\x93Ë\x145\x11J\v4.10.2710.0\x1a\x80\x01r1ø.nÉ¥\x80B\x0f$%¢Ä\xadêõòñðËÞåBë°XæñÖ\x9c\x06Ñ¢W¶^Ö:ì\x18ø\x1b¾\x9fg±ÐÎò03rò0ù\x8d\x96ɺ`\x87!ôS\x9eÍÌ-Û%\x83*ÞWÃwå\x0fx?ÜDJý³\x9f\x9bà~ú\x01Ò\\\x10\x81F¢9D\x19\x82\x93O3Ý~\x96\x88Î:\x1bxöÑd\x1c)Ñ\x8d\x1f±¹¨?\x11>kJ\x14\x00\x00\x00\x01\x00\x00\x00\x14\x00\x05\x00\x10V\x85nÜt_ÐO' pssh = input('\nPSSH: ') lic_url = input('License URL: ') 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) widevine_license = requests.post(url=lic_url, data=wvdecrypt.get_challenge(), headers=headers.headers) # 说明: # 第24行需要根据不同的License类型做出调整, 不是一成不变的, 举例如下: # ①查看License请求的cURL, 转换成适配Python的语句, 若最后一行像下面这样: #response = requests.post('这里是License URL', headers=headers, data=data,) # 则第24行无需修改, 只需将headers复制到headers.py中, 注意消息体的类型(Content-Type)有时不是application/x-www-form-urlencoded # ②若最后一行像下面这样: #response = requests.post('这里是License URL', headers=headers, data=data, params=params) # 则需要增加参数(params), 一般解决办法是在"headers=headers.headers"的后面加入", json=params", 让参数以json格式传出去, 否则通常会返回HTTP 400/403/502 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) # 建立key_string字符串, 使得所有key进行如下变换: ①添加前缀"--key" ②使得每一个带有前缀的key以空格的形式连接起来(方便multi-keys时一键复制) key_string = ' '.join([f"--key {key}" for key in keys]) # 使用导入的pyperclip库, 将key_string字符串复制至剪贴板, 省去手动选择"--key {key}"、复制、粘贴的麻烦 pyperclip.copy(key_string)
-
-
-
your actual headers.py file should only have this content:
Code:headers = { 'authority': 'vds7b9j3.anycast.nagra.com', 'accept': '*/*', 'accept-language': 'es-ES,es;q=0.9', 'cache-control': 'no-cache', 'content-type': 'application/octet-stream', 'nv-authorizations': 'eyJraWQiOiI1MTYzODEiLCJ0eXAiOiJKV1QiLCJhbGciOiJIU zI1NiJ9.eyJ0eXAiOiJEZXZBdXRoTiIsInZlciI6IjEuMCIsIm V4cCI6MTcwMDQwODc1MCwiZGV2aWNlSWQiOiIyYmY1ZThmNC1k MjA2LTRhZjMtYWZhYi1lOGViZWRlMjdlZDAifQ.Foir5BlK8jy 7qcaOY1sjEdlESVHMIsXkcrQtSitcm1c', 'origin': 'https://tv.vodafone.es', 'pragma': 'no-cache', 'referer': 'https://tv.vodafone.es/', 'sec-ch-ua': '"Google Chrome";v="119", "Chromium";v="119", "Not?A_Brand";v="24"', '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/119.0.0.0 Safari/537.36', }
Obviously change the headers for each service and video accordingly, this is just an example! -
yes my friend i did also this way, because i know more or less how is working, but not result at all, nobody have accounts like vodafone or orange tv to test it? i have this 2 accounts and not working anymore with wks keys, maybe i have problems with blob keys or key device, or maybe with protobuf, but a tried with a lot versions of protobuf 3.19.5, 3.20.3, 3.20.1, 4.xx.x, etc, but for example with one account i have of zapitv is working properly
and with accounts with nv-auth not working, maybe also nagra drm is not the same to widevine?
anycast.nagra.com maybe is different to widevine, isnt it? -
-
-
Hello, can you give an example?
I tried with the NV of the APP, also from the Web and nothing, it always gives an error, but if I try with the payload of the web it gives me a license, but with the phone's drm it does not generate a license and I cannot obtain the key .
Thank you. -
Hello, can you give an example?
I tried with the NV of the APP, also from the Web and nothing, it always gives an error, but if I try with the payload of the web it gives me a license, but with the phone's drm it does not generate a license and I cannot obtain the key .
Thank you.
Similar Threads
-
I need decryption key
By ansonbanana in forum Video Streaming DownloadingReplies: 43Last Post: 5th Mar 2024, 14:48 -
Can't find decryption key.
By phineferb98 in forum Video Streaming DownloadingReplies: 59Last Post: 11th Feb 2024, 07:03 -
WKS-KEY does not get decryption key
By HORDTHIONZAC in forum Video Streaming DownloadingReplies: 8Last Post: 17th Jun 2023, 05:46 -
Trying to find the decryption key for vrtnu
By thomasb in forum Video Streaming DownloadingReplies: 9Last Post: 24th Dec 2022, 10:33 -
How do I get the decryption key
By Bakekalu in forum Video Streaming DownloadingReplies: 6Last Post: 5th Jul 2021, 01:25