Hello,
How can i get decryption key from License Response
MPD:Code:<?xml version="1.0" encoding="UTF-8"?> <MPD xmlns="urn:mpeg:dash:schema:mpd:2011" profiles="urn:mpeg:dash:profile:isoff-live:2011" type="static" mediaPresentationDuration="PT52M11.361S" minBufferTime="PT2.000S"> <BaseURL>https://vod.njpwworld.com/media/v1/dash/live/cenc/6415643985001/a1b08073-4a55-4e85-9ef5-2d7ba3907c7a/15583899-0dc9-4ac9-8d34-99e905fe4fe0/</BaseURL> <Period> <AdaptationSet mimeType="audio/mp4" startWithSAP="1" segmentAlignment="true" lang="ja"> <ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" xmlns:cenc="urn:mpeg:cenc:2013" cenc:default_KID="15583899-0dc9-4ac9-8d34-99e905fe4fe0" value="cenc"></ContentProtection> <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed" xmlns:cenc="urn:mpeg:cenc:2013" bc:licenseAcquisitionUrl="https://manifest.prod.boltdns.net/license/v1/cenc/widevine/6415643985001/a1b08073-4a55-4e85-9ef5-2d7ba3907c7a/15583899-0dc9-4ac9-8d34-99e905fe4fe0?fastly_token=NjY4NDcxNmFfYWI3MjA4MGE3YzRiNDZhZmRkNGQwOTQyZmZhOTdjZDEwYWM0MzY4MWI5YjQxNzRhZDQ4YWE3MTBjNmUzNjhlZA%3D%3D" xmlns:bc="urn:brightcove:2015"> <cenc:pssh>AAAAVnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADYIARIQFVg4mQ3JSsmNNJnpBf5P4BoNd2lkZXZpbmVfdGVzdCIIMTIzNDU2NzgyB2RlZmF1bHQ=</cenc:pssh> </ContentProtection> <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95" xmlns:cenc="urn:mpeg:cenc:2013" xmlns:mspr="urn:microsoft:playready"> <mspr:pro>OgQAAAEAAQAwBDwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AbQBUAGgAWQBGAGMAawBOAHkAVQBxAE4ATgBKAG4AcABCAGYANQBQADQAQQA9AD0APAAvAEsASQBEAD4APABDAEgARQBDAEsAUwBVAE0APgBZAGcAQgBOAHIAMABjADQAZQBnAEkAPQA8AC8AQwBIAEUAQwBLAFMAVQBNAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBtAGEAbgBpAGYAZQBzAHQALgBwAHIAbwBkAC4AYgBvAGwAdABkAG4AcwAuAG4AZQB0AC8AbABpAGMAZQBuAHMAZQAvAHYAMQAvAGMAZQBuAGMALwBwAGwAYQB5AHIAZQBhAGQAeQAvADYANAAxADUANgA0ADMAOQA4ADUAMAAwADEALwBhADEAYgAwADgAMAA3ADMALQA0AGEANQA1AC0ANABlADgANQAtADkAZQBmADUALQAyAGQANwBiAGEAMwA5ADAANwBjADcAYQAvADEANQA1ADgAMwA4ADkAOQAtADAAZABjADkALQA0AGEAYwA5AC0AOABkADMANAAtADkAOQBlADkAMAA1AGYAZQA0AGYAZQAwAD8AZgBhAHMAdABsAHkAXwB0AG8AawBlAG4APQBOAGoAWQA0AE4ARABjAHgATgBtAEYAZgBOAFQAbABsAE0ARABFADAATQBEAFYAbABaAG0ARgBpAFkAagBFADEATwBHAEkAMQBPAEQAQQB4AE0AegBRAHoATgB6AE0AeQBaAG0AVQAyAFoARABCAGoATQBXAEkAMABPAFQAVQB5AFkAegBRADEAWgBXAFkAdwBNAHoAVQAwAE0AegBOAGsATQBtAEkAMQBOAFQAYwB4AFoARABKAGsAWQB6AEUAegBNAEEAJQAzAEQAJQAzAEQAPAAvAEwAQQBfAFUAUgBMAD4APAAvAEQAQQBUAEEAPgA8AC8AVwBSAE0ASABFAEEARABFAFIAPgA=</mspr:pro> <cenc:pssh>AAAEWnBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAABDo6BAAAAQABADAEPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgBtAFQAaABZAEYAYwBrAE4AeQBVAHEATgBOAEoAbgBwAEIAZgA1AFAANABBAD0APQA8AC8ASwBJAEQAPgA8AEMASABFAEMASwBTAFUATQA+AFkAZwBCAE4AcgAwAGMANABlAGcASQA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAG0AYQBuAGkAZgBlAHMAdAAuAHAAcgBvAGQALgBiAG8AbAB0AGQAbgBzAC4AbgBlAHQALwBsAGkAYwBlAG4AcwBlAC8AdgAxAC8AYwBlAG4AYwAvAHAAbABhAHkAcgBlAGEAZAB5AC8ANgA0ADEANQA2ADQAMwA5ADgANQAwADAAMQAvAGEAMQBiADAAOAAwADcAMwAtADQAYQA1ADUALQA0AGUAOAA1AC0AOQBlAGYANQAtADIAZAA3AGIAYQAzADkAMAA3AGMANwBhAC8AMQA1ADUAOAAzADgAOQA5AC0AMABkAGMAOQAtADQAYQBjADkALQA4AGQAMwA0AC0AOQA5AGUAOQAwADUAZgBlADQAZgBlADAAPwBmAGEAcwB0AGwAeQBfAHQAbwBrAGUAbgA9AE4AagBZADQATgBEAGMAeABOAG0ARgBmAE4AVABsAGwATQBEAEUAMABNAEQAVgBsAFoAbQBGAGkAWQBqAEUAMQBPAEcASQAxAE8ARABBAHgATQB6AFEAegBOAHoATQB5AFoAbQBVADIAWgBEAEIAagBNAFcASQAwAE8AVABVAHkAWQB6AFEAMQBaAFcAWQB3AE0AegBVADAATQB6AE4AawBNAG0ASQAxAE4AVABjAHgAWgBEAEoAawBZAHoARQB6AE0AQQAlADMARAAlADMARAA8AC8ATABBAF8AVQBSAEwAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</cenc:pssh> </ContentProtection> <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"></Role> <SegmentTemplate duration="285696" initialization="$RepresentationID$/init.m4f?" media="$RepresentationID$/3x/segment$Number$.m4f?" startNumber="0" timescale="48000"></SegmentTemplate> <Representation audioSamplingRate="48000" bandwidth="64000" codecs="mp4a.40.2" id="6481eb29-dec5-4f27-874d-437bc6ae2312"></Representation> <Representation audioSamplingRate="48000" bandwidth="96000" codecs="mp4a.40.2" id="e5879a72-13d7-4e54-ab9a-0e707f12539f"></Representation> <Representation audioSamplingRate="48000" bandwidth="127000" codecs="mp4a.40.2" id="4e8cab26-c89b-4dfb-863c-4751151b1371"></Representation> <Representation audioSamplingRate="48000" bandwidth="167000" codecs="mp4a.40.2" id="2552d4dc-3503-4495-b361-e7cf42383257"></Representation> </AdaptationSet> <AdaptationSet mimeType="video/mp4" startWithSAP="1" scanType="progressive" segmentAlignment="true"> <ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" xmlns:cenc="urn:mpeg:cenc:2013" cenc:default_KID="15583899-0dc9-4ac9-8d34-99e905fe4fe0" value="cenc"></ContentProtection> <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed" xmlns:cenc="urn:mpeg:cenc:2013" bc:licenseAcquisitionUrl="https://manifest.prod.boltdns.net/license/v1/cenc/widevine/6415643985001/a1b08073-4a55-4e85-9ef5-2d7ba3907c7a/15583899-0dc9-4ac9-8d34-99e905fe4fe0?fastly_token=NjY4NDcxNmFfYWI3MjA4MGE3YzRiNDZhZmRkNGQwOTQyZmZhOTdjZDEwYWM0MzY4MWI5YjQxNzRhZDQ4YWE3MTBjNmUzNjhlZA%3D%3D" xmlns:bc="urn:brightcove:2015"> <cenc:pssh>AAAAVnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADYIARIQFVg4mQ3JSsmNNJnpBf5P4BoNd2lkZXZpbmVfdGVzdCIIMTIzNDU2NzgyB2RlZmF1bHQ=</cenc:pssh> </ContentProtection> <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95" xmlns:cenc="urn:mpeg:cenc:2013" xmlns:mspr="urn:microsoft:playready"> <mspr:pro>OgQAAAEAAQAwBDwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AbQBUAGgAWQBGAGMAawBOAHkAVQBxAE4ATgBKAG4AcABCAGYANQBQADQAQQA9AD0APAAvAEsASQBEAD4APABDAEgARQBDAEsAUwBVAE0APgBZAGcAQgBOAHIAMABjADQAZQBnAEkAPQA8AC8AQwBIAEUAQwBLAFMAVQBNAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBtAGEAbgBpAGYAZQBzAHQALgBwAHIAbwBkAC4AYgBvAGwAdABkAG4AcwAuAG4AZQB0AC8AbABpAGMAZQBuAHMAZQAvAHYAMQAvAGMAZQBuAGMALwBwAGwAYQB5AHIAZQBhAGQAeQAvADYANAAxADUANgA0ADMAOQA4ADUAMAAwADEALwBhADEAYgAwADgAMAA3ADMALQA0AGEANQA1AC0ANABlADgANQAtADkAZQBmADUALQAyAGQANwBiAGEAMwA5ADAANwBjADcAYQAvADEANQA1ADgAMwA4ADkAOQAtADAAZABjADkALQA0AGEAYwA5AC0AOABkADMANAAtADkAOQBlADkAMAA1AGYAZQA0AGYAZQAwAD8AZgBhAHMAdABsAHkAXwB0AG8AawBlAG4APQBOAGoAWQA0AE4ARABjAHgATgBtAEYAZgBOAFQAbABsAE0ARABFADAATQBEAFYAbABaAG0ARgBpAFkAagBFADEATwBHAEkAMQBPAEQAQQB4AE0AegBRAHoATgB6AE0AeQBaAG0AVQAyAFoARABCAGoATQBXAEkAMABPAFQAVQB5AFkAegBRADEAWgBXAFkAdwBNAHoAVQAwAE0AegBOAGsATQBtAEkAMQBOAFQAYwB4AFoARABKAGsAWQB6AEUAegBNAEEAJQAzAEQAJQAzAEQAPAAvAEwAQQBfAFUAUgBMAD4APAAvAEQAQQBUAEEAPgA8AC8AVwBSAE0ASABFAEEARABFAFIAPgA=</mspr:pro> <cenc:pssh>AAAEWnBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAABDo6BAAAAQABADAEPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgBtAFQAaABZAEYAYwBrAE4AeQBVAHEATgBOAEoAbgBwAEIAZgA1AFAANABBAD0APQA8AC8ASwBJAEQAPgA8AEMASABFAEMASwBTAFUATQA+AFkAZwBCAE4AcgAwAGMANABlAGcASQA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAG0AYQBuAGkAZgBlAHMAdAAuAHAAcgBvAGQALgBiAG8AbAB0AGQAbgBzAC4AbgBlAHQALwBsAGkAYwBlAG4AcwBlAC8AdgAxAC8AYwBlAG4AYwAvAHAAbABhAHkAcgBlAGEAZAB5AC8ANgA0ADEANQA2ADQAMwA5ADgANQAwADAAMQAvAGEAMQBiADAAOAAwADcAMwAtADQAYQA1ADUALQA0AGUAOAA1AC0AOQBlAGYANQAtADIAZAA3AGIAYQAzADkAMAA3AGMANwBhAC8AMQA1ADUAOAAzADgAOQA5AC0AMABkAGMAOQAtADQAYQBjADkALQA4AGQAMwA0AC0AOQA5AGUAOQAwADUAZgBlADQAZgBlADAAPwBmAGEAcwB0AGwAeQBfAHQAbwBrAGUAbgA9AE4AagBZADQATgBEAGMAeABOAG0ARgBmAE4AVABsAGwATQBEAEUAMABNAEQAVgBsAFoAbQBGAGkAWQBqAEUAMQBPAEcASQAxAE8ARABBAHgATQB6AFEAegBOAHoATQB5AFoAbQBVADIAWgBEAEIAagBNAFcASQAwAE8AVABVAHkAWQB6AFEAMQBaAFcAWQB3AE0AegBVADAATQB6AE4AawBNAG0ASQAxAE4AVABjAHgAWgBEAEoAawBZAHoARQB6AE0AQQAlADMARAAlADMARAA8AC8ATABBAF8AVQBSAEwAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</cenc:pssh> </ContentProtection> <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"></Role> <SegmentTemplate duration="180180" initialization="$RepresentationID$/init.m4f?" media="$RepresentationID$/3x/segment$Number$.m4f?" startNumber="0" timescale="30000"></SegmentTemplate> <Representation bandwidth="249000" codecs="avc1.42001e" frameRate="2997/100" height="360" id="7fe32cb2-4901-4fc8-85d0-5e1a14105030" width="640"></Representation> <Representation bandwidth="582000" codecs="avc1.4d001f" frameRate="2997/100" height="576" id="85bd82c8-9046-4ab2-98eb-4379dd41542a" width="1024"></Representation> <Representation bandwidth="1636000" codecs="avc1.640028" frameRate="2997/100" height="900" id="3668c4d2-8956-465d-b36d-1ef76d88cb09" width="1600"></Representation> <Representation bandwidth="2968000" codecs="avc1.640028" frameRate="2997/100" height="1080" id="ab7bf86b-4748-494c-b14f-63438f440ae2" width="1920"></Representation> </AdaptationSet> <AdaptationSet mimeType="text/vtt" lang="en" label="字幕 / caption"> <Representation bandwidth="256" id="8ef4509d-3447-4475-97f7-0a602b7521c2"> <BaseURL>https://vod.njpwworld.com/media/v1/dash/live/clear/6415643985001/a1b08073-4a55-4e85-9ef5-2d7ba3907c7a/8ef4509d-3447-4475-97f7-0a602b7521c2.vtt</BaseURL> </Representation> </AdaptationSet> </Period> </MPD>
KID:License Response:Code:155838990dc94ac98d3499e905fe4fe0Code:CAISkAIKSgoQjIn4yYIN3JzjQCiVuP9WyxImChCMifjJgg3cnONAKJW4/1bLEAEyEDpWYnQ1/KD+H/r5o7xPE/AaACABKAA4AEAASOyfj7QGEgwIARAAGAAgACgAYAEaVhIQEB61hxY1MAitcfcTtufM/hpApaC5fYzdhPr0gVbP/0aZ1Sen3wjvlPchTvw+qUQr2QFFO+iHe37LggYToIuQopCb1Up3HYhjeaEbM8wslxEb9SABGlIKEBVYOJkNyUrJjTSZ6QX+T+ASEHLiCiCBa0fOXSYAV9WImNQaEDANBF9P0VO4IsUvoYFBZNUgAigBQhIKEGtjMTYAAAAAhROaYIAAAAhiAkhEIOyfj7QGOABQAhogDoHHcajghik/V3wh9zMsF5xg6bnAbDEa2DaYXxnYHYkigAGGFHauJQoEIyRX9FzfyA39vU9JL1JqjicMgyE0guuJ0mz51Jhg9vQDqQRH002snnpgk57l1AZ4DP+Yq3IKUZ4v24gaL4KgCUygiiwL67J/lQ+RR5tQ3yrBpd6mV9+pAZZ+PwhLcR2MpRMn6L/jD2LGXmku6hhdHWiNRwyH3hsGKToyCjAxOS4wLjUgQnVpbHQgb24gSnVuIDUgMjAyNCAxNToxMzozOCAoMTcxNzYyNTYxOClAAUqwAQAAAAIAAACwAAUAEIUTmmDTYHihAAAAXgAAABAAAABwAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAtgAAABAAAADIAAAAEAAAANoAAAAQAAAAAAAAAAAAAADyAAAAEKmsIn1FjJxl467F7FmHJLc3g0H4LT2ZMWJ9e3XhdODmWAE=
Original video link: https://watch.njpwworld.com/player/43782/series?assetType=series
Try StreamFab Downloader and download from Netflix, Amazon, Youtube! Or Try DVDFab and copy Blu-rays!
+ Reply to Thread
Results 1 to 9 of 9
Thread
-
Last edited by doughnuts; 2nd Jul 2024 at 10:47.
-
Standard widevine license request as described in length in the stickies. You really should read them if you are interested in how to get the keys:
Code:155838990dc94ac98d3499e905fe4fe0:f6c272cd145a75d05321b206ce18bc98
-
I have made this script :
HTML Code:import requests from pprint import pprint import xml.etree.ElementTree as ET from pywidevine.cdm import Cdm from pywidevine.device import Device from pywidevine.pssh import PSSH def getpssh(url_mpd): psshs = [] response = requests.get(url_mpd) root = ET.fromstring(response.content) for i in range(20): for j in range(20): for k in range(20): for l in range(20): try: if root[i][j][k][l].text not in psshs and len(root[i][j][k][l].text) > 70 and len(root[i][j][k][l].text) < 190: psshs.append(root[i][j][k][l].text) except: pass for pssh in psshs: return pssh def getkeys(pssh,lic_url): pssh = PSSH(pssh) device = Device.load(DEVICEPATH) cdm = Cdm.from_device(device) session_id = cdm.open() challenge = cdm.get_license_challenge(session_id, pssh) licence = requests.post(lic_url, data=challenge) licence.raise_for_status() cdm.parse_license(session_id, licence.content) keys = [] for key in cdm.get_keys(session_id): if key.type=='CONTENT': keys.append(f"{key.kid.hex}:{key.key.hex()}") cdm.close(session_id) return keys def getcmd(id): params = (('device_type', 'web'),('duid', '16affe5e-270f-44c6-bc65-367b8e518d16')) data = requests.post('https://beacon.playback.api.brightcove.com/tvasahi/api/account/anonymous_login', params=params).json() auth_token = data['auth_token'] account_token = data['account_token'] headers = {'authorization': f'Bearer {auth_token}'} params = (('device_type', 'web'),('ngsw-bypass', '1')) data = requests.get(f'https://beacon.playback.api.brightcove.com/tvasahi/api/account/{account_token}/asset_info/{id}', headers=headers, params=params).json() streamid = data['data']['video_playback_details'][-1]['stream_id'] params = (('cohort', '98'),('device_type', 'web'),('device_layout', 'web')) data = requests.post(f'https://beacon.playback.api.brightcove.com/tvasahi/api/assets/{id}/streams/{streamid}', headers=headers, params=params).json() policy_key = data['data']['stream']['video_provider_details']['policy_key'] account_id = data['data']['stream']['video_provider_details']['account_id'] videoid = data['data']['stream']['url'] name = data['data']['stream']['name'] headers = {'accept': f'application/json;pk={policy_key}',} data = requests.get(f'https://edge.api.brightcove.com/playback/v1/accounts/{account_id}/videos/{videoid}', headers=headers).json() for source in data['sources']: keyssys = source.get('key_systems').get('com.widevine.alpha') base_mpd_url = source['src'] if keyssys: mpd_url = base_mpd_url lic_url = keyssys['license_url'] pssh = getpssh(mpd_url) keys = getkeys(pssh,lic_url) print(f"""N_m3u8DL-RE "{mpd_url}" --save-name "{name}" --select-video best --select-audio all --select-subtitle all -mt -M format=mkv --log-level OFF --key """ + ' --key '.join(keys)) DEVICEPATH = "device.wvd" videourl = input('Enter the video url: ') # videourl = 'https://watch.njpwworld.com/player/43782/series?assetType=series' id = videourl.split('/')[-2] getcmd(id)
HTML Code:Enter the video url: https://watch.njpwworld.com/player/43782/series?assetType=series N_m3u8DL-RE "https://manifest.prod.boltdns.net/manifest/v1/dash/live-baseurl/bccenc/6415643985001/a1b08073-4a55-4e85-9ef5-2d7ba3907c7a/6s/manifest.mpd?fastly_token=NjY4NDRlZTRfZWMxNDU5MDQxODFhOWQ1OTMxZTU4MjlmNzM0OTU2ZjlkOWU5N2IzMmY5NjYzYzA3MDVjMDhhZTc1MGViOGU2MA%3D%3D" --save-name "Press Conference (with Subtitles) | 6/16/2024 NEW JAPAN SOUL 2023" --select-video best --select-audio all --select-subtitle all -mt -M format=mkv --log-level OFF --key 155838990dc94ac98d3499e905fe4fe0:f6c272cd145a75d05321b206ce18bc98
-
I want to know how this decryption works. I have some leads PSSH + License Response = Decryption Key. I don't know how to extract the key from these. Please don't point me to some website that generates the key using PSSH and License server URL. I want to understand how it works. Thanks for your time.
-
Run that script and add some print() where you don't figure out which part is the one you are looking for.
HTML Code:pssh = getpssh(mpd_url) -> pssh is extracted from mpd keys = getkeys(pssh,lic_url) -> key is obtain with pssh and license url that come from this request : data = requests.get(f'https://edge.api.brightcove.com/playback/v1/accounts/{account_id}/videos/{videoid}', headers=headers).json()
-
Either use the CDRM project, etc.
or use a CDM with pywidevine -
But that's exactly how it works. Your browser/app/... generates a license request (the "challenge") with the PSSH (which contains the key id), signed with a local CDM (which you usually are not supposed to have access to). The license server validates the signature, and if valid replies with the license response. The reponse again is encrypted by the certificate from your local CDM and contains the keys. As you are not supposed to have access to the local CDM (at least not the CDM that your browser uses), you simply cannot decrypt the response.
This is where the extracted CDM's come into play: your script can generate a challenge for a license request, and the response for this request can be decrypted. This is basically asymmetric cryptography.
The practical details are explained in the stickies series by A_n_g_e_l_a - please take a look at these threads. -
Getting error. Maybe Widevine was updated?
Code:AAAAVnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADYIARIQFVg4mQ3JSsmNNJnpBf5P4BoNd2lkZXZpbmVfdGVzdCIIMTIzNDU2NzgyB2RlZmF1bHQ= https://manifest.prod.boltdns.net/license/v1/cenc/widevine/6415643985001/a1b08073-4a55-4e85-9ef5-2d7ba3907c7a/15583899-0dc9-4ac9-8d34-99e905fe4fe0?fastly_token=NjY4NGY2MDVfYTJkMjNiMDYzZDk4ZDVmYTI5NWQ5ZmNhM2EzYjI1MWMyNjlkNTY4ZTY4MjY5OTJkZDJhNmI4MjMzMGE4MDM0Ng%3D%3D Failed to load Widevine CDM: expected b'WVD' but parsed b'MZx' parsing -> signature N_m3u8DL-RE "https://manifest.prod.boltdns.net/manifest/v1/dash/live-baseurl/bccenc/6415643985001/a1b08073-4a55-4e85-9ef5-2d7ba3907c7a/6s/manifest.mpd?fastly_token=NjY4NGY2MDVfMWJmZWExZjQ1MDVjZjBlODhlNTJiMGRhY2JiYmEyYmI0ZWU4OWY2MTY2YzlmYzFhYTRkYWMwOGI2NDRiMDlkMQ%3D%3D" --save-name "Press Conference (with Subtitles) | 6/16/2024 NEW JAPAN SOUL 2023" --select-video best --select-audio all --select-subtitle all -mt -M format=mkv --log-level*OFF*--key
Similar Threads
-
I need decryption key
By ansonbanana in forum Video Streaming DownloadingReplies: 43Last Post: 5th Mar 2024, 14:48 -
get decryption key from license request/response
By HORDTHIONZAC in forum Video Streaming DownloadingReplies: 26Last Post: 30th Jun 2023, 08:56 -
WKS-KEY does not get decryption key
By HORDTHIONZAC in forum Video Streaming DownloadingReplies: 8Last Post: 17th Jun 2023, 05:46 -
Widewine Key request problem
By Caidking in forum Video Streaming DownloadingReplies: 19Last Post: 22nd Feb 2023, 18:12 -
How do I get the decryption key
By Bakekalu in forum Video Streaming DownloadingReplies: 6Last Post: 5th Jul 2021, 01:25