medvm / widevine_keys

This repo created for bypassing Widevine L3 DRM and obtaining keys.
462 stars 186 forks source link

Peacock get PSSH failed #2

Open PuMa2006 opened 2 years ago

PuMa2006 commented 2 years ago

With Peacock l3.py simply can't even get pssh from mpd

Input MPD URL: https://e0e005bd81f241e9b59d2fbf8addde0f.mediatailor.us-west-2.am azonaws.com/v1/dash/6f3f45fea6332a47667932dede90d20a96f2690c/peacock-cmaf-dash-v od-2s-021821/pub/global/iS4/968/PCK_1637605188890.8127_01/cmaf/mpeg_cenc_2sec/ma ster_cmaf.mpd?aws.sessionId=a8bfc3db-3d20-40e9-8385-6fc0349e0600&c3.ri=125194738 12177933808 License URL: https://ovp.peacocktv.com/drm/widevine/ Traceback (most recent call last): File "C:\Users\Helen\Documents\widevine_keys-main\l3.py", line 24, in

pssh = get_pssh(MDP_URL)

File "C:\Users\Helen\Documents\widevinekeys-main\getPSSH.py", line 8, in get pssh tracks = mpd['MPD']['Period']['AdaptationSet'] TypeError: list indices must be integers or slices, not str

PuMa2006 commented 2 years ago

Enough of these stupid child pywidevine based tools. We need Chrome CDM and extension. We need another Satsuoni, another Tommer. Ain't nobody got time to bother with Headers and License URL and PSSH and Python scripts and EME Logger and JSON.DUMPS and shit...

yeah, you just stupid and like monkey needed two button program, so it's not for you, just go f-off

medvm commented 2 years ago

fixed

huliad2022 commented 2 years ago

Enough of these stupid child pywidevine based tools. We need Chrome CDM and extension. We need another Satsuoni, another Tommer. Ain't nobody got time to bother with Headers and License URL and PSSH and Python scripts and EME Logger and JSON.DUMPS and shit...

Why don't you do it yourself? You'll just be there barking like a dog, you look so pathetic that's all

RedPenguin2 commented 2 years ago

I must be missing something in the headers of Peacock because when I try it, I get either Response 403 or Response 400 but no actual keys.

I also tried the license URL with and without "bt=" and still no go.

PuMa2006 commented 2 years ago

I must be missing something in the headers of Peacock because when I try it, I get either Response 403 or Response 400 but no actual keys.

I also tried the license URL with and without "bt=" and still no go.

403 it's cause you need US IP to get the keys or refer to license server

400 -- yes, cause looks like Peacock need additional json params

medvm commented 2 years ago

I must be missing something in the headers of Peacock because when I try it, I get either Response 403 or Response 400 but no actual keys.

I also tried the license URL with and without "bt=" and still no go.

copy correct request as curl, text here

PuMa2006 commented 2 years ago

I must be missing something in the headers of Peacock because when I try it, I get either Response 403 or Response 400 but no actual keys. I also tried the license URL with and without "bt=" and still no go.

copy correct request as curl, text here

here you go:

https://ff877e3318004defa8d187b671d96811.mediatailor.us-east-1.amazonaws.com/v1/dash/6f3f45fea6332a47667932dede90d20a96f2690c/peacock-cmaf-dash-vod-2s-021821/pub/global/iS4/968/PCK_1637605188890.8127_01/cmaf/mpeg_cenc_2sec/master_cmaf.mpd?aws.sessionId=a5390272-d079-40a1-8678-2a2624e272f0&c3.ri=3778550010247784911

mpd

headers (curl to py)

https://ghostbin.com/snMUq

Looks like that peacock, like kinopoisk and many others site needs some token to be applied to get keys

medvm commented 2 years ago

With the token, everything is fine here, just the license request should be sent not in base64, but in binary form.

zxx511 commented 2 years ago

Some mpd don't have pssh How do I get it Any Help

RedPenguin2 commented 2 years ago

I must be missing something in the headers of Peacock because when I try it, I get either Response 403 or Response 400 but no actual keys. I also tried the license URL with and without "bt=" and still no go.

403 it's cause you need US IP to get the keys or refer to license server

400 -- yes, cause looks like Peacock need additional json params

I have a US IP.

I have extremely similar headers to the poster above, so I guess I need to figure out how to send as binary form.

medvm commented 2 years ago

It is not a problem to send a license request in binary form, but your site requires not only it, but also some additional information and also in binary form. First you need to figure out what kind of data it is. explanation

RedPenguin2 commented 2 years ago

It is not a problem to send a license request in binary form, but your site requires not only it, but also some additional information and also in binary form. First you need to figure out what kind of data it is. explanation

Thanks for the info. I will keep giving it a try.

I can sense I am getting closer and closer to pay dirt, but I am just not there quite yet.

medvm commented 2 years ago

I must be missing something in the headers of Peacock because when I try it, I get either Response 403 or Response 400 but no actual keys. I also tried the license URL with and without "bt=" and still no go.

copy correct request as curl, text here

here you go:

https://ff877e3318004defa8d187b671d96811.mediatailor.us-east-1.amazonaws.com/v1/dash/6f3f45fea6332a47667932dede90d20a96f2690c/peacock-cmaf-dash-vod-2s-021821/pub/global/iS4/968/PCK_1637605188890.8127_01/cmaf/mpeg_cenc_2sec/master_cmaf.mpd?aws.sessionId=a5390272-d079-40a1-8678-2a2624e272f0&c3.ri=3778550010247784911

mpd

headers (curl to py)

https://ghostbin.com/snMUq

Looks like that peacock, like kinopoisk and many others site needs some token to be applied to get keys

А как вы на peacock заходите? У меня через британский vpn показывает заглушку р недоступности. Мне для теста нужна живая лицензия

PuMa2006 commented 2 years ago

Так сервис-то американский :) Через него и захожу

medvm commented 2 years ago

Там x-sky-signature поле в заголовке генерируется динамически для каждого запроса, причем запрос, возвращающий сигнатуру я не нашел. image

RedPenguin2 commented 2 years ago

I was told sky.js is what generates the signature if that helps.

medvm commented 2 years ago

I was told sky.js is what generates the signature if that helps.

I'll try, it's just not very convenient to test through VPN

medvm commented 2 years ago

https://forum.kodi.tv/showthread.php?tid=355867 it looks like getting keys from this service will be quite difficult

RedPenguin2 commented 2 years ago

https://forum.kodi.tv/showthread.php?tid=355867 it looks like getting keys from this service will be quite difficult

I've seen around it done by a few people. (They wouldn't share their method 100% though).

I also found https://github.com/T3rry7f/NoDRM/issues/9

I do know the trick is in the Javascript.

I've heard personas and user-token along with x-sky-signature and x-sky-usertoken.

There main trick I'm told is that there are hmac signatures that's really the main issue.

I wish I had more info, but this is all that I gathered so far.

I have spent time looking in Web Console but I am new to hmac type stuff.

Randomcoolguy123 commented 2 years ago

With Peacock l3.py simply can't even get pssh from mpd

Input MPD URL: https://e0e005bd81f241e9b59d2fbf8addde0f.mediatailor.us-west-2.am azonaws.com/v1/dash/6f3f45fea6332a47667932dede90d20a96f2690c/peacock-cmaf-dash-v od-2s-021821/pub/global/iS4/968/PCK_1637605188890.8127_01/cmaf/mpeg_cenc_2sec/ma ster_cmaf.mpd?aws.sessionId=a8bfc3db-3d20-40e9-8385-6fc0349e0600&c3.ri=125194738 12177933808 License URL: https://ovp.peacocktv.com/drm/widevine/ Traceback (most recent call last): File "C:\Users\Helen\Documents\widevine_keys-main\l3.py", line 24, in

pssh = get_pssh(MDP_URL)

File "C:\Users\Helen\Documents\widevinekeys-main\getPSSH.py", line 8, in get pssh tracks = mpd['MPD']['Period']['AdaptationSet'] TypeError: list indices must be integers or slices, not str

I have managed to get PSSH for Peacock. But it couldn't grab the keys.

Traceback (most recent call last): File "/content/widevine_keys/l3.py", line 130, in correct, keys = WV_Function(pssh, lic_url) File "/content/widevine_keys/l3.py", line 52, in WV_Function data=f'token={headers.token}&provider={headers.provider}&payload={str(request, "utf-8" )}' AttributeError: module 'headers' has no attribute 'token'

I copied the curl command into the header.py after converting it into python but it's asking for some token! Can anyone help?

RedPenguin2 commented 2 years ago

With Peacock l3.py simply can't even get pssh from mpd Input MPD URL: https://e0e005bd81f241e9b59d2fbf8addde0f.mediatailor.us-west-2.am azonaws.com/v1/dash/6f3f45fea6332a47667932dede90d20a96f2690c/peacock-cmaf-dash-v od-2s-021821/pub/global/iS4/968/PCK_1637605188890.8127_01/cmaf/mpeg_cenc_2sec/ma ster_cmaf.mpd?aws.sessionId=a8bfc3db-3d20-40e9-8385-6fc0349e0600&c3.ri=125194738 12177933808 License URL: https://ovp.peacocktv.com/drm/widevine/ Traceback (most recent call last): File "C:\Users\Helen\Documents\widevine_keys-main\l3.py", line 24, in

pssh = get_pssh(MDP_URL)

File "C:\Users\Helen\Documents\widevinekeys-main\getPSSH.py", line 8, in get pssh tracks = mpd['MPD']['Period']['AdaptationSet'] TypeError: list indices must be integers or slices, not str

I have managed to get PSSH for Peacock. But it couldn't grab the keys.

Traceback (most recent call last): File "/content/widevine_keys/l3.py", line 130, in correct, keys = WV_Function(pssh, lic_url) File "/content/widevine_keys/l3.py", line 52, in WV_Function data=f'token={headers.token}&provider={headers.provider}&payload={str(request, "utf-8" )}' AttributeError: module 'headers' has no attribute 'token'

I copied the curl command into the header.py after converting it into python but it's asking for some token! Can anyone help?

You can try putting token = '' (blank) to get it to go past that. You might run in to further issues down the road though. I have only gotten so far, myself.

anonyymous2021 commented 2 years ago

With Peacock l3.py simply can't even get pssh from mpd Input MPD URL: https://e0e005bd81f241e9b59d2fbf8addde0f.mediatailor.us-west-2.am azonaws.com/v1/dash/6f3f45fea6332a47667932dede90d20a96f2690c/peacock-cmaf-dash-v od-2s-021821/pub/global/iS4/968/PCK_1637605188890.8127_01/cmaf/mpeg_cenc_2sec/ma ster_cmaf.mpd?aws.sessionId=a8bfc3db-3d20-40e9-8385-6fc0349e0600&c3.ri=125194738 12177933808 License URL: https://ovp.peacocktv.com/drm/widevine/ Traceback (most recent call last): File "C:\Users\Helen\Documents\widevine_keys-main\l3.py", line 24, in

pssh = get_pssh(MDP_URL)

File "C:\Users\Helen\Documents\widevinekeys-main\getPSSH.py", line 8, in get pssh tracks = mpd['MPD']['Period']['AdaptationSet'] TypeError: list indices must be integers or slices, not str

I have managed to get PSSH for Peacock. But it couldn't grab the keys.

Traceback (most recent call last): File "/content/widevine_keys/l3.py", line 130, in correct, keys = WV_Function(pssh, lic_url) File "/content/widevine_keys/l3.py", line 52, in WV_Function data=f'token={headers.token}&provider={headers.provider}&payload={str(request, "utf-8" )}' AttributeError: module 'headers' has no attribute 'token'

I copied the curl command into the header.py after converting it into python but it's asking for some token! Can anyone help?

The same happens to me :(