VideoHelp Forum




+ Reply to Thread
Results 1 to 5 of 5
  1. Member
    Join Date
    Dec 2020
    Location
    Croatia
    Search PM
    let me say at the very start that i'm not really interested in the keys to the specific video in this thread, i'd like to know what to actually do to get them because it would be a bit ridiculous to post a thread here every time i want to download something from this service
    and i know i already opened one thread months ago about this service but it didn't really help because i didn't have a working cdm back then so i couldn't try it for myself
    now i do so let me give whoever can help all the info i have so far:

    EDIT: forgot to mention i'm using wks-keys
    hrti.hr test account: username: samo.loi@yahoo.com, password: Evolution169

    hrti doesn't really have links to their videos as far as i can tell, so you'll have to enter the video name into the search box in the upper right corner

    video name: Plavi cvijet
    mpd URL:
    Code:
    https://cdn1.oiv.hr/hrtvodorigin/cd14a933-9b0f-0110-a1b2-cc173b542e19.smil/manifest.mpd
    PSSH (2nd pssh parameter in the mpd file):
    Code:
    AAAAYXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAEEIARIQ+O1Gd1tjPGuWqyI2hrlyuhoIY2FzdGxhYnMiGCtPMUdkMXRqUEd1V3F5STJocmx5dWc9PTIHZGVmYXVsdA==
    License URL:
    Code:
    https://lic.drmtoday.com/license-proxy-widevine/cenc/
    headers.py (license file (cenc/ POST) copied as cURL (bash) and entered into curl converter):
    Code:
    import requests
    
    headers = {
        'Accept': '*/*',
        'Accept-Language': 'en-US,en;q=0.9,hr;q=0.8',
        'Connection': 'keep-alive',
        'Origin': 'https://hrti.hrt.hr',
        'Referer': 'https://hrti.hrt.hr/',
        '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/105.0.0.0 Safari/537.36',
        'dt-custom-data': 'eyJ1c2VySWQiOiIyMjI2NDkiLCJzZXNzaW9uSWQiOiJmSU5zSFVHQlRXd0E2T0t0VzMtVzJPN0lneTZ6TlJzY2l1aU1WWmk4XzhwTHh4LXdlRkFFdFFXR1FkandlRWZZNnVKWkJoZG4zbHJELUpJdnNORURidy4uIiwibWVyY2hhbnQiOiJhdmlpb24yIn0=',
        'sec-ch-ua': '"Google Chrome";v="105", "Not)A;Brand";v="8", "Chromium";v="105"',
        'sec-ch-ua-mobile': '?0',
        'sec-ch-ua-platform': '"Windows"',
        'Content-Type': 'application/x-www-form-urlencoded',
    }
    
    data = '\bîY\nW\nA\bøíFw[c<k–«"6†¹rº\bcastlabs"+O1Gd1tjPGuWqyI2hrlyug==2default–´\nðŸeã³¼ô£i÷<1õ º¥î™08÷Å*ôB€\nlicense.widevine.com¹Ì†‹3:/w*ŒÀćÌ3‘Ÿ¤XÖšš¦ƒ:ˆ`Èŵmύ¤Ô]d\xA0c\'NYV`pQÄŠ©^iÂßr|GDôÍp£¹VŽë1ÿs¢ÚÛ#»ÊÜ×·.²©\tÁâ&Ü\xA0ƒ“¿Ì¶³?ˆÌØuuÓ"⡈Ûz|ñ.ú²‹©\tTƵ\rs?e!΁˜ÀÎKûö¶iHá»$u=@F¹&ÒýíGn¹$ÇÝ%°0›æ&ˆ\xA0šý=íé=´$¡±¦ƒe\0ÒçL`‰$×yDø|;¤Ëʧ›Ì{hE@“=Óos£<‹wQEÀÒh\xA0"¡€çO¦65#mßä#˜‘6\b…-\'v\0ŠHL*BÃ)"K+GöÖ:¸–â¼\ný$fó¡ÊŸ²¯Ÿì˜Ú£…%É?Ý+¼o7¢žf¬¦õÐyç6šaˆ½»ìiƒÂ¶ë^Ï÷gdwUóó–ýs«³meÇ\n\tstœ\t^âdGK™d\rùÑÎlãq¦™¬ª:™^XXP±gÀÅCÜ[U«ž}£TKs§×¬MÍ¢ô%0cV˜<Y5]’«þFo‘½Hã;J"ƒžÈpU6ÓA,:Ý´-Ñ‹H˜ñX¤H¤Âª.7î|z¹»ü`"Ö1P&йÄTÄ`o‚zlÌâf×BÀ:àŠ]²ç&¼Œ…Ä9ì=4pŸÁX¯g,CÆÀ0q4ˆ‰®|tøo.‘&X/\\wîm9_¦‰ŒK¿›ÃAÒ£ÚÕ%ïèbÉ5nh\t?Åx¦-Im—”A¾óÂ?\n»3\0g$׎VKÉuá$RX];HÎ¥\'EìA*K‡œ•Ô\r¹‡v"RÒ:—\'ÿBËýƒÄ…>ÿoÐî\\¯˜èMèîì½ÖtÑ.r¹ÏÞÀ›E8èÕ!+fé×Ù‹—Ì@\\‰©!ËÈ,=_*.ˆrûU4\xA0bÂn¿\rUVã§b(ÌTÖò\tÒÞ¨/áºmíaR¤9˜3KN»/æAÁs6uX³ˆy¨¯z¢«ò7¸rš/•¿³zKÑã½.&/\nBØ)[N>Kî’\tÒ\fã7‘\xA0ÚieÜ5€ij+ê¥zi§$.Êȵ¥±«!Ƈq3®ÊV9hÊnËWnC¢b6ˆpRÕRyÿ+*\t”êýõØÊ.›zšåŒâ\foméèÕ±D·Í¹@Ž9æÀÇŠp«nëè¯×]b ³Æ¼ÐlÔ¾J¯e9nmK|È¥çœ5ê,í=öÀFï´ƒØ\r—†,³AœäBå`ƒy)é1\\kOÝ\';ZS?lÄ™ÛéPòâ£lÃ{“w¦üJÈDH~3¶)knÿù´8¹ÏUÌ\r¤.\n*Ê\\ë;Á$(»MÒáycZØ‹)Ý*„ã˜Id"á,#Q“ó”(îJc\xA0oëz*²ÖrG€â2F‰9Lwv³_N-÷ÐþF4•5‡„2H3ÀW¬äÑ@(2žÎ¸”sø¦ÜÍ\rQ#^\tÍ›íj²«2\bZñ/©øEíyšó»Ãê)¢\0úYäfW*\n>0•K…·MÆ[™†¨…\tdãI\täÉ´ÄŠÜ:¯âR¦kñHÃNYÝ<¾ÎþâÓxYT¯Š`¼¸|FHsÑïevÛÎÍ󖨐wé?Gмš+U5\f÷2«Ýù\tuʯ£«Î5Qø>øó¿˜Ë€6\0B$î_‡4ž1:´D*ÞúÄ–\tgê¬zñüŒnµ 0¤B“ý¶ËL%ô"ž%xº\fGfûÕl“¹ÿ¤Ã•LyeT;ü¨ihÉQ¹£kÔ³\'C~i\0\rŽÊ(nåe¿E1zFÁl2÷õ\tF\bo5îùˆm²%ÐH¥×t1s¤^™\fÿʱ±Z\t=.ÌLç1؆hŽöÂ܆‹ðѺïRÀæÒȘ…í-èÂ1¼»7»P\\˸¼\f1h¦Ü»^´“R¤vÿC*œã1k潏ÅÃÝŠ!årv•.`Ű…ЗìžEý4*P¢Ä\xA0_ªBN"´ãB½|ÿ[@…‹ÇyžR2mÛ!Ýd,ô·M%\'Í9|\nF±5þ³-FpÌê¬\0iV2\boH›â¦¦§ù{ûùÙ톊G=\0ŠÈ“¾Z¡88pÕ9¥‰\n„qR¢¢7™ßæY €LNž;Rgà“N›,õž™Àšë"æÉ^ÌX§Æ8Å™6×äNB^?>ˆBò³=ßz;qŠWe¢Öí²¥H&}8è‰I³6ñŸ†â„Ú/«ääE²1«*mòÌê*Ïe3®Õ€,¯2Ôm§‚à©}‡y³9ÿ°ô&Y¯÷ÓìT4\rG?`ÊüEÍùô8ùø}›*–2š@k̯šëß2ȳäÍA«A¿%òÙ.Py¯èHä8Z<¿/M‡_ñîk‚¿pã×Ð>èGŸ1®×*æzcçþ\t¶¦üº1Œãs‡s•õR¶¨|8"€ÇvÛVîñÉv¥\r%ϵŽÑ`w³¾upgä±0’i¸2i±×]½5=óÈáÓ¿üŽð*h͸]ûã’’4º¢–š‚!ÌU3tH3±ˆ]ecÔ¼‰iT°BRD\'‰ÀóÊö±œ÷·Ëÿ&æ±™DÁŒ6ÄÅŒ>“?g{Ûò¤§FNSlÔø×\n©KO¢›Öœv³%?ñ¨¤óîÀ7LxZH¤|×a?QL¤|bNrÅv/¦h‘[!$Þ8“ë{Û…‡3Ç8‘D!óIlkIŒ ÿ‚5ÙÁ\xA0k–‹¬{@Î½Š¤ˆŠ„xd2Uá ^”,{ÝÈuCrTÌ\'\n7‘ß*ØR~BD軆q`PÕkUã—¶æ6OI€1tnŸJ¡|á,ð¢\b¢¥VRÍ‘ÝPÛ*~vèõûi‡Ú¿4kÌvgtÈÛ”|{‡÷YdGaó"ŸŽÕc\n›ùT4wxRZЏ\xA0eO¢V„mÐmK‹Ä³MYý{óDR¼>ÅsÚ¼|´ùYK´†¬_€úqöÆ©â!†5ËÞÆ9¶gX1Í8LÍì¦ÝwÖÒ´§Úúæ0³YØ‚¸v8~îiC6þ¦r#1[—½J1\bÍÁA‰@šKiHì2Ï¥©‚5I\f\nÉÁ—41›Ny$AÓ½#Œ÷5Èo±GàCGŒf›-š Øß–Ošq°—]o¬Fl®û¬\fúS§Ä@°¢¶ü#lÛlÀUg32ÄëDz¥ˆŒMYêIîƒ]|9P2Jœw\b¤xîÅFÓ0°ÍûÛ©Ú‘€u`£`Yð$üÿ¼Í×Íó‘lö*#ý3i¯¿ÓN™}Ø\\±sÿŠ+Ùúa›fqðõ"ÔsÌ’tR§÷\t\\BU¿–èò“¤ÑñR¼þxš\'ð-‘îÏ´ˆ<\\Œ–;…w‡„² š¯ïsá^\fÉäãJÕÁÒïÀ4î&ze®Ucb}UÑâÀ^-.táK›Ãƒó\níŸ  »|\r±©¹\0^\0¡5ðÆ\tÜ[Ô\xA0™,}ãz:*«·3]^;*¡y•£ˆþzÀyÜB•à*²øþŠ‚€"ËZL€æ{ ÄøÚVãm˜ÐsÓy„Ü×)1«¦$)ÚÛ)¥»ðÖ©ÒÔ3ö¢VøžŒ€ÌV>¦ÝSð@êœy`I³«\'\fóçxÖÙ©Tù\\Œjå\f_«ð¼v§še"÷ɿ΃ÇT\bêI©ÚU{»…AÙ`£ó:ŒÌFþÙ3X¸œsc42—ÀŒcö/Ðqƒé“’6ðB,?\xA0ÕŽÑí1¸§‹Ak·X™QBÅ—ßá–.bi÷¯3¨ÄÞ¶ ;MÐ<†Ä89”£Ã?þà e¹v‘Wë`8îÎ ÃÑôŽ{\rȧSéGùfP°\n}bšêñ5Â×ãiy„¹,‘¬ºÛéÜÛÅ8§mœ"…jøèZÊb•9ÖØ3Qo-E>%Ù°2ž\féïsʨ+ß3÷ì¦IT°ÄŸ%¢[4dÙ,Tˆ‘*°Tú”òÿ(M½Q»+«>Ð\fõ®£ˆ\nA/XZ4¸£¯ÇsjÍ»[d—DHå·ï#åVÏòr¤k7učV›\\áV3ÕíÍâñy\fUný¡PôäÑ(ÔáôŠÑpÈxþ«ky ´g€&eZñÿPºß|ÆÅ<æ?§ç3&j¢\nÃV*q‚#\0´”\nô÷ÏÅ–\xA0ò8š\bºžsA‚½À‹½ao×Tñƒ±˜¿4åhÕó:±>ñ\\xCqNúäcçGFû}ë²t=æáË«äYA4{HT\tµß-¤œÍ\fÂ.v§É-KªX\nøû’Þ¿ï6B)ù*U´³"íŸÏáH…Ù$‹zTõ·d^}ÐÁæì#Þ\\õ\f\'Möñ™aÏljwì<û\nX\0\t<Öèýä¯eIÒx!³\nãÏyí± ‡‡FÎh*ïÚz»¾l7&¤Læy\tZ)¤3\xA0y¬÷R~¼äÄbž°û„+l,µ”hõ*iO(ü£\'qŠ×‰wæ/»¯\xA0j¯Ì‘3M–\b?‘‚õ/r©h“Çͼºâ~[ä_\tŽIz›Ro"ÝÎ "Ȧñ–0\bÑ\fˆÇTAô›@¶Û`\tÛ\b`÷j|)W¦¸,êé^ÑÓ™ó‡òUDØÌ+Üîq;È~2Ö¶ÁtmËUž}¸˜·Í…4¨å\'üäTP²iÃ$ÓO/dµ.\tøl2ä‘οlEjŽ®_JxNhÖFwþEظšîWé°Ï¡)ÞWIUe@ÞÔEÇSýï*:åcvÚ\n騆+«›ëEprA–é\tëÓ/l:üÇ%ßb?Zyü¸wÖIƒ‹\nZÕ-C÷¹½ð)Ž¯Ê™)™5”ðu›êw\\:´¤"\xA0WHÈ롤gš3b)2™*€pé€ä>Úo¨@v\rµ‰?ãÜ™\0½±ˆÝrȬU_`¨)VÍ’§&òQÅÄ)ïC ñ½Íæ*ŠØú…Â(o¸Íçš%ûÄzÿ˜¢itKÏ‘ôFçL·ÿ]Wâxˆð¡{ϱàoɸ;VÓØpOUA„Êt8ÀëæÈ9¢*t8Ó‚ŽfËÞÑXہà†Sêàs¥&?ÊGGÞºµŸ‡Dò=ÅíöƒÏË‘…´ZIŽžUý`3-~•~¼-8ì0½\'#j¯PÕ‚4‚íí@^¯`‚NHkAIn\tA$/Ú±½ÇÆ…i³Ž÷]L~Íð{,u´€…ZK®ˆ»„\nùh®h;[R^\0€ÙHÒ_þ>Æ{ª0,Õs…Ä}*¾¿2véí«ž[…ܼ‹·\fø£v‚/"•–1Á¸Î·)dYÞ…œéaÁ7|×%_‡»…~(ÃKZL3FÁýHÆ·í…pÞšD̪ëíÂÞý¡’b¹N§J\0\0\0\0\0\0\0\0N‹b÷+E÷â'
    
    response = requests.post('https://lic.drmtoday.com/license-proxy-widevine/cenc/', headers=headers, data=data)
    in this case i had to remove the data parameter (also from the request (, data=data)) since l3.py gives me encoding errors about latin characters when running it, but even with a different video where i left everything as is and there were no encoding problems i got the same problem which is:

    Code:
    D:\Utilities\WKS-KEYS\pwdv\L3\cdm\cdm.py:260: RuntimeWarning: Unexpected end-group tag: Not all data was converted
      license.ParseFromString(base64.b64decode(license_b64))
    Traceback (most recent call last):
      File "D:\Utilities\WKS-KEYS\l3.py", line 25, in <module>
        correct, keys = WV_Function(pssh, lic_url)
      File "D:\Utilities\WKS-KEYS\l3.py", line 21, in WV_Function
        wvdecrypt.update_license(license_b64)
      File "D:\Utilities\WKS-KEYS\pwdv\L3\decrypt\wvdecryptcustom.py", line 58, in update_license
        self.cdm.provide_license(self.session, license_b64)
      File "D:\Utilities\WKS-KEYS\pwdv\L3\cdm\cdm.py", line 275, in provide_license
        session.session_key = oaep_cipher.decrypt(license.SessionKey)
      File "C:\Users\User123\AppData\Roaming\Python\Python310\site-packages\Cryptodome\Cipher\PKCS1_OAEP.py", line 167, in decrypt
        raise ValueError("Ciphertext with incorrect length.")
    ValueError: Ciphertext with incorrect length.
    just to test if the cdm is dead immediately after this i tried downloading and decrypting a tv5mondeplus video and it worked fine
    pwdv in the filepaths is pywidevine, i had to rename it because there were errors popping up, and now it works fine, at least with tv5mondeplus

    any help?
    Last edited by ampersand; 3rd Oct 2022 at 21:25.
    Quote Quote  
  2. have you tried the information suggested in other threads?
    https://forum.videohelp.com/threads/404994-Decryption-and-the-Temple-of-Doom/page2#post2658694

    the standard l3.py works for hrti if you use the information in the linked post (especially the license url)

    also note: the dt-custom-data token is only valid for about 60 seconds
    Last edited by ElCap; 3rd Oct 2022 at 22:46.
    Quote Quote  
  3. Member
    Join Date
    Dec 2020
    Location
    Croatia
    Search PM
    Originally Posted by ElCap View Post
    have you tried the information suggested in other threads?
    https://forum.videohelp.com/threads/404994-Decryption-and-the-Temple-of-Doom/page2#post2658694

    the standard l3.py works for hrti if you use the information in the linked post (especially the license url)

    also note: the dt-custom-data token is only valid for about 60 seconds
    yes, not working
    maybe I'm too slow
    Quote Quote  
  4. Member
    Join Date
    Dec 2020
    Location
    Croatia
    Search PM
    got the keys, finally
    for whoever is also looking for a solution:

    license should be:
    Code:
    https://lic.drmtoday.com/license-proxy-widevine/cenc/?specConform=True
    headers should be:
    Code:
    headers = {'dt-custom-data': 'custom_data_string'}
    maybe the trailing comma from the curl converter was the problem(?, though I doubt it), so remove that if you haven't

    and this line:
    Code:
    widevine_license = requests.post(url=license, data=wvdecrypt.get_challenge(), headers=headers.headers)
    changed into
    Code:
    widevine_license = requests.post(url=license, data=wvdecrypt.get_challenge(), headers=headers)
    I placed the license as a string into the l3.py file, got the data string(dt-custom-data) from the license POST request through curl converter, copied it in place of custom_data_string, saved l3.py file, ran it, entered pssh when prompted (got it from the mpd file) and voila
    Quote Quote  
  5. Maybe this line in your headers.py

    response = requests.post('https://lic.drmtoday.com/license-proxy-widevine/cenc/', headers=headers, data=data)

    was just too much?
    Quote Quote  



Similar Threads

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