Yeah, it appears that the license server needs either headers or a payload of some sort.
Can you post the entire request?
+ Reply to Thread
Results 271 to 300 of 321
-
The link that I get for video: https://antenna-plus.live.ott.irdeto.com/licenseServer/widevine/v1/antenna-plus/licens...Krv9bTYXyl0ySw
Audio: https://antenna-plus.live.ott.irdeto.com/licenseServer/widevine/v1/antenna-plus/licens...Krv9bTYXyl0ySw
Using curlconverter for the first one:
import requests
headers = {
'authority': 'antenna-plus.live.ott.irdeto.com',
'accept': '*/*',
'accept-language': 'en-US,en;q=0.9',
'origin': 'https://watch.antennaplus.gr',
'referer': 'https://watch.antennaplus.gr/',
'sec-ch-ua': '"Chromium";v="116", "Not)A;Brand";v="24", "Google Chrome";v="116"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"Windows"',
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'cross-site',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
'content-type': 'application/x-www-form-urlencoded',
}
params = {
'contentId': 'antenna-plus-356-6418131',
'ls_session': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjVjN mQ2NzBmZGNjYmZkNjAyMjBjZTk2NGIxOGM1NTJmIn0.eyJpc3M iOiJzd2l0Y2gudHYiLCJpYXQiOjE2OTM0Mjk2NzYsImV4cCI6M TY5MzQ2NTY3NiwiYWlkIjoiYW50ZW5uYS1wbHVzIiwiYXVkIjo iYW50ZW5uYS1wbHVzIiwianRpIjoiMTU2MzA0YTAwNzg4ODk1Y TU1ZTY2ZmE5MjAwYjQ3YWMiLCJzdWIiOiJkYXlvcDI3MTg4QHd pZW1laS5jb20iLCJpc2UiOnRydWUsImVudCI6W3siZXBpZCI6I nN2b2QtZW50aXRsZW1lbnQtcG9saWN5IiwiYmlkIjoic3ZvZC1 idW5kbGUifV19.KeO3PPAgaj45HMgpT5crbpKWAiJ6gsiMZEw4 CKXOCKKmOoMZyjdKu3a-VIVhZL2wH4aICf8r-YST7EJS60YJEOH6XOdz1OuAuvbliAetK_MIH871B8KZPVq4SB5 q65XPVIAY3HMTrjBFgS7Q6m3CXom4iHCpQu9J0WG_UszUCJeL7 MdjXw1nfFbqhbzK89LgvUz_VMHQl9PVycy1L-3izBH9Kiq_ABob8pvP1N_Gbq55em0nCuyfOTLc2M0-8szmmCMq91YlJs0FnslZi4qiRBYa9jaePBCvgq-xIOHL-xfDms9yIOBkCZeHXjG4ZWfADee48qTeKrv9bTYXyl0ySw',
}
data = '\b\x04'
response = requests.post(
'https://antenna-plus.live.ott.irdeto.com/licenseServer/widevine/v1/antenna-plus/license',
params=params,
headers=headers,
data=data,
) -
Thank you Karoolus,
Did you need data plus params for the request?
I have some videos without the keys. Is there any way for me to get the keys? -
I have this video https://jfc.org.il/en/movie/57746-2/
The site doesn't require registration so you can easily verify my data by yourself.
its mdp (if needed): https://d2148dkxdf27z.cloudfront.net/media/Fp8Mo2cCRFOPo/cdc70b58/stream.mpd
PSSH: AAAAUnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADIiKnZkb2 NpcGhlcjoxYWZlYjEzY2E4MWE0NjY1YTA3MDdhZjc1ZTllN2Mx ZEjj3JWbBg==
(it was specified inside the mpd)
License URL : https://license.vdocipher.com/auth
The thing is this site uses advanced Widevine scheme:
2 requests to license server with headers + json
So I am trying to implement it in the python code of l3.py
1) The first request to license server has JSON:
{"token" : challenge }
in code it is: wvdecrypt.get_challenge()
1.2) then I get the response of license sever with JSON:
{"license" : response}
in code the response is assigned variable to wvdecrypt.get_challenge()
I'm now struggling with this step 2.1:
2.1) Then the second request to license has JSON:
{"token : some mix of the first token and additional information}
I don't know how to generate this token in 2.1
2.2) And as a response it receives JSON:
{"license" : final_response}
I also tried to use data from my browser. From it I took token from step 2.1 and sent it as a first request in the script. I got the same response as my browser gets from the second request (2.2) BUT it seems that it somehow checks that sessions are different.
Please, give me a hint on what I do wrong or how to generate the token in 2.1 based on the license response from 1.2
P.S: I have working CDM key, don't worry about itLast edited by moonloop; 1st Sep 2023 at 07:32. Reason: at first wrote the wrong code in 1.1
-
-
Hello guys
Can anyone help please
AAAAPHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABwIARIQ3s VWarugSr+jUGhyKEQW5iIGODAwMDIx
Thanks -
-
-
-
Thanks for your help. thanks to this forum I was able to download the video via N_m3u8DL-RE. I still haven't figured out how to remove the protection. can someone help me? Thank you
-
Hello all, first post here.,
Please help me download https://d210875061kd5q.cloudfront.net/transcoded/78kp8HgBYgu/video.mpd
Able to download using N_m3u8DL-RE but unable to decrypt as i am unable to find keys.
Please guide. -
nothing from caches, where did you get mpd from? URL?
Edit: you pm me link from class video
Code:https://instacourses.insightsonindia.com/KPSC-Pre-Cum-Mains-B10-Blr/topic/mains-answer-writing-session-4
look like you are seller, sorry will not fetch keys for youLast edited by iamghost; 18th Feb 2024 at 09:01.
-
Can someone please assist me? I am trying to download this stream
https://npo.nl/start/video/openingsconcert-ade-2023-tinlicker-metropole-orkest
https://npo-nl-ams-p24-am3.cdn.streamgate.nl/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJl...ism/stream.mpd
I tried youtube-dl:
youtube-dl.exe "https://npo-nl-ams-p24-am3.cdn.streamgate.nl/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3M TI0MDY4NDAsInVyaSI6Ilwvdm9kXC9ucG9cL3VzcFwvVEVTVFw vbnBvXC9kYXNoX2NlbmNcL1ZQV09OXzEzNTQyOTNcL1ZQV09OX zEzNTQyOTNfdjE2OTc4Mzc4NDQuaXNtIiwiY2xpZW50X2lwIjo iMTQ3LjIzNS4yMDguMTE3Iiwidmlld2VyIjoidmlld2VyIiwic mlkIjoiZDcyN2EwMyJ9.83LQBh5fV_Dftc1VcR9uzl6OQLWD4J PShH0aM6kWz7c/vod/npo/usp/TEST/npo/dash_cenc/VPWON_1354293/VPWON_1354293_v1697837844.ism/stream.mpd"
[generic] stream: Requesting header
WARNING: Falling back on generic information extractor.
[generic] stream: Downloading webpage
[generic] stream: Extracting information
ERROR: No video formats found; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type youtube-dl -U to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
>yt-dlp.exe -F --allow-u https://npo-nl-ams-p24-am3.cdn.streamgate.nl/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJl...ism/stream.mpd
WARNING: You have asked for UNPLAYABLE formats to be listed/downloaded. This is a developer option intended for debugging.
If you experience any issues while using this option, DO NOT open a bug report
[generic] Extracting URL: https://npo-nl-ams-p24-am3.cdn.streamgate.nl/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJl...ism/stream.mpd
[generic] stream: Downloading webpage
WARNING: [generic] Falling back on generic information extractor
[generic] stream: Extracting information
[info] Available formats for stream:
ID EXT RESOLUTION │ TBR PROTO │ VCODEC VBR ACODEC ABR ASR MORE INFO
────────────────────────────────────────────────── ────────────────────────────────────────────────── ────────
audio=128000 m4a audio only │ 128k dash │ audio only mp4a.40.2 128k 48k DRM, DASH audio, m4a_dash
video=584042 mp4 640x360 │ 584k dash │ avc1.42C01E 584k video only DRM, DASH video, mp4_dash
video=1429051 mp4 960x540 │ 1429k dash │ avc1.4D401F 1429k video only DRM, DASH video, mp4_dash
>yt-dlp.exe -f bestvideo+bestaudio --output "D:\TEMP/TEMP.MP4" "https://npo-nl-ams-p24-am3.cdn.streamgate.nl/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3M TI0MDY4NDAsInVyaSI6Ilwvdm9kXC9ucG9cL3VzcFwvVEVTVFw vbnBvXC9kYXNoX2NlbmNcL1ZQV09OXzEzNTQyOTNcL1ZQV09OX zEzNTQyOTNfdjE2OTc4Mzc4NDQuaXNtIiwiY2xpZW50X2lwIjo iMTQ3LjIzNS4yMDguMTE3Iiwidmlld2VyIjoidmlld2VyIiwic mlkIjoiZDcyN2EwMyJ9.83LQBh5fV_Dftc1VcR9uzl6OQLWD4J PShH0aM6kWz7c/vod/npo/usp/TEST/npo/dash_cenc/VPWON_1354293/VPWON_1354293_v1697837844.ism/stream.mpd"
[generic] Extracting URL: https://npo-nl-ams-p24-am3.cdn.streamgate.nl/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJl...ism/stream.mpd
[generic] stream: Downloading webpage
WARNING: [generic] Falling back on generic information extractor
[generic] stream: Extracting information
ERROR: [generic] stream: This video is DRM protected
Thank you!
Edit: I managed to download the encrypted version... now what?
>yt-dlp.exe --allow-unplayable-formats https://npo-nl-ams-p24-am3.cdn.streamgate.nl/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJl...ism/stream.mpd
WARNING: You have asked for UNPLAYABLE formats to be listed/downloaded. This is a developer option intended for debugging.
If you experience any issues while using this option, DO NOT open a bug report
[generic] Extracting URL: https://npo-nl-ams-p24-am3.cdn.streamgate.nl/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJl...ism/stream.mpd
[generic] stream: Downloading webpage
WARNING: [generic] Falling back on generic information extractor
[generic] stream: Extracting information
[info] stream: Downloading 1 format(s): video=1429051+audio=128000
WARNING: You have requested merging of multiple formats while also allowing unplayable formats to be downloaded. The formats won't be merged to prevent data corruption.
[dashsegments] Total fragments: 522
[download] Destination: stream [stream].fvideo=1429051.mp4
[download] 100% of 713.81MiB in 00:01:09 at 10.21MiB/s
[dashsegments] Total fragments: 523
[download] Destination: stream [stream].faudio=128000.m4a
[download] 100% of 65.92MiB in 00:00:52 at 1.25MiB/sLast edited by goveg; 5th Apr 2024 at 09:07.
-
"ERROR: [generic] stream: This video is DRM protected"
Have you ever used yt-dlp before or even read the man pages?
For DRM protected streams, use the --allow-u flag
yt-dlp --allow-u "MPD.url"
Code:yt-dlp --allow-u -F "https://npo-nl-ams-p24-am3.cdn.streamgate.nl/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3MTI0MTI1MjMsInVyaSI6Ilwvdm9kXC9ucG9cL3VzcFwvVEVTVFwvbnBvXC9kYXNoX2NlbmNcL1ZQV09OXzEzNTQyOTNcL1ZQV09OXzEzNTQyOTNfdjE2OTc4Mzc4NDQuaXNtIiwiY2xpZW50X2lwIjoiMTA5LjI1NS43MC42OSIsInZpZXdlciI6InZpZXdlciIsInJpZCI6IjYwODA1YTIifQ.OjfVMBl7zOUxODK_C8Zbfi5oOcy76cN4kniWTeU9uF4/vod/npo/usp/TEST/npo/dash_cenc/VPWON_1354293/VPWON_1354293_v1697837844.ism/stream.mpd" WARNING: You have asked for UNPLAYABLE formats to be listed/downloaded. This is a developer option intended for debugging. If you experience any issues while using this option, DO NOT open a bug report [generic] Extracting URL: https://npo-nl-ams-p24-am3.cdn.streamgate.nl/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3MTI...37844.ism/stream.mpd [generic] stream: Downloading webpage WARNING: [generic] Falling back on generic information extractor [generic] stream: Extracting information [info] Available formats for stream: ID EXT RESOLUTION │ TBR PROTO │ VCODEC VBR ACODEC ABR ASR MORE INFO ──────────────────────────────────────────────────────────────────────────────────────────────────────────── audio=128000 m4a audio only │ 128k dash │ audio only mp4a.40.2 128k 48k DRM, DASH audio, m4a_dash video=584042 mp4 640x360 │ 584k dash │ avc1.42C01E 584k video only DRM, DASH video, mp4_dash video=1429051 mp4 960x540 │ 1429k dash │ avc1.4D401F 1429k video only DRM, DASH video, mp4_dash
-
you need a key to decrypt your video
You now have a response to your comment...
https://forum.videohelp.com/threads/408031-Dumping-Your-own-L3-CDM-with-Android-Studio...19#post2730497
Code:127b46baa09cad53d58b80ba72e06976:fcf808dfbf300bd350b130b6e15221a1
Code:N_m3u8DL-RE --key 127b46baa09cad53d58b80ba72e06976:fcf808dfbf300bd350b130b6e15221a1 "https://npo-nl-ams-p24-am5.cdn.streamgate.nl/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3MTI0MTM1MDYsInVyaSI6Ilwvdm9kXC9ucG9cL3VzcFwvVEVTVFwvbnBvXC9kYXNoX2NlbmNcL1ZQV09OXzEzNTQyOTNcL1ZQV09OXzEzNTQyOTNfdjE2OTc4Mzc4NDQuaXNtIiwiY2xpZW50X2lwIjoiODIuMTI0LjEwNi4yMDUiLCJ2aWV3ZXIiOiJ2aWV3ZXIiLCJyaWQiOiI0YjE1YTkzIn0.llAGiQ2xE4jMtXwoxTzikHuv1Vo2uO5fLVi34TCj5OU/vod/npo/usp/TEST/npo/dash_cenc/VPWON_1354293/VPWON_1354293_v1697837844.ism/stream.mpd" -M format=mp4
your file
https://www.transfernow.net/dl/20240405PgG54Vrr -
-
-
it depends on the sites...some sites allows you to download 1080p or 720p...with L3 CDM
for your site I have only this...
[Attachment 78159 - Click to enlarge] -
-
-
CDM = Content Decryption Module: https://forum.videohelp.com/threads/404994-Decryption-and-the-Temple-of-Doom Basically it's the component that receives the decryption keys for a given video.
If you mean the Chrome extension, then no, it doesn't work anymore because the old ChromeCDM was deprecated. -
Thank you
I found a great article of the flow
https://bunny.net/academy/streaming/what-is-widevine-cdm-content-decryption-module/ -
Hi there
-- EDIT 14/04/2024 -- actually started a new thread
I need help understanding how to retrieve a drm decrypt key. (all URLs at the end)
If I should rather start a new thread, please let me know. Also note that I'm a total newb at this.
I've read threads about KID, PSSH, licence URL and so on, but for the life of me I can't figure out how to assemble these bricks for this particular source.
What I've done so far :
- found the MPD url and downloaded the manifest XML.
- Also downloaded the desired (encrypted) audio and video streams using yt-dlp.
These are already sitting on my disk now I want to decrypt these using mp4decrypt.
- didn't find any PSSH nor explicit licence url, so I just tried out some random things :
I went to cdrm-project.com and entered the url found at "keyUriTemplate" in the manifest XML (first one for audio, along with its kid param.) and some headers that I could make out, leaving the PSSH field blank.
Upon "Send" it returned :
Code:Cached PSSH PSSH: Time:Wed Jan 3 17:08:02 2024 b8d35746ec9e9f5c3ebfc5ec945ebf42:78531faef00ddfcf9dfe029812c9f40f
Any help would be appreciated. (I'd rather learn how to finalise this by myself than to just get the key, you know, the "teach how to fish..." spirit)
Video URL (public access) :
https://community.claris.com/en/s/engage/claris-engage-recordings?vtui__catalogId=a5NV...y0000000EB3MAM
MPD URL :
https://appiniummediacentralusa-usct.streaming.media.azure.net/02f4acb1-7193-422d-8d0f...ncryption=cbc)
Headers I used on cdrm-project :
Code:accept: "*/*" Accept-Language: "fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3" Accept-Encoding: "gzip, deflate, br" Origin: "https://community.claris.com" Connection: keep-alive Referer: "https://community.claris.com" Sec-Fetch-Dest: empty Sec-Fetch-Mode: cors Sec-Fetch-Site: cross-site
Last edited by StanP; 14th Apr 2024 at 05:30.
-
Of course it's a decryption key, you can decrypt your media using:
Code:mp4decrypt --key b8d35746ec9e9f5c3ebfc5ec945ebf42:78531faef00ddfcf9dfe029812c9f40f in.mp4 out.mp4
Just looked into your MPD manifest and i think you've encountered a rare occurence of AES-128 encryption using a DASH manifest file (.mpd), which doesn't make sense because i think AES-128 keys have a different format.
I tried around and wasn't able to decrypt it, might be worth to open up a new thread.Last edited by larley; 13th Apr 2024 at 14:57.
-
Yes because of course I tried using it as a decryption key exactly as you wrote it. Should have mentioned it, sorry.
But it results in a 0 bytes decrypted file with no error message whatsoever.
There's just a little satisfaction in the fact that I was not completely off the mark ��
Thanks for trying it out. -
I have an .mpd which uses
cencssh
Similar Threads
-
Download encrypted video via DRM protected MPD manifest
By Beta2k in forum Video Streaming DownloadingReplies: 19Last Post: 15th Jan 2024, 10:47 -
mpd protected with DRM?
By chisdchisdq in forum Video Streaming DownloadingReplies: 21Last Post: 24th Mar 2022, 22:14 -
How to download mpd stream (DRM protected)?
By bodasaud in forum Video Streaming DownloadingReplies: 5Last Post: 3rd Feb 2021, 07:41 -
Downloading mpd stream (DRM protected?)
By odyssey1234 in forum Video Streaming DownloadingReplies: 8Last Post: 14th Aug 2019, 21:26 -
Impossible Website: MPD / Fragmented Video / DRM Protected - Need Help!
By dynrte in forum Video Streaming DownloadingReplies: 1Last Post: 2nd Sep 2018, 23:03