hi
i try many think to get the right pssh i cannot figure out can any help me to get pssh
i cant share the link becouse its have token and hmac will be expire very soon
on the mpd file thare are
<AudioChannelConfiguration
schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_c onfiguration:2011"
value="2" />
<!-- Common Encryption -->
<ContentProtection
schemeIdUri="urn:mpeg:dash:mp4protection:2011"
value="cenc"
cenc:default_KID="0FFB2FB2-32EE-3ECF-CE73-709FB8EDA4FA">
</ContentProtection>
no pssh insaide
here its the kid
0ffb2fb232ee3ecfce73709fb8eda4fa
if i calculate the regluary kid to pssh
AAAAMnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABISEA/7L7Iy7j7PznNwn7jtpPo=
this pssh will not work
also i get the keys bud its wrong keys becouse the pssh its not coreckt
i try with init not succes
with axinom cannot becouse i cant find system id for widevine
i dont now how to
anyone its welcome ..
kind regarts
+ Reply to Thread
Results 1 to 30 of 30
-
-
Can't you just extract the PSSH from the mp4 init segment? (See e.g. here: https://forum.videohelp.com/threads/413400-getPSSH-the-n00b-s-way#post2723476)
-
thank for you answer @obo
the sitration its i think i cant make even a mp4 init
have you any provide for me to try difrend way to get segmnet mp4 ?
kind regarts -
Download the crypted file(s) and use the linked script to search for the PSSH in the crypted file(s). Usually every widevine crypted mp4 file has the PSSH in its meta data (the resides in the moov atom) at the very beginning of the file.
-
have you any type how to
Download the crypted init.mp4 file
i try with yt-dlp and N_m3u8DL-RE.exe
with same comand and scripts bud its goin to fail
example i try with this script
Code:import os import subprocess import re import base64 import urllib.request import binascii from urllib.error import HTTPError def get_pssh(keyId): array_of_bytes = bytearray(b'\x00\x00\x002pssh\x00\x00\x00\x00') array_of_bytes.extend(bytes.fromhex("edef8ba979d64acea3c827dcd51d21ed")) array_of_bytes.extend(b'\x00\x00\x00\x12\x12\x10') array_of_bytes.extend(bytes.fromhex(keyId.replace("KID =", ""))) return base64.b64encode(bytes.fromhex(array_of_bytes.hex())) def return_pssh(kid): kid = ''.join(c for c in kid if c.isalnum()) return "PSSH = {}".format(get_pssh(kid).decode('utf-8')) def print_color(text, color_code): print(f"\033[{color_code}m{text}\033[0m", end="", flush=True) def get_pssh_from_url(url): mpd_headers = { "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" } if url == "": print_color("URL input aborted. Exiting...", "91") return try: # Comment out the code that searches for PSSH values in the MPD # pssh_list = [] mpd_data = urllib.request.urlopen(url).read().decode('utf-8') baseurl = url.rstrip("/") + "/" print_color("Calculating the PSSH, please wait.\n", "91") subprocess.run(['yt-dlp', '--allow-u', '--no-progress', '--console-title', url], stdout=subprocess.DEVNULL, stderr=subprocess.STDOUT) for file in os.listdir(): if file.endswith('.mp4') and file != 'test.mp4': os.rename(file, 'test.mp4') break kid = None dump_output = subprocess.run(['mp4dump.exe', 'test.mp4'], capture_output=True, text=True).stdout for line in dump_output.split('\n'): if 'KID' in line: print("Found line with KID:", line) parts = line.split('=')[1].strip() if '[' in parts: kid = parts.split('[')[1].strip(']') print("Extracted KID:", kid.replace(' ', '')) break if kid: pssh_result = return_pssh(kid) if pssh_result: print_color(pssh_result, "92") start_over() else: print("\nMPD doesn't have a KID.") for file in os.listdir(): if file.endswith('.m4a') or file == 'test.mp4': os.remove(file) except HTTPError as e: print_color("Failed to fetch the MPD data. Please check the URL and try again.", "91") print("\n", end="") print_color(str(e), "91") start_over() except ValueError as e: if "unknown url type" in str(e): print_color("Invalid URL format. Please enter a valid URL.", "91") start_over() else: raise e def enter_url(): url = input("Enter the URL : ") if url: get_pssh_from_url(url) else: print_color("URL input aborted. Exiting...", "91") def start_over(): choice = input("\nDo you want to start over? (y/n): ") if choice.lower() == "y": enter_url() else: print("Exiting...") if os.path.exists('test.mp4'): os.remove('test.mp4') enter_url()
web [*~id=axxx_17x163xxx073~hmac=3xaexxx5xx3bd2xx 8xa7xc].faudio_eng=128000.m4a.part -
-
i try to figure out with how to get easy init.mp4
its thare any option with N_m3u8DL-RE ?
with ytl get forbiiden -
Tried this before?
Code:AAAARnBzc2gBAAAA7e+LqXnWSs6jyCfc1R0h7QAAAAEP+y+yMu4+z85zcJ+47aT6AAAAEhIQD/svsjLuPs/Oc3CfuO2k+g==
-
-
yeap with this comand with yt-dlp
[download] Destination: web [*~id=ac63906744_1711637058073~hmac=34aeef93873af27 3592d1675dd758c83bd2ce6a41de7440d7add86cb0f3a7f1c].fvideo=1800000.mp4
[download] Got error: HTTP Error 403: Forbidden. Retrying fragment 1 (1/10)...
[download] Got error: HTTP Error 403: Forbidden. Retrying fragment 1 (2/10)...
[download] Got error: HTTP Error 403: Forbidden. Retrying fragment 1 (3/10)...
[download] Got error: HTTP Error 403: Forbidden. Retrying fragment 1 (4/10)...
[download] Got error: HTTP Error 403: Forbidden. Retrying fragment 1 (5/10)...
[download] Got error: HTTP Error 403: Forbidden. Retrying fragment 1 (6/10)...
[download] Got error: HTTP Error 403: Forbidden. Retrying fragment 1 (7/10)...
[download] Got error: HTTP Error 403: Forbidden. Retrying fragment 1 (8/10)...
[download] Got error: HTTP Error 403: Forbidden. Retrying fragment 1 (9/10)...
[download] Got error: HTTP Error 403: Forbidden. Retrying fragment 1 (10/10)...
[download] Got error: HTTP Error 403: Forbidden. Giving up after 10 retries
not posibel
bud i think mybe can be work with N_m3u8DL-RE
will try again with stop
18:43:50.261 INFO : Content Matched: Dynamic Adaptive Streaming over HTTP
18:43:50.264 INFO : Parsing streams...
18:43:50.510 WARN : Writing meta json
18:43:50.553 INFO : Extracted, there are 4 streams, with 3 basic streams, 1 audio streams, 0 subtitle streams
18:43:50.554 INFO : Vid *CENC 1280x720 | 1800 Kbps | video=1800000 | avc1.4D401F | 11251 Segments | ~12h00m03s
18:43:50.557 INFO : Vid *CENC 768x432 | 760 Kbps | video=760000 | avc1.4D401E | 11251 Segments | ~12h00m03s
18:43:50.558 INFO : Vid *CENC 416x234 | 240 Kbps | video=240000 | avc1.4D400D | 11251 Segments | ~12h00m03s
18:43:50.561 INFO : Aud *CENC audio_eng=128000 | 128 Kbps | mp4a.40.2 | en | 2CH | 11251 Segments | ~12h00m03s
18:43:50.562 INFO : Parsing streams...
18:43:50.564 WARN : Live stream found
18:43:50.587 INFO : Selected streams:
18:43:50.600 INFO : Vid *CENC 1280x720 | 1800 Kbps | video=1800000 | avc1.4D401F | 11251 Segments | ~12h00m03s
18:43:50.601 INFO : Aud *CENC audio_eng=128000 | 128 Kbps | mp4a.40.2 | en | 2CH | 11251 Segments | ~12h00m03s
18:43:50.607 WARN : Writing meta json
18:43:50.627 INFO : Save Name: web_2024-03-28_18-43-50
18:43:50.637 WARN : set refresh interval to 26 seconds
18:43:50.840 WARN : fMP4 is detected, binary merging is automatically enabled
18:43:50.922 WARN : Type: cenc
18:43:50.925 WARN : PSSH(WV): CAESEA/7L7Iy7j7PznNwn7jtpPoSEI6FR0Dwqjkw0k9FkT2JlLESEHyuh tWo2hRVI99BS7I2S8oaDGtyZWFkaWdpdHVyayIOYm1wcmVtaWV yZW9yZ2Q=
18:43:50.925 WARN : KID: 0ffb2fb232ee3ecfce73709fb8eda4fa
18:43:50.928 WARN : Reading media info...
18:43:50.946 INFO : [0x1]: Video, h264 (avc1), 1280x720
18:43:51.029 WARN : Type: cenc
18:43:51.029 WARN : PSSH(WV): CAESEA/7L7Iy7j7PznNwn7jtpPoSEI6FR0Dwqjkw0k9FkT2JlLESEHyuh tWo2hRVI99BS7I2S8oaDGtyZWFkaWdpdHVyayIOYm1wcmVtaWV yZW9yZ2Q=
18:43:51.032 WARN : KID: 0ffb2fb232ee3ecfce73709fb8eda4fa
18:43:51.033 WARN : Reading media info...
18:43:51.054 INFO : [0x1]: Audio, aac (mp4a), 128 kb/s -
i dont think so bud here its the mpd file
Code:<?xml version="1.0" encoding="utf-8"?> <!-- Created with Unified Streaming Platform (version=1.12.1-28247) --> <MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:cenc="urn:mpeg:cenc:2013" xmlns:mspr="urn:microsoft:playready" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd" type="dynamic" availabilityStartTime="1970-01-01T00:00:04Z" publishTime="2024-03-28T11:58:40.525606Z" minimumUpdatePeriod="PT2S" timeShiftBufferDepth="PT12H" maxSegmentDuration="PT4S" minBufferTime="PT10S" profiles="urn:mpeg:dash:profile:isoff-live:2011,urn:com:dashif:dash264"> <Period id="1" start="PT0S">/ <BaseURL>hmac=blabla/</BaseURL> <AdaptationSet id="1" group="1" contentType="audio" lang="en" segmentAlignment="true" audioSamplingRate="48000" mimeType="audio/mp4" codecs="mp4a.40.2" startWithSAP="1"> <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2" /> <!-- Common Encryption --> <ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="0FFB2FB2-32EE-3ECF-CE73-709FB8EDA4FA"> </ContentProtection> <!-- PlayReady --> <ContentProtection schemeIdUri="urn:uuid:9A04F079-9840-4286-AB92-E65BE0885F95" value="MSPR 2.0"> <cenc:pssh>AAACunBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAApqaAgAAAQABAJACPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgBzAGkALwA3AEQAKwA0AHkAegB6ADcATwBjADMAQwBmAHUATwAyAGsAKwBnAD0APQA8AC8ASwBJAEQAPgA8AEMASABFAEMASwBTAFUATQA+ADMAKwB4AEwASQBjADQARQAwACsANAA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAHAAcgAtAGMAYQBzAHQAbABlAGIAbABhAGMAawAuAGQAaQBnAGkAdAB1AHIAawAuAGMAbwBtAC4AdAByAC8AUgBpAGcAaAB0AHMAbQBhAG4AYQBnAGUAcgAuAGEAcwBtAHgAPAAvAEwAQQBfAFUAUgBMAD4APAAvAEQAQQBUAEEAPgA8AC8AVwBSAE0ASABFAEEARABFAFIAPgA=</cenc:pssh> <mspr:IsEncrypted>1</mspr:IsEncrypted> <mspr:IV_Size>8</mspr:IV_Size> <mspr:kid>si/7D+4yzz7Oc3CfuO2k+g==</mspr:kid> <mspr:pro>mgIAAAEAAQCQAjwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AcwBpAC8ANwBEACsANAB5AHoAegA3AE8AYwAzAEMAZgB1AE8AMgBrACsAZwA9AD0APAAvAEsASQBEAD4APABDAEgARQBDAEsAUwBVAE0APgAzACsAeABMAEkAYwA0AEUAMAArADQAPQA8AC8AQwBIAEUAQwBLAFMAVQBNAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBwAHIALQBjAGEAcwB0AGwAZQBiAGwAYQBjAGsALgBkAGkAZwBpAHQAdQByAGsALgBjAG8AbQAuAHQAcgAvAFIAaQBnAGgAdABzAG0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</mspr:pro> </ContentProtection> <!-- Widevine --> <ContentProtection schemeIdUri="urn:uuid:EDEF8BA9-79D6-4ACE-A3C8-27DCD51D21ED"> <cenc:pssh>AAAAdnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAFYIARIQD/svsjLuPs/Oc3CfuO2k+hIQjoVHQPCqOTDST0WRPYmUsRIQfK6G1ajaFFUj30FLsjZLyhoMa3JlYWRpZ2l0dXJrIg5ibXByZW1pZXJlb3JnZA==</cenc:pssh> </ContentProtection> <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main" /> <SegmentTemplate timescale="48000" initialization="bmpremiereorgd-$RepresentationID$.dash" media="bmpremiereorgd-$RepresentationID$-$Time$.dash"> <!-- 2024-03-27T23:58:31.960000Z / 1711583911 - 2024-03-28T11:58:35.800000Z --> <SegmentTimeline> <S t="82156027774080" d="184320" r="11250" /> </SegmentTimeline> </SegmentTemplate> <Representation id="audio_eng=128000" bandwidth="128000"> </Representation> </AdaptationSet> <AdaptationSet id="2" group="2" contentType="video" par="16:9" minBandwidth="240000" maxBandwidth="1800000" maxWidth="1280" maxHeight="720" segmentAlignment="true" sar="1:1" frameRate="25" mimeType="video/mp4" startWithSAP="1"> <!-- Common Encryption --> <ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="0FFB2FB2-32EE-3ECF-CE73-709FB8EDA4FA"> </ContentProtection> <!-- PlayReady --> <ContentProtection schemeIdUri="urn:uuid:9A04F079-9840-4286-AB92-E65BE0885F95" value="MSPR 2.0"> <cenc:pssh>AAACunBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAApqaAgAAAQABAJACPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgBzAGkALwA3AEQAKwA0AHkAegB6ADcATwBjADMAQwBmAHUATwAyAGsAKwBnAD0APQA8AC8ASwBJAEQAPgA8AEMASABFAEMASwBTAFUATQA+ADMAKwB4AEwASQBjADQARQAwACsANAA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAHAAcgAtAGMAYQBzAHQAbABlAGIAbABhAGMAawAuAGQAaQBnAGkAdAB1AHIAawAuAGMAbwBtAC4AdAByAC8AUgBpAGcAaAB0AHMAbQBhAG4AYQBnAGUAcgAuAGEAcwBtAHgAPAAvAEwAQQBfAFUAUgBMAD4APAAvAEQAQQBUAEEAPgA8AC8AVwBSAE0ASABFAEEARABFAFIAPgA=</cenc:pssh> <mspr:IsEncrypted>1</mspr:IsEncrypted> <mspr:IV_Size>8</mspr:IV_Size> <mspr:kid>si/7D+4yzz7Oc3CfuO2k+g==</mspr:kid> <mspr:pro>mgIAAAEAAQCQAjwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AcwBpAC8ANwBEACsANAB5AHoAegA3AE8AYwAzAEMAZgB1AE8AMgBrACsAZwA9AD0APAAvAEsASQBEAD4APABDAEgARQBDAEsAUwBVAE0APgAzACsAeABMAEkAYwA0AEUAMAArADQAPQA8AC8AQwBIAEUAQwBLAFMAVQBNAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBwAHIALQBjAGEAcwB0AGwAZQBiAGwAYQBjAGsALgBkAGkAZwBpAHQAdQByAGsALgBjAG8AbQAuAHQAcgAvAFIAaQBnAGgAdABzAG0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</mspr:pro> </ContentProtection> <!-- Widevine --> <ContentProtection schemeIdUri="urn:uuid:EDEF8BA9-79D6-4ACE-A3C8-27DCD51D21ED"> <cenc:pssh>AAAAdnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAFYIARIQD/svsjLuPs/Oc3CfuO2k+hIQjoVHQPCqOTDST0WRPYmUsRIQfK6G1ajaFFUj30FLsjZLyhoMa3JlYWRpZ2l0dXJrIg5ibXByZW1pZXJlb3JnZA==</cenc:pssh> </ContentProtection> <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main" /> <SegmentTemplate timescale="600" initialization="bmpremiereorgd-$RepresentationID$.dash" media="bmpremiereorgd-$RepresentationID$-$Time$.dash"> <!-- 2024-03-27T23:58:31.960000Z / 1711583911 - 2024-03-28T11:58:35.800000Z --> <SegmentTimeline> <S t="1026950347176" d="2304" r="11250" /> </SegmentTimeline> </SegmentTemplate> <Representation id="video=240000" bandwidth="240000" width="416" height="234" codecs="avc1.4D400D" scanType="progressive"> </Representation> <Representation id="video=760000" bandwidth="760000" width="768" height="432" codecs="avc1.4D401E" scanType="progressive"> </Representation> <Representation id="video=1800000" bandwidth="1800000" width="1280" height="720" codecs="avc1.4D401F" scanType="progressive"> </Representation> </AdaptationSet> </Period> <UTCTiming schemeIdUri="urn:mpeg:dash:utc:http-iso:2014" value="https://time.akamai.com/?iso" /> </MPD>
-
Well your PSSH is right there:
Code:AAAAdnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAFYIARIQD/svsjLuPs/Oc3CfuO2k+hIQjoVHQPCqOTDST0WRPYmUsRIQfK6G1ajaFFUj30FLsjZLyhoMa3JlYWRpZ2l0dXJrIg5ibXByZW1pZXJlb3JnZA==
-
-
-
The Key ID you posted in Post #1 was for the W3 Common Encryption.
The PSSH from Widevine i posted contains 3 Key IDs. Even though the Key ID you posted was the first in the Widevine PSSH, there were 2 more Key IDs inside
Code:8e854740-f0aa-3930-d24f-45913d8994b1
Code:7cae86d5-a8da-1455-23df-414bb2364bca
-
-
A Key ID can't be "just widevine". Widevine and such are just ways of getting from having a key id to obtaining a key, implemented by different DRM Systems (i.e.: Widevine (Google), PlayReady (Microsoft), FairPlay (Apple) or even smaller ones like Marlin DRM or Axinom DRM).
-
BTW an easy way of finding the PSSH from an MPD, whether it's in the MPD manifest itself or in the init segment, is with dash-mpd-cli with the "-v" option. For example with a 6play MPD from another thread today:
Code:% dash-mpd-cli -v "https://6play.vod.6cloud.fr/m6web/output/1/7/c/17cb27dac7a89a1ecdd88ab095c46b9330f7c386/static/13060525_1fc8df7b21f77198842ad3e55dc5bf4c_web_dash_upTo720p_720p_vbr_cae_drm_software.mpd" 20:07:29 INFO Fetching the DASH manifest 20:07:29 INFO DASH manifest has 1 period 20:07:29 INFO Streams in period 1 (#1), duration 6070.200s: 20:07:29 INFO audio mp4a.40.2 | 93 Kbps | lang=fra role=main label=LV 20:07:29 INFO video avc1.42C01E | 233 Kbps | 400x224 role=main 20:07:29 INFO video avc1.64001F | 500 Kbps | 640x360 role=main 20:07:29 INFO video avc1.64001F | 918 Kbps | 720x404 role=main 20:07:29 INFO video avc1.64001F | 1405 Kbps | 960x540 role=main 20:07:29 INFO video avc1.64001F | 2106 Kbps | 1280x720 role=main 20:07:29 INFO Preparing download for period 1 (#1) 20:07:29 INFO Audio stream selected: bw=93 Kbps lang=fra codec=mp4a.40.2 20:07:29 INFO Video stream selected: bw=233 Kbps resolution=400x224 codec=avc1.42C01E 20:07:29 INFO ContentProtection: cenc 20:07:29 INFO KID: 5C1A1123DCE22353983CBF0822586093 20:07:29 INFO ContentProtection: Widevine 20:07:29 INFO PSSH (from manifest): AAAAWnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADoIARIQXBoRI9ziI1OYPL8IIlhgkyIkZXlKaGMzTmxkRWxrSWpvaVkyeHBjRjh4TXpBMk1EVXlOU0o5 20:07:29 INFO WidevinePSSH<Aesctr, key_id: 5c1a1123dce22353983cbf0822586093, content_id: "65794a6863334e6c64456c6b496a6f6959327870634638784d7a41324d4455794e534a39"> 20:07:29 INFO ContentProtection: PlayReady 20:07:29 INFO PSSH (from manifest): AAADSHBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAAygoAwAAAQABAB4DPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgBJAHgARQBhAFgATwBMAGMAVQB5AE8AWQBQAEwAOABJAEkAbABoAGcAawB3AD0APQA8AC8ASwBJAEQAPgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGwAaQBjAC4AZAByAG0AdABvAGQAYQB5AC4AYwBvAG0ALwBsAGkAYwBlAG4AcwBlAC0AcAByAG8AeAB5AC0AaABlAGEAZABlAHIAYQB1AHQAaAAvAGQAcgBtAHQAbwBkAGEAeQAvAFIAaQBnAGgAdABzAE0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAA+ADwATABVAEkAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBwAGwAYQB5AHIAZQBhAGQAeQAtAHUAaQAuAGUAeABhAG0AcABsAGUALgBjAG8AbQA8AC8ATABVAEkAXwBVAFIATAA+ADwAQwBIAEUAQwBLAFMAVQBNAD4AQwA4AHYAZQA5AFUAQwA5AFIAWQBzAD0APAAvAEMASABFAEMASwBTAFUATQA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A 20:07:29 INFO PlayReadyPSSH<PlayReadyPsshData<RightsManagementRecord: <WRMHEADER xmlns="http://schemas.microsoft.com/DRM/2007/03/PlayReadyHeader" version="4.0.0.0"><DATA><KID>IxEaXOLcUyOYPL8IIlhgkw==</KID><PROTECTINFO><KEYLEN>16</KEYLEN><ALGID>AESCTR</ALGID></PROTECTINFO><CHECKSUM>C8ve9UC9RYs=</CHECKSUM><LA_URL>https://lic.drmtoday.com/license-proxy-headerauth/drmtoday/RightsManager.asmx</LA_URL><LUI_URL>https://playready-ui.example.com</LUI_URL></DATA></WRMHEADER>>> 20:07:29 INFO PSSH (from init segment): AAAAWnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADoIARIQXBoRI9ziI1OYPL8IIlhgkyIkZXlKaGMzTmxkRWxrSWpvaVkyeHBjRjh4TXpBMk1EVXlOU0o5 20:07:29 INFO WidevinePSSH<Aesctr, key_id: 5c1a1123dce22353983cbf0822586093, content_id: "65794a6863334e6c64456c6b496a6f6959327870634638784d7a41324d4455794e534a39"> 20:07:29 INFO Period #1: fetching 3036 audio, 2025 video and 0 subtitle segments
-
-
Haven't you achieved what you were trying to do?
You were trying to obtain a PSSH from an MPD file and i helped you do that, now i don't get what you're asking for. -
waww ı have try this bud not working on me
=ac63906744_127659~hmac="
[0s] [>-------------------------------------------------] Fetching DASH manifest
11:24:43 INFO Fetching the DASH manifest
11:24:43 ERROR Download failed: invalid media stream: Don't know how to download dynamic MPD
i try with your link its working great -
-
For a dynamic manifest (these are generally used for "live" streaming, rather than replay), you'll need to add the option "--enable-live-streams". If it's a true live stream, dash-mpd-cli probably won't be able to download the content properly, because it doesn't implement the clock-based throttling necessary to wait until new segments become available. However, some streams are announced as live but in fact all segments are available, and those are likely to work. Even if it can't download the full stream, it should print the PSSH information.
-
-
Code:
[0s] [>-------------------------------------------------] Fetching DASH manifest 12:02:51 INFO Fetching the DASH manifest 12:02:52 WARN Attempting to download from live stream (this may not work). 12:02:52 INFO DASH manifest has 1 period 12:02:52 INFO Streams in period 1 (#1), duration 0.000s: 12:02:52 INFO audio mp4a.40.2 | 125 Kbps | lang=en role=main 12:02:52 INFO video avc1.4D400D | 234 Kbps | 416x234 role=main 12:02:52 INFO video avc1.4D401E | 742 Kbps | 768x432 role=main 12:02:52 INFO video avc1.4D401F | 1757 Kbps | 1280x720 role=main 12:02:52 INFO Preparing download for period 1 (#1) 12:02:52 INFO Audio stream selected: bw=125 Kbps lang=en codec=mp4a.40.2 12:02:52 INFO ContentProtection: cenc 12:02:52 INFO KID: 0FFB2FB232EE3ECFCE73709FB8EDA4FA 12:02:52 INFO ContentProtection: PlayReady 12:02:52 INFO PSSH (from manifest): AAACunBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAApqaAgAAAQABAJACPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgBzAGkALwA3AEQAKwA0AHkAegB6ADcATwBjADMAQwBmAHUATwAyAGsAKwBnAD0APQA8AC8ASwBJAEQAPgA8AEMASABFAEMASwBTAFUATQA+ADMAKwB4AEwASQBjADQARQAwACsANAA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAHAAcgAtAGMAYQBzAHQAbABlAGIAbABhAGMAawAuAGQAaQBnAGkAdAB1AHIAawAuAGMAbwBtAC4AdAByAC8AUgBpAGcAaAB0AHMAbQBhAG4AYQBnAGUAcgAuAGEAcwBtAHgAPAAvAEwAQQBfAFUAUgBMAD4APAAvAEQAQQBUAEEAPgA8AC8AVwBSAE0ASABFAEEARABFAFIAPgA= 12:02:52 INFO PlayReadyPSSH<PlayReadyPsshData<RightsManagementRecord: <WRMHEADER xmlns="http://schemas.microsoft.com/DRM/2007/03/PlayReadyHeader" version="4.0.0.0"><DATA><KID>si/7D+4yzz7Oc3CfuO2k+g==</KID><PROTECTINFO><KEYLEN>16</KEYLEN><ALGID>AESCTR</ALGID></PROTECTINFO><CHECKSUM>3+xLIc4E0+4=</CHECKSUM><LA_URL>https://pr-castleblack.digiturk.com.tr/Rightsmanager.asmx</LA_URL></DATA></WRMHEADER>>> 12:02:52 INFO ContentProtection: Widevine 12:02:52 INFO PSSH (from manifest): AAAAdnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAFYIARIQD/svsjLuPs/Oc3CfuO2k+hIQjoVHQPCqOTDST0WRPYmUsRIQfK6G1ajaFFUj30FLsjZLyhoMa3JlYWRpZ2l0dXJrIg5ibXByZW1pZXJlb3JnZA== 12:02:52 INFO WidevinePSSH<Aesctr, key_ids: 0ffb2fb232ee3ecfce73709fb8eda4fa, 8e854740f0aa3930d24f45913d8994b1, 7cae86d5a8da145523df414bb2364bca, content_id: "626d7072656d696572656f726764", provider: "kreadigiturk"> 12:02:52 INFO PSSH (from init segment): AAAAdnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAFYIARIQD/svsjLuPs/Oc3CfuO2k+hIQjoVHQPCqOTDST0WRPYmUsRIQfK6G1ajaFFUj30FLsjZLyhoMa3JlYWRpZ2l0dXJrIg5ibXByZW1pZXJlb3JnZA== 12:02:52 INFO WidevinePSSH<Aesctr, key_ids: 0ffb2fb232ee3ecfce73709fb8eda4fa, 8e854740f0aa3930d24f45913d8994b1, 7cae86d5a8da145523df414bb2364bca, content_id: "626d7072656d696572656f726764", provider: "kreadigiturk"> 12:02:52 INFO Video stream selected: bw=234 Kbps resolution=416x234 codec=avc1.4D400D 12:02:52 INFO ContentProtection: cenc 12:02:52 INFO KID: 0FFB2FB232EE3ECFCE73709FB8EDA4FA 12:02:52 INFO ContentProtection: PlayReady 12:02:52 INFO PSSH (from manifest): AAACunBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAApqaAgAAAQABAJACPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgBzAGkALwA3AEQAKwA0AHkAegB6ADcATwBjADMAQwBmAHUATwAyAGsAKwBnAD0APQA8AC8ASwBJAEQAPgA8AEMASABFAEMASwBTAFUATQA+ADMAKwB4AEwASQBjADQARQAwACsANAA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAHAAcgAtAGMAYQBzAHQAbABlAGIAbABhAGMAawAuAGQAaQBnAGkAdAB1AHIAawAuAGMAbwBtAC4AdAByAC8AUgBpAGcAaAB0AHMAbQBhAG4AYQBnAGUAcgAuAGEAcwBtAHgAPAAvAEwAQQBfAFUAUgBMAD4APAAvAEQAQQBUAEEAPgA8AC8AVwBSAE0ASABFAEEARABFAFIAPgA= 12:02:52 INFO PlayReadyPSSH<PlayReadyPsshData<RightsManagementRecord: <WRMHEADER xmlns="http://schemas.microsoft.com/DRM/2007/03/PlayReadyHeader" version="4.0.0.0"><DATA><KID>si/7D+4yzz7Oc3CfuO2k+g==</KID><PROTECTINFO><KEYLEN>16</KEYLEN><ALGID>AESCTR</ALGID></PROTECTINFO><CHECKSUM>3+xLIc4E0+4=</CHECKSUM><LA_URL>https://pr-castleblack.digiturk.com.tr/Rightsmanager.asmx</LA_URL></DATA></WRMHEADER>>> 12:02:52 INFO ContentProtection: Widevine 12:02:52 INFO PSSH (from manifest): AAAAdnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAFYIARIQD/svsjLuPs/Oc3CfuO2k+hIQjoVHQPCqOTDST0WRPYmUsRIQfK6G1ajaFFUj30FLsjZLyhoMa3JlYWRpZ2l0dXJrIg5ibXByZW1pZXJlb3JnZA== 12:02:52 INFO WidevinePSSH<Aesctr, key_ids: 0ffb2fb232ee3ecfce73709fb8eda4fa, 8e854740f0aa3930d24f45913d8994b1, 7cae86d5a8da145523df414bb2364bca, content_id: "626d7072656d696572656f726764", provider: "kreadigiturk"> 12:02:52 INFO PSSH (from init segment): AAAAdnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAFYIARIQD/svsjLuPs/Oc3CfuO2k+hIQjoVHQPCqOTDST0WRPYmUsRIQfK6G1ajaFFUj30FLsjZLyhoMa3JlYWRpZ2l0dXJrIg5ibXByZW1pZXJlb3JnZA== 12:02:52 INFO WidevinePSSH<Aesctr, key_ids: 0ffb2fb232ee3ecfce73709fb8eda4fa, 8e854740f0aa3930d24f45913d8994b1, 7cae86d5a8da145523df414bb2364bca, content_id: "626d7072656d696572656f726764", provider: "kreadigiturk"> 12:02:52 INFO Period #1: fetching 11252 audio, 11252 video and 0 subtitle segments [65s] [#>------------------------------------------------] Fetching audio segments (0.6 MB/s)
now i get samthing
same problem
i get wrong keys on any psshLast edited by senkron24; 29th Mar 2024 at 03:37.
-
ahhh now i think understand why
also i was able download one movie with coreckt pssh and key
and think for every lisance request you need for this the right
'X-ErDRM-Message':
if this from other movie you not get the right keys
'X-ErDRM-Message': must be from same move get it
i have to lock how i can requset the right 'X-ErDRM-Message':
bud will try to undertand again if i am sure i will give the result here
not : yes i can confirm for each movie must be new token generate otherway you not get coreckt key..
thank for all help me to found out whats problemLast edited by senkron24; 29th Mar 2024 at 04:51.
Similar Threads
-
pssh help
By rominhos in forum Video Streaming DownloadingReplies: 14Last Post: 15th Nov 2023, 10:28 -
Different PSSH in mpd, EME logger and PSSH Box Generator
By Kevste in forum Video Streaming DownloadingReplies: 4Last Post: 31st May 2023, 22:24 -
How to get the PSSH?
By Anonymousdk01 in forum Video Streaming DownloadingReplies: 2Last Post: 28th Mar 2023, 10:06 -
get pssh
By tere1579 in forum Video Streaming DownloadingReplies: 6Last Post: 1st Dec 2022, 22:35 -
Which PSSH is the right one?
By Quint in forum Video Streaming DownloadingReplies: 5Last Post: 24th Oct 2022, 04:39