I found a problem in decrypting DMMTV.
Can't solve the secret key.
URL:
Code:https://tv.dmm.com/vod/playback/?season=9fencvw380c6c7ky5spnmii2y&content=4mno9hru4pxwypfsx3dbhiooy
I have wvd.Code:mpd_url: https://stc034.dmm.com/launchpad/st4.0:YiVBtfVOwa2jHB0pv-bK19g2QNdApik-6xhqH8MVt+WP2mqf2DZQemWQkHgU--YcYg+PM1htxO8olj25cm2VRI338JAIpv+LTCEMwpSXdAUK3Msz8GlzVxeOfvedLhV2O6B5EG4-PvprqX9bn+6w-YzyHjQrYZRYgQt7iXYde2wDLg226UO+r35gLYuYAdjq+j3Q1Wdue+XSYlZNpmZAz2g+vCzu65Wzifvy6mMgQBnZR6tzsNLA-O8dsW9uEIMgnfntRIhfwN8Od0XhO4QaT+d9zJU48x3vePsfZKpdCsYnzr+dMlw8os9W5630UQhU/arp8Iwf7fVKFk09rXBhsNcgrH8HQ/-/manifest.mpd MPD file has been saved to: D:\WKS-KEYS\mpd\download\manifest.mpd Two qualified < cenc:pssh > elements were found. use PSSH: AAAA7XBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAM0SEORxWA+hrDJXuaUoqJtYH5oiuAF7InYiOiIyIiwiZmlkIjoiNG1ubzlocnU0cHh3eXBmc3gzZGJoaW9veSIsInN2aWQiOiJsYXVuY2hwYWQiLCJwbCI6ImV5SmtaV3hwZG1WeWVWOTBlWEJsSWpveExDSnhkV0ZzYVhSNUlqb3hMQ0owWldVaU9tWmhiSE5sTENKb1pHTndYMmxrSWpveGZRIiwiY3MiOiJkMjMyNzZiNDJjYWRhZjY5NmZjN2M1YjYwMjNmODg3ZSJ9 unable to parse license - check protobufs
It can't be decrypted when decrypting this.
headers.py
Code:import requests cookies = { 'xxxx':'xxxxxx' } headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:130.0) Gecko/20100101 Firefox/130.0', 'Accept': '*/*', 'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2', # 'Accept-Encoding': 'gzip, deflate, br, zstd', 'Referer': 'https://tv.dmm.com/', 'Origin': 'https://tv.dmm.com', 'Connection': 'keep-alive', # 'Cookie': 'top_pv_uid=xxxxxxx; ', 'Sec-Fetch-Dest': 'empty', 'Sec-Fetch-Mode': 'cors', 'Sec-Fetch-Site': 'same-site', 'Priority': 'u=4', # Requests doesn't support trailers # 'TE': 'trailers', 'Content-Type': 'application/x-www-form-urlencoded', } data = '\b\x01\x12º-\x12ç\x01\nä\x01\nÍ\x01\x12\x10äqX\x0f¡¬2W¹¥(¨\x9bX\x1f\x9a"¸\x01{"v":"2","fid":"4mno9hru4pxwypfsx3dbhiooy","svid":"launchpad","pl":"eyJkZWxpdmVyeV90eXBlIjoxLCJxdWFsaXR5IjoxLCJ0ZWUiOmZhbHNlLCJoZGNwX2lkIjoxfQ","cs":"d23276b42cadaf696fc7c5b6023f887e"}\x10\x01\x1a\x10|ô½;\x11¹\x1cL\x7f\\¡\f¨Ã½Ï\x18\x01 þéÕ·\x060\x168\x9a°\x83\x92\x0fB°+\n\x14license.widevine.com\x12\x10\x17\x05¹\x17Ì\x12\x04\x86\x8b\x063:/w*\x8c\x1að(ïÆuf\x05ã©7\x1c-\x1c\x96¥§\x92õVÃø\x16\x8d¿\x94DV/¢Ï~\x93\x03å|¶\\¯ Øõk¨ì\npLT\x80©#\x89\x9aìy,ð\x82\x7f\x0e1«\x98\x14ìÌÙ´\x87HGm\xad\x9819Ã`Þg\\?\f\x9fÀ\x05\x90\x9a÷Ü"ïU[\x1b\'s\x14ÉM\x9bö\x85¥®\x99\x1d¥\x18ÏPsÊ\\\x7fÿÖ¯ï\x14©\x14\t<Î|\x12÷å*d®9\xadª\x81¦\x87¾\x88ÇÆîß^í\t¾ÉÉa¢!ý\x18¦#d±3I\x8e«ÿµ^åàWÌvÜ\x87³Å\xa0=öS\x18\x91`¿Þ\x93Û\x1fh\x1c\x8cYq\x01W\x97þ¸Æ\x13i\x84R\x1e«!Ôà×ü\x8dÀðz»A\x11ß4\x80\x0e½n×à\x9a\b\x8d£^N\x1b³#p\x8aä´Ö\x8cÚÜZr%çþð¡Rp\bpt¬¿áeE\x06\x00\x02G®\x8f\x99~<á\x8aR\x86S\x0f\x16<\x1b³XÀà\x99¯\x8d>Þ\x10Tðæüò\x1e·I¦UChlýæºÛ\x14[E\x90Ñ\f\va1¡\x1f\x1d\v>\x1aØ\x90!ª\x98aÇ%¢÷â¾rò9þ£ÞÕÝvò°ß\x03ÀÀ¢\x8d\v\x94kæ\x12\x9b?Øc0{O\x1eû\x05>Uç\x15¥Áã\x18 "(\x93\'Tr\x94xÄäÕó`^Æ\x87ZgÛ\x83ÖIíÔÏäûn\x80øà_z}\b¸\a);\f\x94\x0e ײðÚìQlNI)ÀÜá\x9dª\'h±,\x84\x94ÓJ4\bÂ\x8f\vñ)ñR\x10\x81Ôkc\x8dÎoW\x17æÅ(\xadïh¹Ã®\x82ÂÝÝFÓ,»(\x06Ü\x89+\x85\x15·\x94+f\x95.\x81*S\b1þ!Ê\x1fI*ÁɶK=\x0fb>2þ5Ú\aOg,éæ*\x1aÞ£jM\xa0vc¾\x8a\x01ã\x1bÞÐâ\x84*}\x86ç\x98ÒàÕáIß-ëvgH\x1c\x94x==ç\x84b6\x81ª8\x80nÊcì\x9a`kÂI\x87g\x8ektÎ\x1a"½RºáßO\x1aörC|$ºïs 6ðÙÛ_\xadB¬\x7fûMU\x97\x97óx¹<ð\x90L\x9eD(\x032ùãB)è\x87Å\x19\x1e\x1brñ\x92n%ÒÛ\x1få¨\x16õÎ\x88&ÏP\x9ak\x11:þ{\xa0Néôni\x87¤gvÇVØQ\x9c6\x98ÏòZ\x9f\x8d"Á9\x9aå\x9eTç-Ä\x87½äyØ.MFx\x10\x05\x8a \x99R<OÍ<ù_ÑÆ\x1d9ö\x97,%^\t\x03\x8de\x85\x87\x91\x87ïI¥\x9enѾýuÜü!\xa0\x05\x0f{Ýþª¦\x03Ѳ#_\x0fϹ\x10æ\x9f\x04F\x06?̹.Ñ\x91/*\x804[åµ0K\x1b\x10\xa0Æ¥u×ò\x02U]ï\x85W\x962\x86\a\x91\x15&Å3;\x9c\x01\vÓg*ËÅ\x0eI\x90j°·´mý»Ôüt\x84íKë9ðC}7Å\x9fĶ\rÊ\nB\x85-\x9f\x8b\x9aIf;^\x87F\x14yz\\~Ù_\x13!Ã#Þ d\x01%Çç¥ÕW\x02\x87»ïÛÈ\x15C\x12p\'^®kmy/àâG\x19\x92úQò~\x8a®\x90\x8fÐè¨ñx\x91¬3¯02uy\x8c\x1e\x94ô\x84\x90\x8e¸»J\x7ff§ü\x14~Ë¡¸_\x01[y\x1coÍ7\x891w2\x1d\x81\x94\x83;÷>!Y¾\x10Ù\x17\x9côÑÈcª\xadIu\x02%Õ%3\x0f\x0f\x8b\x17^è½X£dú.¯¾}¾\x9b\x03cí@Áû)õù¥^aw½zRg\x8fË\x9b×tQ\x90Ã\x01=\x82Xº)\x17£\x0fZ7è$0Bþ¤\x0fPp×ùy\x85Áb/&0¨>²a\x11u/û\x14Ñ&{ÌÆÀ«î\x8f\x95äÝÐ=?é¶ð\x90§\x97n\x97¸|3?\x83\x1a#4\x82®XxÒ\x1f}(ü\x9d\x94°¹öµ\x17 þI\x88:ó\t\x93\x8c\x82¢\asýOe62Þ>1Ç\xa0i\x18»+\x8b\x92pðk3]°\r~\x96\xa0!/Ä>¶â\x1dL¤\fb\x7f\x95ø¢\x12E\x02eP_oÆóSã\x9bq\x90[?Rf}å_eâZGÅ£\x8cÙä\x8b¤\x97Y9\xa0(&\nWý\x00\x98l\x86Ä\x14ý\x8b\x996Ëç\x9bêñ#tÔôù뺽h\x84õ°p\x01§áU\x0f[1ÿ\x04*1\v^ËìÉáA¦ÕQ\x87\x9f\x92b3/ø\x05Æ\a\x03÷71å-ÔÏ\x04D!Bj\x13R´ä\b_^&\xa0Ü\x91\x00áÑ\x80\x8eP/SÇKÙ\x01¹1ã\x83E\x03¥K(\x8aýURc8/¯\x11½¤\fE±\x97µAº®<§\x84\x04ÖÖ©DQtîÜ£H\x808%_ö\x1a\x1fj«§\x02´L\x9aæ\x9b*zw¥P\x12;}iCÚÖ=?\x98à\x95æH\x8aË\x0e#w£{¢\x93à\x9fV"e=¸96DøË=ή⥪#]#ÚlP\x8c\x7fwol\fâ³\x03OTᨯ\x97}\x80\x05bÆy©Va\x8dÔ·V<XªJ\x9fzvüæ¥\x05Á\x86\x18\x81%\x19¹\x1a\x85Ûe\x99!s¥Æ9hB\x00\x91¨Ñ\x8dR\x9eaÒ\\\x90?±k\x1a½Iįõ(XU)\xa0õ\x91ª\x0f3%\x9e~å9EkàK\x99!æY\a \x84ÛM¢@ë-|3Pa\x1el´:\x8d©ýU\x1f]ò\x95\x81\x91:ø9èkÎ-yó\x13h\x13\x7fÁVùÆ\x99S\x7f¶â\xadòF[\x90ý\b>\b\x99MåìN!E[5{¤\x8fK$\x9a\x93ÉMi»ÓÛ\'\x81\x1f\x14#\x88#Ñ\x8aSb4 HîmùZímgq\x1c\x16?"&|\x9c\xadëÐû\x8fa\x9c#)\x92öú¡\x9f¬±\x83Y\x00.«ºKW\x83A}\x8eóö\x1ahC@\x91\x1b\x8a]\x81 Ü·Wr\x81:»eä\x87ÿK\x99\x1e7x8\x90OmËj\x0e=fß\x96\x94Dg2ø\x9fÐ3h¹7LHf\x035¾eP./t\x8f#\x00õkVòñèç1¤§é%ÖÜÆ\x9dVúKÞz\x82\x87\xadV¾\x1a\x17,ò\x8bA©IÜýlb\x18Ç_ø\x832e\x85\x88§Ùñ\x97Ífrëýïb5²¿ùõ³Ç>Y\x14\x9aÂ\x92©¥\x91Ì\x80\x1b\x9e¬ò=e²TÙ©ö0XTÇxO<\x18x¬\x9b»Á¥cõ\xa0_\x84\bé2\x0eì\x89ü´\n\x88iǺ\x9cµÉ\x89ya\x8b\x84\x9e¹÷\x16>\x17³7·ÓË^ÊlÁ\x8dTAFÜ©±7\xa0\a3¨\x85w\x85\x80è9B¥Å\x9bD¸ä\x87Ñ\x8dt\x8e\x97ëûV¾*ïN\x9eW3Ñ\x01ϵ×:\x8b¨ýÁ\x1c \'pj\x9c5[Î4Úc1Öê£é²¢H_\x80ÒÕ.\x8a\râ\x929Â?BÑ\x1b\x83É\x19b\x1f¬\x11úm÷Rþîñuý\x0e×\x91ã\x83n\x822ÖÆ\vÛg\f¤{\x81Mp\x81T\a\x06\tøJÏQúê-I\x06\x04_Y\x92ï\x02Þ¼ß.\x00`üßKì\x00°ÏíÊÇ\x1eB¹µ\x81\x17¥ô\x93#\x92n¿7\x7fá\x1fù.\x92\x19iÔ\x01sJ\x93»\x81¿qï\x03\r\f©/¨3\x94Ô\x98Ú\x9c=\x9d»"ç\x02q´&\x183\xadb\x9a\x1d\x0e&¶öHóÉ\x1b\x98\x90y±ÐKkÝb\x7fO\x9aÌ>\t½\x89ÌG\x04ĸ\x1eÊÕq*½®JùòZØ]¡!\x04ZB\x14n{Iéq]ÅÚ>Qؤ\x1c8\x85.*\x9d\x9fiKxáX\x1d(î¸\x12i\x8bPã°\b\x0f.ÁéE\x88^`\x11ò[mÁL\x18\x05\bjÙ\x8cß\x12\\¤«ý\x88\x7fªqé\x1dó\x16Æ\x94©zÌ:Ô:M\x13\x84Ó\x1aá%\'G~ñ\x98U\x86â@ù\x92\x17\x82\x96í\x91\x85\rîÆ-Ó]^\x8c\x1dÎ\x1bú\x1a\x1d\x84¢ØÔù2àaU\x94S{IË\x97ð\x94Ü;.½\x00ó\x05»7äy\x91éN\x84Ò\x14¯QúÕîï±\x85\x03ÀÆ\x0f-óY>0kÛìWø@¥\x8cx÷õòçy\x90@ÕyBqà{\x9fRPjés g6\x01)\x01-|\xa0t¸¹|PýYA²×\x869TqÆA[®n\x9dÛ\x80).òÁx³\x8eLlëÍ<ø\a\x9b5ëÉ\x8c\x8c§I|\x1d.*\x1cëL]{ax\x9a?*\x91mi!\\]<üm_\x80¿\x9d\x12Ä;¶Iγ\rd_UüjËÅ\x15¦°\tÈ!kÄ\x9cY²\r¹¯ì\xad\x84lÌLrè»ëí\x94·,êì_Ñ÷>÷\x81wmÈÁÁÕ:\x0f\aN¾fàëA\x85Â\x99åðx\x91\\°T¼Y\x19\vLÿØ\x14ï³Þ½Vé^Q£Þ!D\x06ôñpÎM^Sßt}\x84FÈ\x80Ï¿È\x98DÜp}\x9dÊÔ°àc\f¬\x95Õà\x10\x1cÇ\x97\x14\x96Zo\x92(\x87w\x9b\x95ì\x88ºê\v\x86ád\x1e]5\x9a.|y\x8a¥°K\x87»\x97À\x1e©\x14Ãë\x1dYNøq¢\xa0\a¸DaÜÏ\x8eâ\x13ÝVX2ÖÔv\x98B\x1crè\x1dø\x94\x86\x10\x12îÌU,\x00nf>µ\x95mIÈHòpS¿\x14¥#£W\x8aO\x86×;÷o\x17\x1b`ø©Ó\bÙØ\x9dQ!õÍI¦Àm&\x1aw\x82\x02Ú\x8b4H5uá¥=I5Ô\x1fõÇ\x8f\x8fÆya\x19ÿ\x02u³\x0e\x1e éæ\'MO+\x0f2@t\x9f£ý¯J\x1e\tuHP\x89Ϧ9\bÌIÑÃÍ\x90Gò\x98Ö\a\x8f.¸¥\x9bpÑî°d|psñ\x8er¢°÷¹ó,j\x01\x83@\x89Îm»\x9eé\x90&føJ/ì\x1f\x97n\x1aIv¤\x01\x1f\xa0Aj\x06RþÌ÷û\x8d±Z¿»cû|ßþÔé\x9dEN8q\x13ïí¢vù^<L\x8bãà¡m¦\x03#\x05Ó\x85\v&\v¥Î>ª)\x88\x91cæ1\r\x87Ý@BâwÖµûà\x19t\x13Ʀw2c\x81]1\x9b\x91\x91Ä \x8f¹_\x05\x1bV\x9cWnb¯Dû\xa0Ih¸±Fá\x11$1\x83oÇí\x1a\x1fj\x86=áæA\x04þt\x9bq\x1e\x9d&HP0×+Qù\x96.\x13Àh\x9a\x9d\x8d\x8b\x9dsëh\b&Ø\x88_Ðb\x97E\x8f\x13\x15ÞEøDÅ\x809$wåº\x85)!pôÜÙN\x04À!\'I\x9f\x87\x0f\x1bÎf\aF%\x139ÞÔ\x1aN£©l\x82GnÆól¸²\x8b\x8cÇðÔ\x83wÊÁPá\x16ò¦K´Â¦\x81\x88(\x1e¼\x88ÎÜ\x81¢[!é_NJ°\x8cB\x04\x1eP|6o\x1c\x8a\f¶íÁõu\'W\a\n\x8cI@Û\x8eí\x8f\x1eáP«¾X\x0f9\x9a\x1dÍ\x0f\x8f½MñL\x89CÅEH\x0f\x8f\fªh¨=µ¯m«(&(\x8fM#Â\x98ã\x82í@5÷ÝL¿\x1c¤\x14#>ëÁR\x1f¢ÿÈÕ\nÂñÔ\x96ªñ¥\x93UÔ¸ê¦r9§®t\xa0ï\x1aõñ\x1dº\x7fô0)¦\x94vûæ\x04|\x8d¦7\x88\x95\x92¼âQ\x19\x91\x12\x9cH¢\x19\vH¤"\x9b\x00¶\x06,vºòì\x13¤HòbÐ?d\x01é¯E6Ðk\x1eÅN\x8b|áW(3®V¸;\x9eµk\x96Gë ?é\x02"IJÞ\x14Òæ\x94qͷϲ\x06n]Ô-\x7f\f\x7f\x99_\x8eóÜ\rü\x16ε\x9e¨LÇËl\x93÷íbqܰPï\x91S®Ñ\xa0ò\x95\x10ò\nHÄ\x93F\x7fÔG\f\x8a\x05ôQØÁ\x84U¸Pd\xad³gê\x81\x81¶\x10¥\x93H\rÒ¹u\xadÆIèñ~ñU×àOÇfR\vɺ\x96s\x9dØoï\x1a_\x98(#«ÐÀzw¦{q\x92zåX\x88A\x8b×È\x8eò\x99c¢Ëðk{óþ\x0e\x15S\x16,Ãq³z\x9a8XºWÉz%\x87/{"\x18ÿvm/K»|\x80Beªä\f\x14\x02ÞO{4R#jªxC\x0f\x97.v\x96Ø\r»\bõ2\'¡[¯\x9f(\x98Rըࣰ\x9c¡PZe\x85FÓ\x808óí(ï\x94\x8d\x9d9pA\x9aNc(\x9aÚ\x9b\x83\x1dC\\g\x95s¼\x16«é\v&z\xa0ü0¡\\\x15g\x13\x82â\x0f8Id\x9aH:̹fTõ?ÊÆúÅ\x1b¡0&\x94\'$\x9fg§"\x1d\x95\x03Â\x06\x14ÿ\x19s¢\x03d\x06\x9fà\x18cû\x15Í\x9b\xa05&ÂqÙ\x8a\r?Ч\x17\x86N\x96Ú^^/Ñ\nnø¬&<wÛîaóÅ\x1c\foýܳE.õ\x1av¦ØÈ8¸ßJ[\x06\x88\x9d\x88¡\x89ÔdÎô\x93z\x14\x04\x1b%ÎM\x1eäl\x98uå\x03å£i7í\x18\x9eûÒ0N\x91\x19\n)H\x9eÏõ\x8cúe¾ÎÀ\x8f\x84©\x18[Üð\x92¡È5\x9ar°\x8f\\h!R\x85Ü0\x95\n\x01¡\x12þ\x9d¯º,n\x8eØ+ý\x17òw\vr\x12«X|sø\x90wcetùf\x8aáÉ\xad&ÿC*s^V\x90\x9cûºU°\x06\x84\x86°Ä\x0e9\x18h*O?À.÷vvn\x17êýøP¹.ïõF\x15¢\x8as¶\x15«-\x98\rt@=C\x85ûS`Ár|Ò\x9cÆ\x87ø\x8d1C»ód¿\x93ýªÙìä§E\\U¿\x8dZÚîeVý`Ò{úC,øÜ)§ø*÷QÂ\f¦e\x97®n\x0eéa.q<\x94\x932ª)\x05Ð).n\x8dqæê\x98Ç¢RT\x9c2¯\fÎg\vÜ\x82CoÍï9½¼òCÄ\tlú\x80\'\x0f\x9f[éæù\x04C\'\x137Gih´V\x9btÇè\x9b\xa0àனV¿Ø\n2ÖPµ.\x9epF@üÕºo\x95Uæ§(yà\x86\x90C\x88\x06\rÂLwSpÐ\x9cQÆ\\ú\x01\x94\r\x16\x82)¢ú¦ò7\x8c¤³MÖÿózL«\x1c\x85\x8cÌ÷«-ìAIç!>\x87ü5mRsà²%Ï4\x86Ëã\x04>Û\x95 w\x01Ù;U6Ah×"ÿ\x87J\x92,¸LB7^e\x7f¨ú·\x93\x8a¬\x16\xadW\x85¥Æ¹ÏN\x8ab\fý~q\x95^T)¹\x9d\x85Î"Î\x8aÜ:Øüm~\xad&\x00a?\x95s\x82Ò\x92á>\x93î>ò\x9bKz\rbéÓ\x80éÐåkÌõ\x1e\x9b©ê\x1fêóâÊ¥Æ,h\x1e\x7f\x19£©¨Ö\x7fIßc\x939ÉUÿ9U×of@.çÙR:ÍØw\x01\x10cë;Äs\xad\x14\x06æ\x83¹u¯§\f\vÕ\x96\x98Ä\x8a:`\x159\x80/Û+\x05\x81\x12\f8\x19"ؾW\x8aÉg\x85&\x1bÚ·M\x132\'\v\x19ä¸\x06\x82\x1dr\x97}\x90\xa0\x87ìܱ@\x04\x90Ë\x10Ç\x1cjTÚ!\x05\x97ù\x87¾Ó\x9cúŵ\x7f\x8a\x89Â\x93E\x04\x88\x13\t\ac\x83Ͻ\x93\x94¿©~4÷\x13\x9dÍÝÏÍÆ¬IN¡0È\x8e¿¹\x86#kîÃhn¼\x8eÇOÈSÔ\tð½LUö²\x11£\t>AÞ¿í\x91\r£ÿ¬Xß¶\x8d²ÐÊ·A×ñ\x1f\x84ÿ$ãº\x7fÔ;t\x86È\t\x160äµ\x82`ÆzªPçI\x11Æ\x1d%zDÖh7T¤$mTÛp©\x02ÿÀ3A4Â\x89\x84\x86\x12\x1cáÐ$AQ\x8býÜ\x0e\t\x87¿\x1ez\x80÷þ§\x17ðD\x17\x86÷·\x97\x86A¾\x05l¨Gk=\x81|\x828ÊVÏ~9¶8\x9am\x1cÈÃN\x9b#\fÁ§äºTóIª\x1a«r\x03±\x946¨k-¶g¶3äÊ1\x0fϾ\x0e\x80½ÁÀ\x9b\x8bqÐ\x03½\x8e|\x86S;Hö¤\x9c¬Ur\x97ßør\x8b\x86V-\rNi²×¿»&\'?zÃj\x0fÜ\x86÷¾ýÉñ\x1b\x9d5£\x14hÙ@ä\x8aÎJm½I|\x9c\nê\x8aÔÿÚæh¢ÅÒó6á®Ò\n×q(¿¾2\tä/«,Üc\x14«tX°óç\n;8Ëe§V?\x01Èß!êI\x16\x84\x05\x9c6}>\x9f÷²(\x85jlÑò+y\b¦h\x86\x95\x9b\rèû\x1b\x8aº\x91ÚHDè¦M\x1aÒÎ+)\x11\a\x92\xad¢?\x9f_áÏMˬv°\x8fÞÙ\x17=¶ªð\x01¥\x81C\x88\x19MïV\x9c\x96â-¤°f§\xad×\x881\x1c\a\x91\x19$"ÅÄ9Ë3ûâÌ\x807\x85\vÌz¾\xa0\b¬Y£ª±ÚU}×"²àr\x01\x150Óöl!B_[Z®k\x1c)¹Ñ\x18oåÕþ\'Ô\x89\x1e[\x12\x91\x02çL\xa0ÀÊ\x9bh:+¢èH\aj\aØf3\'\x8cÇDFÊ{\\ª&ýÔGú\x9bq\x8có\x83D\x0e}\x9c±sÐx\vd׳E\x1f²»\f¯#°å\x89\x1bò®Ü¬÷%g\x9eõ¦É\x14´µ;\x84\x891\x11\x05¯ò±\x98\x91\x90(+³\vz%í(Yî;áÈëß\x997A\\>õB<\x94crv\x12û\v\x958åݨ]\x81\x94AVü\x8f±«ò96,éØ\x85éÆÁ¶\x8e6\x92\x06g\x049Dc\x9f¬Âø¨ù\x01r¯oÿ=\x1a]ìØKíÁÿþáÛ,\x85ļÅåÿ\fÊ\x89\x87\x1b\nV>äâ\v\x9d\x90\'iåºeù\x85b\x83÷9\x19]Âc\x80\x82\x81Ѿ¦\x92<ä°0½guØ\x15:æËÁº3\xadt/{\x11Å\x89=*Q\r\x9c+S±²yk¥5µ¯j\x8b6\x04\f\t\x8fñùÜ#ºÃÀ\xadÙvó½ïÙçÊð©\x84»ö:\x17É\x1fîÃ\x7f\x13°\x97\x91\x05ÝÀñ\x1aA3TÆ(³@Û/i2L@\x0eí\x94DG\x1añZ6àÞ-í\x930\x91°\x15°<\a\x89ø(¢\x8ebl¯à\x0f\x12\x97q\x8f\x11fÔ\x97JXE\x19~fAã¾XëÝkè:\x9c\x02\x1a§\xa0ë\x15âG\x82¦U?h\x17Ê\x81\x03\x80¼à4\x86\x949¤\r\x0e\x96\x81Ñ\x91¿í\x8ft\x7fy¦¨\fж\x9dMQ\v¬<Ùu¤Ô\x800<B+nÏ¡&"j:ÕþqÅ\x1a\x82x\xad\x1d&\x9a\f.V/cðë\bb²ù\xadü=¾\x1d\nð\x02bϤ\x0fífP\nµ\x8c\x9br²LÁ\x9a<æ`ëª>£o¨kæP\x910¶nê^<í¨ûäMØb·E\v\x94Û\nA<MºÝ©û\x9d\x9d¿ÑÇ\x82R~ò\x91\x06ýíú¦ù\x1c\x11ì\x9a\x8dó\x9bUFuäå× ¸æMÊÊr¤@o\t°Ty\x02$.Nê\rAQ"\x10\x1f\x90X}\'ÿl\x93U^\v\x8c׫Áõ*\x80\x02\x066ì¹#\x0eÉ>Z\x14\x1fÊÜÎûÂ}«Êc\x18\x9d[Ì~\xada|²n\x13³Fºû\'1õ®1|û\x95iÄæ\x9aî\rì\x16\x11K2q\x03÷\'X|ï\x1a\x13âÛÅ2!ê\x14M¤èýÖø¼Á\x10LÈ7ö\x8b\x15\\ËE\x1e:«(Í_Ù\x18\x93£¶E\xa0nË»¨ü\rh\x7f\x94¿>×§ð¯ð\x8fÓÈYÒ_:4&\x8d\x9cÐ\x9eU®\\;a\x9fy?ðÎö\x1a\x94õäÈø+\x83¾ß\tDó³\x8d£\x7fôP\a\x16_\x1b3wø\x9a\x81Ùò9EÅ*H|ï\x99xÒßWùB\x823Ñ`éæ\t>lò\x934¶Ô\x95\x12P\fõ^!\x91\xa0)#áã,a\x92·<is¡)@Ó\rãî\x99YÁÓmÓÜ}8ÞaD\x01á\x01\x9dí¨äu´4ÁOÞþ\x8aø»ÀJ\v4.10.2830.0\x1a\x80\x01=ê·\x90ÓMâwóç\x97_\x8e\\\x1aë>¶\x10#<42ä\x9cë,Ý¿\x95íCZTGðÖ,\x9d\x94/Sdüd\x88\x87\x0eàò=I\x90\xa0\x18^ÔÚ»\x86\x7f\x8fe¹¦Ý\tg\x02(\x01\x92®`G\x8a÷çíÔ\x1d^tìÚÙ¦lä\'w4£\\×;P\x99\x84\'\x88,c{\x86¥$oZùzýo¬"\x0fA£mÅ\x9d\x82M\x97\x1fɱ¡J\x14\x00\x00\x00\x01\x00\x00\x00\x14\x00\x05\x00\x10ò@Ø\x1aÕøµÊ'.encode() response = requests.post('https://mlic.dmm.com/drm/widevine/license', cookies=cookies, headers=headers, data=data)
+ Reply to Thread
Results 1 to 6 of 6
-
-
You can't send raw data from curl, you have to use pywidevine.
Isn't this website paid ? https://forum.videohelp.com/threads/404993-Please-ONLY-ask-for-help-videos-that-everyo...ere-is-my-postLast edited by aqzs; 26th Sep 2024 at 12:03.
-
Example
Code:https://tv.dmm.com/vod/playback/?season=3vttcw9k7vpszo07ijdpcoyiq&content=k5qyi8p031dh2d3cdnvzvfod1
Code:import requests headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:130.0) Gecko/20100101 Firefox/130.0', 'Accept': '*/*', 'Accept-Language': 'en-US;q=0.8,en-GB;q=0.6,de-DE;q=0.5,nl;q=0.4,cs;q=0.3,pl;q=0.1', # 'Accept-Encoding': 'gzip, deflate, br, zstd', 'Referer': 'https://tv.dmm.com/', 'Origin': 'https://tv.dmm.com', } data = '^\b^\x04' response = requests.post('https://mlic.dmm.com/drm/widevine/license', headers=headers, data=data)
Code:PSSH: AAAA7XBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAM0SEFKeOg6YSTs1kggXr8McyMMiuAF7InYiOiIyIiwiZmlkIjoiazVxeWk4cDAzMWRoMmQzY2Rudnp2Zm9kMSIsInN2aWQiOiJsYXVuY2hwYWQiLCJwbCI6ImV5SmtaV3hwZG1WeWVWOTBlWEJsSWpveExDSnhkV0ZzYVhSNUlqb3lMQ0owWldVaU9tWmhiSE5sTENKb1pHTndYMmxrSWpveGZRIiwiY3MiOiIzNDEyMDRmOTExYTM5MzIyZTU2MDcwMDZlY2JmNTU2NCJ9 License URL: https://mlic.dmm.com/drm/widevine/license --key 529e3a0e98493b35920817afc31cc8c3:7c6661e031c884143b27d67fca9b9fc7
Last edited by ddll; 30th Sep 2024 at 04:50.
-
I used the l3 code of WKS-KEYS, which was modified.
Headers, nothing needs to change.
But my call to cookie is not clear.
dmml3.py
Code:import subprocess import os from colorama import init, Fore, Style from bs4 import BeautifulSoup import base64 import requests import sys import xmltodict from lxml import etree import 日本DMMheaders 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 init(autoreset=True) def clean_title(raw_title): # Clean up special characters in the title cleaned_title = raw_title.replace('#', '').replace('/', '').replace(' ', '').replace('「', '').replace('」', '') return cleaned_title def download_mpd_file(mpd_url, output_folder): # Get MPD file response = requests.get(mpd_url) mpd_content = response.content # Get the file name of MPD file mpd_filename = "manifest.mpd" # Build a local save path local_path = os.path.join(output_folder, mpd_filename) # Save MPD file to local with open(local_path, 'wb') as file: file.write(mpd_content) print(f"MPD file has been saved to: {local_path}") return local_path def get_cenc_pssh_content(mpd_filepath): # Read MPD file with open(mpd_filepath, 'rb') as file: mpd_content = file.read() # Parse MPD file root = etree.fromstring(mpd_content) # Define a namespace namespaces = { 'cenc': 'urn:mpeg:cenc:2013', 'default': 'urn:mpeg:dash:schema:mpd:2011' # Specify a prefix for the default namespace } # Get the text content of all < cenc:pssh > elements cenc_pssh_elements = root.xpath('//cenc:pssh/text()', namespaces=namespaces) # Screen out pssh with a length less than 320 characters valid_pssh = [pssh for pssh in cenc_pssh_elements if len(pssh) <= 320] # Output debugging information and confirm the found pssh if valid_pssh: print(f"find {len(valid_pssh)} Eligible < cenc:pssh > elements") print(f"PSSH used: {valid_pssh[0]}") # Print the first qualified pssh return valid_pssh[0] # Return the first qualified pssh content else: print("No < cenc:pssh > element that meets the length requirement was found。") return None def download_video_with_key(video_url, keys, save_name): key_args = ' '.join([f'--key {key}' for key in keys]) command = f'D:\\桌面\\widevine\\WKS-KEYS\\downmp4\\N_m3u8DL-RE.exe "{video_url}" {key_args} --save-dir "D:\\桌面\\widevine\\WKS-KEYS\\downmp4" --use-shaka-packager -mt -M format=mkv --auto-select --save-name "{save_name}"' try: # Execute the command to disable interactive mode subprocess.run(command, shell=True, check=True) print("Video download completed!") except subprocess.CalledProcessError as e: print(f"Video download failed. Error message: {e}") if __name__ == "__main__": # Input video link mpd_url = input('\nMPD_url: ') # Fixed local save path output_folder = r"D:\桌面\widevine\WKS-KEYS\mpd\download" # Create a folder to save MPD files os.makedirs(output_folder, exist_ok=True) # Download and save the MPD file, and get the saving path mpd_filepath = download_mpd_file(mpd_url, output_folder) # Gets the text content of the < cenc:pssh > element pssh_content = get_cenc_pssh_content(mpd_filepath) if pssh_content: lic_url = 'https://mlic.dmm.com/drm/widevine/license' # If there is no certificate data, you can set the cert_data_b64 parameter to None wvdecrypt = WvDecrypt(init_data_b64=pssh_content, cert_data_b64=None, device=deviceconfig.device_android_generic) widevine_license = requests.post(url=lic_url, data=wvdecrypt.get_challenge(), headers=日本DMMheaders.headers) license_b64 = b64encode(widevine_license.content) wvdecrypt.update_license(license_b64) Correct, keyswvdecrypt = wvdecrypt.start_process() if Correct: print("Decryption succeeded, and the key is:") for key in keyswvdecrypt: print(key) # Enter a save name and clean up special characters save_name_raw = input('\nsave name: ') save_name = clean_title(save_name_raw) # Splicing all keys into the format required by the command line key_args = ' '.join([f'--key {key}' for key in keyswvdecrypt]) # Output the call command with color command = f'D:\\桌面\\widevine\\WKS-KEYS\\downmp4\\N_m3u8DL-RE.exe "{mpd_url}" {key_args} --save-dir "D:\\桌面\\widevine\\WKS-KEYS\\downmp4" --use-shaka-packager -mt -M format=mkv --auto-select --save-name "{save_name}"' print(f'{Fore.GREEN}调用命令为: \n{command}{Style.RESET_ALL}') # Call N_m3u8DL-RE.exe tool to download video download_video_with_key(mpd_url, keyswvdecrypt, save_name) else: print("Unable to get Widevine key。") else: print("The content of the < cenc:pssh > element was not found。")
Similar Threads
-
unable to parse license - check protobufs
By jammesvx in forum Video Streaming DownloadingReplies: 39Last Post: 28th Oct 2024, 06:27 -
Help getting a key with 'unable to parse license - check protobufs'
By Shaico in forum Video Streaming DownloadingReplies: 3Last Post: 10th Aug 2024, 02:42 -
WKS Key - unable to parse license - check protobufs
By shixue in forum Video Streaming DownloadingReplies: 1Last Post: 25th Jun 2024, 06:47 -
dmm tv unable to parse license - check protobufs
By mochi in forum Video Streaming DownloadingReplies: 2Last Post: 23rd Dec 2023, 21:01 -
Help w/ fetching keys - unable to parse license - check protobufs
By rentala17 in forum Video Streaming DownloadingReplies: 4Last Post: 20th Oct 2023, 01:01