VideoHelp Forum


Try StreamFab Downloader and download from Netflix, Amazon, Youtube! Or Try DVDFab and copy Blu-rays!


Try StreamFab Downloader and download streaming video from Youtube, Netflix, Amazon! Download free trial.


+ Reply to Thread
Results 1 to 6 of 6
Thread
  1. 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

    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
    I have wvd.
    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)
    Quote Quote  
  2. Member aqzs's Avatar
    Join Date
    Mar 2024
    Location
    Paris
    Search Comp PM
    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-post
    Last edited by aqzs; 26th Sep 2024 at 12:03.
    Quote Quote  
  3. I can help with access to content
    Quote Quote  
  4. 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
    001.mp4

    Quote Quote  
  5. Originally Posted by aqzs View Post
    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-post
    How to get the original data in pywidevine?
    Quote Quote  
  6. 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。")
    Quote Quote  



Similar Threads

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