Angela you can me help?
+ Reply to Thread
Results 91 to 120 of 127
-
Don't tell me .... er..? er.. You're working your way through college and if I just buy six tea-towels from you, you'll have enough to eat this week?
Or are you in fact a Prince from Nigeria who needs help getting money out of the country? And if I give you my bank details you'll wire me 12 Million US Dollars to bank for you - and in gratitude you'll let me keep 10%? Sure!Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
https://files.videohelp.com/u/301890/hellyes6.zip -
-
Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
https://files.videohelp.com/u/301890/hellyes6.zip -
Why don't developers still use blob keyfiles and wvd files?
pywidevine is quite troublesome if I install it - other scripts stop working for me -
--[----->+<]>.++++++++++++.---.--------.
[*drm mass downloader: widefrog*]~~~[*how to make your own mass downloader: guide*] -
I'm trying to get keys from here
Code:https://www.ertflix.gr/epg/channel/ept1-live
Code:https://ertflix.s.llnwi.net/ertlive/ert1/encdef/index.mpd
Code:https://ertflix.la.drm.cloud/acquire-license/widevine
Code:[EME] (CALL) MediaKeySession::generateRequest Session ID: (not available) Init Data Type: cenc Init Data: AAAAZ3Bzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAEcIARIQNw4LQqRoUpWMq+4a2w6T3BoFaW5zeXMiJDM3MGUwYjQyLWE0NjgtNTI5NS04Y2FiLWVlMWFkYjBlOTNkYyoCU0QyAAAAA2Bwc3NoAAAAAJoE8HmYQEKGq5LmW+CIX5UAAANAQAMAAAEAAQA2AzwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AUQBnAHMATwBOADIAaQBrAGwAVgBLAE0AcQArADQAYQAyAHcANgBUADMAQQA9AD0APAAvAEsASQBEAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBlAHIAdABmAGwAaQB4AC4AbABhAC4AZAByAG0ALgBjAGwAbwB1AGQALwBhAGMAcQB1AGkAcgBlAC0AbABpAGMAZQBuAHMAZQAvAHAAbABhAHkAcgBlAGEAZAB5AD8AYgByAGEAbgBkAEcAdQBpAGQAPQA2ADEAZgAwAGIAZQAwADMALQAwADMANgA1AC0ANABkAGYANgAtAGEAMwAwADYALQBhADUANQA2ADUANwAzAGQAMgBiAGEAMwA8AC8ATABBAF8AVQBSAEwAPgA8AEQAUwBfAEkARAA+AGUAZgBBAEUAbQBrAEMAWQBoAGsASwByAGsAdQBaAGIANABJAGgAZgBsAFEAPQA9ADwALwBEAFMAXwBJAEQAPgA8AEMASABFAEMASwBTAFUATQA+AGkAYgB3AEUAcwBKADcAQwBwAHcAbwA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==
https://cdm-project.com/How-To/Obtaining-PSSH
I get two "70737368" results and not sure which one is the correct one.
I modified the l3.py in this post a bit, it contains also the header data. CDM is my own from a real rooted phone and does work on a other simpler widevine sites with a plaintext PSSH in mpd. Any ideas?
Code:from pywidevine.cdm import Cdm from pywidevine.device import Device from pywidevine.pssh import PSSH import requests # # enter special header values here in the form 'token': ' value', each on one line - remember the quotes and the comma! headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; rv:127.0) Gecko/20100101 Firefox/127.0", "Accept": "*/*", "Accept-Language": "en-US,en;q=0.5", "Accept-Encoding": "gzip, deflate, br, zstd", "drmchallengecustomdata": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPExpY2Vuc2VSZXF1ZXN0Q3VzdG9tRGF0YSB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4KICA8VXNlclRva2VuPlpUNSs0aTFFSFNMWmt6SGppZ1E4ekxlclpXWGRUdVUzVS9KLzd3NTRUZk5EcEwweVBURllTWkJzeUpSS3ljUXdoY05YbDAxbzBmdXZZQ2drVGJuMWdId3JkN3NaSkZxd3ZLbDgvV2lZeWVDVGdVdE4rTzdyUU41L2VhWjRCQWU5cmdZczFtODJsTXloWmYrRURmaUQvYlVUcW05V0ZabjRvR2RqYU1QMURXaHJwTVFQUEthRWlyUHBaTFpwNWVSWmdJUVFTWVFERnIwYXZTS1IzMHlHR3NXUXZMbG5XRkNKZkg2cEdidEUzdWVzL1pSbmhwNVlNdjhjMlVTMUswZ0xobHI3bHN1OVpnSCsvbGdzTUdXb1JwMG5wb0ExWjJsYXlFc0Y0aUhXeCtHa2dJbE5nN3hTeCtBM2lRYllqRW1SRDdWeVNJM2E0OWhXeUd6YnEwdjZRaUFhcFZNTmpDV3krc0ZLUFQzTndYcWpUc012WDhyTGtlS2J6ZmpuYlM1NjwvVXNlclRva2VuPgogIDxCcmFuZEd1aWQ+NjFmMGJlMDMtMDM2NS00ZGY2LWEzMDYtYTU1NjU3M2QyYmEzPC9CcmFuZEd1aWQ+CiAgPERldmljZUtleT45ZWZkYjZjNDg0MGVmMmVhNDNkNjI0MjJjOGU5MGZlMzwvRGV2aWNlS2V5Pgo8L0xpY2Vuc2VSZXF1ZXN0Q3VzdG9tRGF0YT4=", "Origin": "https://www.ertflix.gr", "DNT": "1", "Sec-GPC": "1", "Connection": "keep-alive", "Sec-Fetch-Dest": "empty", "Sec-Fetch-Mode": "cors", "Sec-Fetch-Site": "cross-site", "Priority": "u=4", "TE": "trailers", "Content-Type": "application/x-www-form-urlencoded" } # prepare pssh # pssh = input("PSSH? ") # pssh = PSSH(pssh) pssh = PSSH("AAAAfoobar") lic_url = "https://ertflix.la.drm.cloud/acquire-license/widevine" # load device # for example #device = Device.load(r"/home/angela/Programming/WKS-KEYS/pywidevine/L3/cdm/devices/emulator_1/WVD/google_aosp_on_ia_emulator_14.0.0_xxxxxc_4464_l3.wvd") device = Device.load(r"mycdm.wvd") # load cdm cdm = Cdm.from_device(device) # open cdm session session_id = cdm.open() # get license challenge challenge = cdm.get_license_challenge(session_id, pssh) # send license challenge (assuming a generic license server SDK with no API front) licence = requests.post(lic_url, headers = headers, data=challenge) licence.raise_for_status() # parse license challenge cdm.parse_license(session_id, licence.content) # print keys for key in cdm.get_keys(session_id): if key.type=='CONTENT': print(f"\n--key {key.kid.hex}:{key.key.hex()}") # close session, disposes of session data cdm.close(session_id)
Last edited by Hackerpcs; 14th Jun 2024 at 07:58.
-
I'm getting 404 when I try to play this live.. Maybe geo restricted ? (Indeed geo restricted to grece)
Here is the widevine pssh :Code:AAAAY3Bzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAEMIARIQNw4LQqRoUpWMq+4a2w6T3BoFaW5zeXMiJDM3MGUwYjQyLWE0NjgtNTI5NS04Y2FiLWVlMWFkYjBlOTNkYzIA
-
Try this https://forum.videohelp.com/threads/407216-Decryption-The-Dungeon-of-Despair#post2669285 it gets everything. Edit for your CDM near the top. Although if you get a 404 in a browser nothing can work. Use a VPN.
Edit: er, hang on. 404 means not found - have you the correct link?Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
https://files.videohelp.com/u/301890/hellyes6.zip -
I tried with : https://www.ertflix.gr/epg/audition/prg.421914-ept1-live-3961309
mpd :Code:https://ertflix.s.llnwi.net/ertlive/ert1/encdef/index.mpd
Code:AAAAMnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABISEDcOC0KkaFKVjKvuGtsOk9w=
HTML Code:from pywidevine.cdm import Cdm from pywidevine.device import Device from pywidevine.pssh import PSSH import requests from uuid import UUID CUSTOMDATA = '' headers = { 'accept': '*/*', 'accept-language': 'fr-FR,fr;q=0.9', 'cache-control': 'no-cache', 'drmchallengecustomdata': CUSTOMDATA, 'origin': 'https://www.ertflix.gr', 'pragma': 'no-cache', 'priority': 'u=1, i', 'referer': 'https://www.ertflix.gr/', 'sec-ch-ua': '"Brave";v="125", "Chromium";v="125", "Not.A/Brand";v="24"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': '"macOS"', 'sec-fetch-dest': 'empty', 'sec-fetch-mode': 'cors', 'sec-fetch-site': 'cross-site', 'sec-gpc': '1', 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', } pssh = input('pssh: ') pssh = PSSH(pssh) lic_url = 'https://ertflix.la.drm.cloud/acquire-license/widevine' device = Device.load(r"/Users/noham/Documents/GitHub/DRM-remover/TOOLS/WVD/xiaomi_redmi_5_plus_v5.1.0-android_701ec55d_4445_l3.wvd") cdm = Cdm.from_device(device) session_id = cdm.open() challenge = cdm.get_license_challenge(session_id, pssh) licence = requests.post(lic_url, headers = headers, data=challenge) licence.raise_for_status() cdm.parse_license(session_id, licence.content) for key in cdm.get_keys(session_id): if key.type=='CONTENT': print(f"\n--key {key.kid.hex}:{key.key.hex()}") cdm.close(session_id)
Code:370e0b42a46852958cabee1adb0e93dc:658649140edf4e1063887d588d2c46c4
-
-
Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
https://files.videohelp.com/u/301890/hellyes6.zip -
This worked wonders, great work!
The code is a bit hard to read and I would like to modify it: I have a shell script that runs downey (that can't get keys from KID) to get keys from a simple MPD with plaintext PSSH (I extract it with sed etc from the MPD and feed it to downey with --pssh), would it be possible to modify the script to make it shell script friendly? Avoid the interface and take two arguments (not input, just arguments when the python file runs), mpd and curl and just print the key, similar to how downey works. I ask for this because after the key I download with n-m3u8dl-re and make some other actions with mkvmerge I want on my script afterwardsLast edited by Hackerpcs; 14th Jun 2024 at 08:27.
-
Unfortunately I don't do requests but I do encourage you to adapt the script yourself. That post is a python script and is shell friendly. You can add an arg parser easily if you want. But beware if it involves pasting a cURL as an agument it won't work. There can be characters in cURL which corrupt the display and play havoc with the terminal.
Note there a halt at the end before download precisely for you to take the base N_m3u8DL-RE command (with keys already found) and do what you wish with mkvmerge or load subtitles from file or knit socks or whatever else.
I think that copes with most use-cases.
I'm glad you find it useful. Good luck.Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
https://files.videohelp.com/u/301890/hellyes6.zip -
The script I posted here is smaller and works fine. https://forum.videohelp.com/threads/411862-Beyond-WKS-KEYS/page4#post2739490
-
Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
https://files.videohelp.com/u/301890/hellyes6.zip -
As I'm seeing it's the same script from the first post and the same I've used that didn't work, what changed are the headers (same drm custom data on both) which mine are wrong and produce http 400 bad request.
My question is how did you obtain the PSSH here considering the big "Init Data" response of EME logger
and also how does hell3.py obtain a different PSSH, yet both result in the same correct key
MPD URL? https://ertflix.s.llnwi.net/ertlive/ert1/encdef/index.mpd
Found default_KID using regex: 370E0B42-A468-5295-8CAB-EE1ADB0E93DC
Extracted or generated PSSH: AAAAOHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABgSEDcOC0 KkaFKVjKvuGtsOk9xI49yVmwY=Last edited by Hackerpcs; 14th Jun 2024 at 11:04.
-
That is often the case with pssh generation. Proof of the pudding... is that hell3.py always seems to work. Mainly CDNs just check for the Kid in the pssh. So everything passes. If a CDN gets picky and tries to make sure it is its own issued pssh, some generators, producing a short version, will fail.
I was using this for pssh generation and it is common.
Code:elif default_kid is not None: # Generate pssh from default_kid default_kid = default_kid.replace('-', '') default_kid_bytes = binascii.unhexlify(default_kid) # Widevine PSSH box structure pssh_data = b'\x00\x00\x00\x00' # Size placeholder pssh_data += b'\x70\x73\x73\x68' # 'pssh' box type pssh_data += b'\x00\x00\x00\x00' # Version and flags pssh_data += binascii.unhexlify(WIDEVINE_SYSTEM_ID.replace('-', '')) # Widevine system ID pssh_data += b'\x00\x00\x00\x01' # KID count pssh_data += default_kid_bytes # default_KID pssh_data += b'\x00\x00\x00\x00' # Size of Data (0 for KID-only PSSH) # Update size pssh_size = len(pssh_data) pssh_data = pssh_size.to_bytes(4, byteorder='big') + pssh_data[4:] pssh_base64 = base64.b64encode(pssh_data).decode('utf-8') return pssh_base64
Last edited by A_n_g_e_l_a; 14th Jun 2024 at 12:22.
Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
https://files.videohelp.com/u/301890/hellyes6.zip -
I had a think about this. If you save the cURL as a file you could put the filepath as a argument along with mpd. That might do it. If it is beyond your skill level, try chatgpt; provide my script and ask it to refactor to take command line arguments; one mpd and one file location to be read for cURl, and the save-name I suppose.
Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
https://files.videohelp.com/u/301890/hellyes6.zip -
--[----->+<]>.++++++++++++.---.--------.
[*drm mass downloader: widefrog*]~~~[*how to make your own mass downloader: guide*] -
Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
https://files.videohelp.com/u/301890/hellyes6.zip -
Understood. Makes sense. Thanks for clarifications. I read your hell3 code and it's quite neat. I do have one question though. Not trying to be picky or anything. Wouldn't it be better if you used the generator as a last alternative? As you said:
So I assume that if you ever find a pssh in its mpd or init, then its guaranteed to work. While the generated one doesn't offer 100% success rate. Or am I missing something?As you mentioned, in the current state the generated pssh has priority over the init.
Last edited by 2nHxWW6GkN1l916N3ayz8HQoi; 14th Jun 2024 at 16:05.
--[----->+<]>.++++++++++++.---.--------.
[*drm mass downloader: widefrog*]~~~[*how to make your own mass downloader: guide*] -
Exactly that. I choose to have the lowest time overhead methods selected before having to do another httpx.get for an init.m4f. Why wouldn't i?
Says you; other generators maybe. No faults found anywhere in testing. Everyone returned keys. See https://forum.videohelp.com/threads/411884-UK-Free-to-Air-Downloader/page11#post2739239Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
https://files.videohelp.com/u/301890/hellyes6.zip -
Oh yeah. Forgot about the performance. Now it all makes sense about the solutions priority.
--[----->+<]>.++++++++++++.---.--------.
[*drm mass downloader: widefrog*]~~~[*how to make your own mass downloader: guide*] -
I found the culprit, "Content-Type" header causes the license server to return http 400, if it isn't given it works. So to make the script from the first post work and print the keys:
- get mpd URL by "mpd" filter
- get license server URL by "license" or "widevine" filter and copy the URL to l3keys.py (meaning the one on the first post)
- copy license server requst as curl (POSIX or Win depending on the environment)
- convert curl headers to JSON with https://curlconverter.com/json/ and paste to l3keys.py
- REMOVE this header: "Content-Type": "application/x-www-form-urlencoded"
- get PSSH by copying "default_KID" from mpd file to https://emarsden.github.io/pssh-box-wasm/generate/ and copy it to l3keys.py
Easier is to just use hell3.py but I wanted to know a bit about the procedureLast edited by Hackerpcs; 15th Jun 2024 at 02:09.
-
Don't forget there is a debug l3.py https://forum.videohelp.com/threads/414835-Pywidevine-l3-py-Two-versions-for-debugging...ps#post2738357.
Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
https://files.videohelp.com/u/301890/hellyes6.zip -
I don't know how to solve this error, I update the website and enter the data again but I have no success with the keys-
pssh:AAAAOHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABgSE FOY1JvHi0oCrcDnUb2uysdI49yVmwY=
[Attachment 80542 - Click to enlarge]Last edited by aletaladro; 9th Jul 2024 at 19:14.
-
HTML Code:
data = requests.get('https://cntplay.com/RTEFacade/GetLivePlayingInfo', headers=headers, params=params).json() token = data['response']['casToken'] [.......................] licence = requests.post(lic_url, data=challenge, params=(('drmLicenseToken', token),))
Code:3051f039ff18414281aecf3611dfe046:de71270afefb72f7d2373efac359d24b 07192b9a1b844a2c8698154ee426f62f:60653a89b9cd13f2b7134833f7bcc508
-
Now mistake, what am I doing wrong?
Last edited by aletaladro; 9th Jul 2024 at 14:59.
Similar Threads
-
wks-keys giving out wrong keys
By swappyison in forum Video Streaming DownloadingReplies: 21Last Post: 6th Aug 2023, 13:03 -
wks-keys or TPD-Keys cmd.exe errors
By euphonic in forum Video Streaming DownloadingReplies: 1Last Post: 25th Jun 2023, 15:24 -
WKS-KEYS help
By Gruchemuche in forum Video Streaming DownloadingReplies: 1Last Post: 2nd Oct 2022, 09:55 -
need help with wks-keys
By ahmedani in forum Video Streaming DownloadingReplies: 1Last Post: 20th Jul 2022, 04:15 -
Wks-keys
By Fjullekulle in forum Video Streaming DownloadingReplies: 10Last Post: 12th Jul 2022, 05:01