Hi, I have an intranet based iptv service through an android app from my isp. I would like to stream the same through external players. Captured the MPD from the app but couldn't able to find the license url for the same. The mpd has pssh and kid.
Used PCAPdroid for capturingCode:<?xml version="1.0" encoding="UTF-8"?> <MPD id='dash' type="dynamic" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:cenc="urn:mpeg:cenc:2013" xmlns:mspr="urn:microsoft:playready" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011 DASH-MPD.xsd" profiles="urn:mpeg:dash:profile:isoff-live:2011" minBufferTime="PT13S" suggestedPresentationDelay="PT13S" availabilityStartTime="2023-08-28T11:45:22Z" publishTime="2024-04-14T19:28:06Z" minimumUpdatePeriod="PT4.2S" maxSegmentDuration="PT7S" timeShiftBufferDepth="PT24S"> <Period id='1693223122' start="PT0S" > <AdaptationSet id="2" mimeType="video/mp4" contentType="video" maxWidth="1280" maxHeight="720" par="1280:720" maxFrameRate="4167/100" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1"> <!-- Common Encryption --> <ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="069ffc15-0443-49a5-b337-236a8e82ce87"/> <!-- widevine --> <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed" value="Widevine"> <cenc:pssh>AAAAYXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAEEIARIQBp/8FQRDSaWzNyNqjoLOhxoFQ29uYXgiJDQ2MjQ5YmU4LTI4MjgtNDcwNS04NTk5LTBiNmMwYTU2ZGY2Mw==</cenc:pssh> </ContentProtection> <!-- playready --> <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95" value="Microsoft PlayReady"> <cenc:pssh>AAAEWHBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAABDg4BAAAAQABAC4EPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwATABBAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AdgBpAGUAdwB3AGEAeQAuAGEAcAAtAHMAbwB1AHQAaAAtADEALgBjAG8AbgBhAHgALgBjAGwAbwB1AGQALwBjAHgAcABsAGEAeQByAGUAYQBkAHkALwByAGkAZwBoAHQAcwBtAGEAbgBhAGcAZQByAC4AYQBzAG0AeAA8AC8ATABBAF8AVQBSAEwAPgA8AEwAVQBJAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AdgBpAGUAdwB3AGEAeQAuAGEAcAAtAHMAbwB1AHQAaAAtADEALgBjAG8AbgBhAHgALgBjAGwAbwB1AGQALwBjAHgAcABsAGEAeQByAGUAYQBkAHkALwByAGkAZwBoAHQAcwBtAGEAbgBhAGcAZQByAC4AYQBzAG0AeAA8AC8ATABVAEkAXwBVAFIATAA+ADwASwBJAEQAPgBGAGYAeQBmAEIAawBNAEUAcABVAG0AegBOAHkATgBxAGoAbwBMAE8AaAB3AD0APQA8AC8ASwBJAEQAPgA8AEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAIAB4AG0AbABuAHMAPQAiACIAPgA8AEMAbwBuAHQAZQBuAHQAUgBlAGYAPgA0ADYAMgA0ADkAYgBlADgALQAyADgAMgA4AC0ANAA3ADAANQAtADgANQA5ADkALQAwAGIANgBjADAAYQA1ADYAZABmADYAMwA8AC8AQwBvAG4AdABlAG4AdABSAGUAZgA+ADwALwBDAFUAUwBUAE8ATQBBAFQAVABSAEkAQgBVAFQARQBTAD4APABDAEgARQBDAEsAUwBVAE0APgB0AGcASABJADcATwBXAGsAVgBmADAAPQA8AC8AQwBIAEUAQwBLAFMAVQBNAD4APAAvAEQAQQBUAEEAPgA8AC8AVwBSAE0ASABFAEEARABFAFIAPgA=</cenc:pssh> <mspr:pro>OAQAAAEAAQAuBDwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAHYAaQBlAHcAdwBhAHkALgBhAHAALQBzAG8AdQB0AGgALQAxAC4AYwBvAG4AYQB4AC4AYwBsAG8AdQBkAC8AYwB4AHAAbABhAHkAcgBlAGEAZAB5AC8AcgBpAGcAaAB0AHMAbQBhAG4AYQBnAGUAcgAuAGEAcwBtAHgAPAAvAEwAQQBfAFUAUgBMAD4APABMAFUASQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAHYAaQBlAHcAdwBhAHkALgBhAHAALQBzAG8AdQB0AGgALQAxAC4AYwBvAG4AYQB4AC4AYwBsAG8AdQBkAC8AYwB4AHAAbABhAHkAcgBlAGEAZAB5AC8AcgBpAGcAaAB0AHMAbQBhAG4AYQBnAGUAcgAuAGEAcwBtAHgAPAAvAEwAVQBJAF8AVQBSAEwAPgA8AEsASQBEAD4ARgBmAHkAZgBCAGsATQBFAHAAVQBtAHoATgB5AE4AcQBqAG8ATABPAGgAdwA9AD0APAAvAEsASQBEAD4APABDAFUAUwBUAE8ATQBBAFQAVABSAEkAQgBVAFQARQBTACAAeABtAGwAbgBzAD0AIgAiAD4APABDAG8AbgB0AGUAbgB0AFIAZQBmAD4ANAA2ADIANAA5AGIAZQA4AC0AMgA4ADIAOAAtADQANwAwADUALQA4ADUAOQA5AC0AMABiADYAYwAwAGEANQA2AGQAZgA2ADMAPAAvAEMAbwBuAHQAZQBuAHQAUgBlAGYAPgA8AC8AQwBVAFMAVABPAE0AQQBUAFQAUgBJAEIAVQBUAEUAUwA+ADwAQwBIAEUAQwBLAFMAVQBNAD4AdABnAEgASQA3AE8AVwBrAFYAZgAwAD0APAAvAEMASABFAEMASwBTAFUATQA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</mspr:pro> </ContentProtection> <Representation id="tracks-v1" width="1280" height="720" sar="1:1" frameRate="25" bandwidth="3494000" codecs="avc1.4d401f"> <SegmentTemplate initialization="$RepresentationID$/init.m4v" media="$RepresentationID$/seg-1693223122-$Number$.m4v?t=$Time$" timescale="1000" startNumber="3091905"> <SegmentTimeline> <S t="19899740169" d="6000" r="3"/> </SegmentTimeline> </SegmentTemplate> </Representation> </AdaptationSet> <AdaptationSet id="1" mimeType="audio/mp4" contentType="audio" segmentAlignment="true" startWithSAP="1"> <!-- Common Encryption --> <ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="069ffc15-0443-49a5-b337-236a8e82ce87"/> <!-- widevine --> <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed" value="Widevine"> <cenc:pssh>AAAAYXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAEEIARIQBp/8FQRDSaWzNyNqjoLOhxoFQ29uYXgiJDQ2MjQ5YmU4LTI4MjgtNDcwNS04NTk5LTBiNmMwYTU2ZGY2Mw==</cenc:pssh> </ContentProtection> <!-- playready --> <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95" value="Microsoft PlayReady"> <cenc:pssh>AAAEWHBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAABDg4BAAAAQABAC4EPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwATABBAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AdgBpAGUAdwB3AGEAeQAuAGEAcAAtAHMAbwB1AHQAaAAtADEALgBjAG8AbgBhAHgALgBjAGwAbwB1AGQALwBjAHgAcABsAGEAeQByAGUAYQBkAHkALwByAGkAZwBoAHQAcwBtAGEAbgBhAGcAZQByAC4AYQBzAG0AeAA8AC8ATABBAF8AVQBSAEwAPgA8AEwAVQBJAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AdgBpAGUAdwB3AGEAeQAuAGEAcAAtAHMAbwB1AHQAaAAtADEALgBjAG8AbgBhAHgALgBjAGwAbwB1AGQALwBjAHgAcABsAGEAeQByAGUAYQBkAHkALwByAGkAZwBoAHQAcwBtAGEAbgBhAGcAZQByAC4AYQBzAG0AeAA8AC8ATABVAEkAXwBVAFIATAA+ADwASwBJAEQAPgBGAGYAeQBmAEIAawBNAEUAcABVAG0AegBOAHkATgBxAGoAbwBMAE8AaAB3AD0APQA8AC8ASwBJAEQAPgA8AEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAIAB4AG0AbABuAHMAPQAiACIAPgA8AEMAbwBuAHQAZQBuAHQAUgBlAGYAPgA0ADYAMgA0ADkAYgBlADgALQAyADgAMgA4AC0ANAA3ADAANQAtADgANQA5ADkALQAwAGIANgBjADAAYQA1ADYAZABmADYAMwA8AC8AQwBvAG4AdABlAG4AdABSAGUAZgA+ADwALwBDAFUAUwBUAE8ATQBBAFQAVABSAEkAQgBVAFQARQBTAD4APABDAEgARQBDAEsAUwBVAE0APgB0AGcASABJADcATwBXAGsAVgBmADAAPQA8AC8AQwBIAEUAQwBLAFMAVQBNAD4APAAvAEQAQQBUAEEAPgA8AC8AVwBSAE0ASABFAEEARABFAFIAPgA=</cenc:pssh> <mspr:pro>OAQAAAEAAQAuBDwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAHYAaQBlAHcAdwBhAHkALgBhAHAALQBzAG8AdQB0AGgALQAxAC4AYwBvAG4AYQB4AC4AYwBsAG8AdQBkAC8AYwB4AHAAbABhAHkAcgBlAGEAZAB5AC8AcgBpAGcAaAB0AHMAbQBhAG4AYQBnAGUAcgAuAGEAcwBtAHgAPAAvAEwAQQBfAFUAUgBMAD4APABMAFUASQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAHYAaQBlAHcAdwBhAHkALgBhAHAALQBzAG8AdQB0AGgALQAxAC4AYwBvAG4AYQB4AC4AYwBsAG8AdQBkAC8AYwB4AHAAbABhAHkAcgBlAGEAZAB5AC8AcgBpAGcAaAB0AHMAbQBhAG4AYQBnAGUAcgAuAGEAcwBtAHgAPAAvAEwAVQBJAF8AVQBSAEwAPgA8AEsASQBEAD4ARgBmAHkAZgBCAGsATQBFAHAAVQBtAHoATgB5AE4AcQBqAG8ATABPAGgAdwA9AD0APAAvAEsASQBEAD4APABDAFUAUwBUAE8ATQBBAFQAVABSAEkAQgBVAFQARQBTACAAeABtAGwAbgBzAD0AIgAiAD4APABDAG8AbgB0AGUAbgB0AFIAZQBmAD4ANAA2ADIANAA5AGIAZQA4AC0AMgA4ADIAOAAtADQANwAwADUALQA4ADUAOQA5AC0AMABiADYAYwAwAGEANQA2AGQAZgA2ADMAPAAvAEMAbwBuAHQAZQBuAHQAUgBlAGYAPgA8AC8AQwBVAFMAVABPAE0AQQBUAFQAUgBJAEIAVQBUAEUAUwA+ADwAQwBIAEUAQwBLAFMAVQBNAD4AdABnAEgASQA3AE8AVwBrAFYAZgAwAD0APAAvAEMASABFAEMASwBTAFUATQA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</mspr:pro> </ContentProtection> <Representation id="tracks-a1" audioSamplingRate="44100" bandwidth="131000" codecs="mp4a.40.2"> <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/> <SegmentTemplate initialization="$RepresentationID$/init.m4v" media="$RepresentationID$/seg-1693223122-$Number$.m4v?t=$Time$" timescale="1000" startNumber="3091905"> <SegmentTimeline> <S t="19899740169" d="6000" r="3"/> </SegmentTimeline> </SegmentTemplate> </Representation> </AdaptationSet> </Period> <UTCTiming schemeIdUri="urn:mpeg:dash:utc:direct:2014" value="2024-04-14T19:28:06Z" /> </MPD>
How to proceed with this?
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 1 to 20 of 20
-
-
You can't find LIC / WIDEVINE because your connection is not secure, you need to perform Cert Pinning to the application and create a secure connection.
After that you can find the LIC -
-
-
Used HTTPCanary Root with CA certificate to find license, fortunately I was able to find the license url. https://cms.cinesoft.live/api/getAuthToken
It has the request as below,
Code:POST /api/getAuthToken HTTP/1.1 timestamp: 1713183827397 key: +JWKCzUkNzOuvAicx8IxxxxikvK71bBgA2e0sxxxxxxLGm9JeLx9RvM9P+ Content-Type: application/json Content-Length: 18 Host: cms.cinesoft.live Connection: Keep-Alive Accept-Encoding: gzip User-Agent: okhttp/3.8.0 {"mediaId":"1189"}
Code:{ "preAuthToken": "eyJraWQiOiIxNWUxYzU4ZS05NGFmLTRlNjUtOTFhZS1mYjMyMzNlNmJlNjUiLCJ0eXAiOiJKV1QiLCJleHAiOjE3MTMxODM4ODk2NjAsIm9wZXJhdG9ySWxxxxxx0IiwiYWxnIjoiSFMyNTYifQ.eyJtb2RlIjoiU1RSRUFNSU5HIiwic2NvcGUiOiJsaWNBdXRoIiwiZXhwIjoxNzEzMTgzODg5LCJvcGVyYXRvcklkIjoiMzEwNCIsImp0aSI6IkFCMzRCMkE1MUE1OUIzRDMyQkU0RDBEOTk4NDBDODQ5IiwiY29udGVudFJlZiI6IjQ2MjQ5YmU4LTIxxxxxDcwNS04NTk5LTBiNmMwYTU2ZGY2MyIsImxpY2Vuc2VEdXJhdGlvbiI6Ixxxxxxx.3LZCBBNxT4d3a-T1PM2RpfzacF6FUx5w2az8hORm4GM", "status": 200 }
Last edited by Kratos; 28th May 2024 at 04:00. Reason: scrambling auth key
-
Last edited by Kratos; 28th May 2024 at 03:55.
-
Yes and no. They keys are more or less inside that challenge response. To actaully get to the keys you'll need to use pywidevine to recreate that key retrieval process.
More help can be found in the forum (sticky threads). -
I tried using wks-key, its throwing the unable to parse - check protobuff error. I guess its something related to the headers.
This are the headers from HTTPToolkit.
[Attachment 78434 - Click to enlarge]
Headers used in wks-key.
[Attachment 78435 - Click to enlarge]
There seems to be Request Body for header, how to include this in wks-key?
[Attachment 78436 - Click to enlarge] -
That's what WKS-KEYS should replace with it's own challenge.
In your WKS script there should be a line like:
Code:requests.post(url=lic_url, data=challenge, headers=headers.headers)
If you know that your license server only takes a byte-like input and gives a byte-like output then you can leave it like that
If you see your challenge being sent to server in a json format you'll have to edit your request and response respectively to include your data as base64.
If that's not the case then you can add a print statement below the line above to print:
Code:print(response.text)
-
I have tired the changes as suggested, but still getting the same unable to parse license error. Its only taking a byte like input and responding with a byte like output.
I tried sending the post request using the byte request data with preauthorization and the server is responding back only withCode:Error 500: {"status":"UNGRANTED_REQUEST","code":500,"errorCode":6001,"message":"Internal error"}
-
-
If 'copy as requests format' wasn't an http toolkit premium feature you wouldn't have to do this trial and error stuff because in most cases you can re-send the challenge to get the response again, you just arent able to retrieve the keys from that response but it will be good enough to test whether your script is working correctly
-
-
Thanks for your help again and again, Is it possible to generate preauthorization token instead of using the captured response one from httptoolkit?
The post request for getting preauth token isCode:POST /api/getAuthToken HTTP/1.1 key: +JWKCzXXXXXuvAicx8IzLAQikvXXXXBgA2e0sopkUjidI4AbXflX9uqxNoEnlQVt timestamp: 1713198795324 Content-Type: application/json Content-Length: 18 Host: cms.cinesoft.live Connection: Keep-Alive Accept-Encoding: gzip User-Agent: okhttp/3.8.0
Only the last part of the request key is changing for getting every preauth token.
Code:idI4AbXflX9uqxNoEnlQVt
Last edited by Kratos; 28th May 2024 at 04:07. Reason: scrambling auth key
-
It's not base64, you can look around in other requests to see if you can get the key from some other request.
-
-
Fortunately, I am still using the last generated auth key and its working perfectly till now. It didn't expire yet.
Similar Threads
-
Issues with Playing mpd Content on Android phone or tv
By imr_saleh in forum Video Streaming DownloadingReplies: 6Last Post: 12th Dec 2023, 07:52 -
How to get MPDs from Android app ?
By senkron24 in forum Video Streaming DownloadingReplies: 2Last Post: 6th Oct 2023, 04:29 -
How to get the Mpd Link and License url of a stream using the Android of
By Loryanam2 in forum Video Streaming DownloadingReplies: 0Last Post: 29th Jan 2022, 10:35 -
ffmpegui android app
By Anonymous543 in forum Newbie / General discussionsReplies: 0Last Post: 1st Dec 2021, 03:12 -
How do I download streaming videos in an android app ??
By shraman in forum Video Streaming DownloadingReplies: 3Last Post: 2nd Jul 2021, 08:14