Satsuoni / widevine-l3-guesser

MIT License
853 stars 368 forks source link

True hero #1

Closed EnthusiastAnon closed 3 years ago

EnthusiastAnon commented 3 years ago

You, Satsuoni sir, are a true hero! How can we donate? You did an INCREDIBLE JOB, I just can't believe this. Please keep up the good work!

georgysaumen commented 3 years ago

@phanluchoaofficial20 The codec vp09 gives a good picture quality with lower size but it could use more CPU resources. And the picture is not smooth because the bit rate is low.

Can you send me any paid script resoucre page to download H264 or H265 codec ? I will see and buy to download video with that codec ?

EnthusiastAnon commented 3 years ago

Does VP09 codec has good picture quality ? As I see, first the file size is so small and when I open video I see picture is not smooth!

oh dear God, the bitrate od the audio is higher than the video xDD

xhlove commented 3 years ago

Satsuoni, can you make it work with Shaka?

To those one who want to make widevine-l3-guesser work with Shaka

Just add a conditional breakpoiont at session.update, call WidevineCrypto.decryptContentKey with license request and response body, then it will work smoothly.

e.g. https://shaka-player-demo.appspot.com/demo

oCam_2021_08_06_11_50_26_563

breakpoiont conditional is

this.injectFlag ? this.injectFlag=true : Object.defineProperty(this,"injectFlag",{get:()=>true}),WidevineCrypto.decryptContentKey(request.body, new Uint8Array(response.data)),false
Satsuoni commented 3 years ago

Satsuoni, can you make it work with Shaka?

To those one who want to make widevine-l3-guesser work with Shaka

Just add a conditional breakpoiont at session.update, call WidevineCrypto.decryptContentKey with license request and response body, then it will work smoothly.

e.g. https://shaka-player-demo.appspot.com/demo

oCam_2021_08_06_11_50_26_563

breakpoiont conditional is

this.injectFlag ? this.injectFlag=true : Object.defineProperty(this,"injectFlag",{get:()=>true}),WidevineCrypto.decryptContentKey(request.body, new Uint8Array(response.data)),false

The extension worked on http://shaka-player-demo.appspot.com/ last time I checked? Whether or not it works on all Shaka, no idea. I added hooks several days ago. Or do manual hooks as xhlove suggests

xhlove commented 3 years ago

sorry.... I haven't noticed that. Thank you working!

Satsuoni commented 3 years ago

I am going to yeet the master branch variant and just keep background variant of extension. If anyone wants previous versions, commits are there :P

rmros commented 3 years ago

@Satsuoni i need whitebox source code

Satsuoni commented 3 years ago

@Satsuoni i need whitebox source code

What do you think codelift is?

rmros commented 3 years ago

@Satsuoni i need whitebox source code

What do you think codelift is?

Hi, I was looking for a solution to hide the key on the client side from the user or customer,For example, in Android or iOS applications

As I understand there is whitebox cryptography, but I can't find any secure method for that , most of them are broken,

Satsuoni commented 3 years ago

Hi, I was looking for a solution to hide the key on the client side from the user or customer,For example, in Android or iOS applications

As I understand there is whitebox cryptography, but I can't find any secure method for that , most of them are broken,

Hardware is the only (mostly) secure method. Otherwise, whitebox can always be codelifted whole (as in this repo). Also, please note, that from README:

It is my honest opinion that DRM is a malignant tumor growing upon various forms of media, and that people that either implement or enforce implementation are morally repugnant and do no good to society.

So in general, I find the idea of hiding keys on user's device that user cannot access as abhorrent as feeding them random drugs without their knowledge <_<

MG577 commented 3 years ago

But now as example, the movie Fast And Furious Hoobs And Shaws On NF as I see on app they set HD quality, but when use tool netflix 1080p tool and I see they just 960x540 quality

I have downloaded Star Trek (2009) from NF and I am getting 1080p AVC High and DD+ audio .. also decrypted

Format : AVC Format/Info : Advanced Video Codec Format profile : High@L4 Format settings : CABAC / 4 Ref Frames Format settings, CABAC : Yes Format settings, ReFrames : 4 frames Codec ID : V_MPEG4/ISO/AVC Duration : 2 h 7 min Bit rate mode : Variable Bit rate : 3 043 kb/s Maximum bit rate : 20.0 Mb/s Width : 1 920 pixels Height : 1 080 pixels

Format : E-AC-3 Format/Info : Enhanced Audio Coding 3 Codec ID : A_EAC3 Duration : 2 h 7 min Bit rate mode : Constant Bit rate : 640 kb/s Channel(s) : 6 channels Channel positions : Front: L C R, Side: L R, LFE Sampling rate : 48.0 kHz Frame rate : 187.500 FPS (256 SPF) Compression mode : Lossy Stream size : 586 MiB (15%) Language : English Service kind : Complete Main Default : No Forced : No

Essam23 commented 3 years ago

@Satsuoni The master branch now not working on Firefox for me, It gives no keys with Netflix and Amazon Prime Video. It works with Chrome, and the older version of widevine-l3-guesser still working on Firefox.

Satsuoni commented 3 years ago

@Satsuoni The master branch now not working on Firefox for me, It gives no keys with Netflix and Amazon Prime Video. It works with Chrome, and the older version of widevine-l3-guesser still working on Firefox.

It is a Chrome extension... I don't know if Firefox even uses background page. Please use previous version if this one does not work. Background page was used to bypass CORS restrictions on WASM. (And my Firefox does not seem to support wasm at all, so I cannot really check. It is a bit old.)

@Essam3152 That said, could you check if the events that I use to transfer data back and forth actually work as expected? Like, what happens if you just try to run WidevineCrypto.tryUsingDecoder("randomstring")?

TiRajo commented 3 years ago

@Satsuoni The master branch now not working on Firefox for me, It gives no keys with Netflix and Amazon Prime Video. It works with Chrome, and the older version of widevine-l3-guesser still working on Firefox.

https://github.com/Satsuoni/widevine-l3-guesser/files/6913700/widevine_guesser-1.0.4-fx.zip this works good still!

Essam23 commented 3 years ago

@Satsuoni Sorry I do not know how to run WidevineCrypto.tryUsingDecoder on Firefox, here is what I'm getting with Netflix in the console.


Some cookies are misusing the recommended “SameSite“ attribute 53
Layout was forced before the page was fully loaded. If stylesheets are not yet loaded this may cause a flash of unstyled content. contentInject.js:5251:17
downloadable font: font-display timeout, webfont not used (font-family: "Netflix Sans" style:normal weight:400 stretch:100 src index:0) source: https://assets.nflxext.com/ffe/siteui/fonts/netflix-sans/v3/NetflixSans_W_Rg.woff2
downloadable font: font-display timeout, webfont not used (font-family: "Netflix Sans" style:normal weight:700 stretch:100 src index:0) source: https://assets.nflxext.com/ffe/siteui/fonts/netflix-sans/v3/NetflixSans_W_Md.woff2
RequestMediaKeySystemAccessCall eme_interception.js:28:13
Array [ "com.widevine.alpha", (2) […] ]
eme_interception.js:29:13
Navigator { requestMediaKeySystemAccess: (), listenersAdded_: true, permissions: Permissions, mimeTypes: MimeTypeArray, plugins: PluginArray, doNotTrack: "unspecified", maxTouchPoints: 0, mediaCapabilities: MediaCapabilities, oscpu: "Windows NT 6.1; Win64; x64", vendor: "" }
eme_interception.js:30:13
downloadable font: font-display timeout, webfont not used (font-family: "Netflix Sans" style:normal weight:700 stretch:100 src index:0) source: https://assets.nflxext.com/ffe/siteui/fonts/netflix-sans/v3/NetflixSans_W_Md.woff2
downloadable font: font-display timeout, webfont not used (font-family: "Netflix Sans" style:normal weight:400 stretch:100 src index:0) source: https://assets.nflxext.com/ffe/siteui/fonts/netflix-sans/v3/NetflixSans_W_Rg.woff2
An unbalanced tree was written using document.write() causing data from the network to be reparsed. For more information https://developer.mozilla.org/en/Optimizing_Your_Pages_for_Speculative_Parsing adtech_iframe_target_05.html:88
The character encoding of a framed document was not declared. The document may appear different if viewed without the document framing it. netflix_tag_05.html
RequestMediaKeySystemAccessCall eme_interception.js:28:13
Array [ "com.widevine.alpha", (1) […] ]
eme_interception.js:29:13
Navigator { requestMediaKeySystemAccess: (), listenersAdded_: true, permissions: Permissions, mimeTypes: MimeTypeArray, plugins: PluginArray, doNotTrack: "unspecified", maxTouchPoints: 0, mediaCapabilities: MediaCapabilities, oscpu: "Windows NT 6.1; Win64; x64", vendor: "" }
eme_interception.js:30:13
GetConfigurationCall eme_interception.js:28:13
Array []
eme_interception.js:29:13
MediaKeySystemAccess { originalGetConfiguration: getConfiguration(), getConfiguration: extendEmeMethod()
, createMediaKeys: (), listenersAdded_: true, keySystem: "com.widevine.alpha" }
eme_interception.js:30:13
CreateMediaKeysCall eme_interception.js:28:13
Array []
eme_interception.js:29:13
MediaKeySystemAccess { originalGetConfiguration: getConfiguration(), getConfiguration: extendEmeMethod()
, createMediaKeys: (), listenersAdded_: true, keySystem: "com.widevine.alpha" }
eme_interception.js:30:13
CreateMediaKeysCall eme_interception.js:28:13
Array []
eme_interception.js:29:13
MediaKeySystemAccess { originalGetConfiguration: getConfiguration(), getConfiguration: extendEmeMethod()
, createMediaKeys: (), listenersAdded_: true, keySystem: "com.widevine.alpha" }
eme_interception.js:30:13
SetServerCertificateCall eme_interception.js:28:13
Array [ Uint8Array(707) ]
eme_interception.js:29:13
MediaKeys { keySystem_: "com.widevine.alpha", createSession: (), setServerCertificate: extendEmeMethod()
, listenersAdded_: true, keySystem: "com.widevine.alpha" }
eme_interception.js:30:13
SetServerCertificateCall eme_interception.js:28:13
Array [ Uint8Array(707) ]
eme_interception.js:29:13
MediaKeys { keySystem_: "com.widevine.alpha", createSession: (), setServerCertificate: extendEmeMethod()
, listenersAdded_: true, keySystem: "com.widevine.alpha" }
eme_interception.js:30:13
CreateSessionCall eme_interception.js:28:13
Array [ "temporary" ]
eme_interception.js:29:13
MediaKeys { keySystem_: "com.widevine.alpha", createSession: (), setServerCertificate: extendEmeMethod()
, listenersAdded_: true, keySystem: "com.widevine.alpha" }
eme_interception.js:30:13
CreateSessionCall eme_interception.js:28:13
Array [ "temporary" ]
eme_interception.js:29:13
MediaKeys { keySystem_: "com.widevine.alpha", createSession: (), setServerCertificate: extendEmeMethod()
, listenersAdded_: true, keySystem: "com.widevine.alpha" }
eme_interception.js:30:13
GenerateRequestCall eme_interception.js:28:13
Array [ "cenc", Uint8Array(52) ]
eme_interception.js:29:13
MediaKeySession { keySystem_: "com.widevine.alpha", generateRequest: extendEmeMethod(), load: extendEmeMethod(), update: extendEmeMethod(), close: extendEmeMethod(), remove: extendEmeMethod()
, listenersAdded_: true, error: null, sessionId: "", expiration: NaN }
eme_interception.js:30:13
MessageEvent eme_interception.js:28:13
message { target: MediaKeySession, isTrusted: true, messageType: "license-request", message: ArrayBuffer, srcElement: MediaKeySession, currentTarget: MediaKeySession, eventPhase: 2, bubbles: false, cancelable: false, returnValue: true, … }
eme_interception.js:29:13
null eme_interception.js:30:13
CreateMediaKeysCall eme_interception.js:28:13
Array []
eme_interception.js:29:13
MediaKeySystemAccess { originalGetConfiguration: getConfiguration(), getConfiguration: extendEmeMethod()
, createMediaKeys: (), listenersAdded_: true, keySystem: "com.widevine.alpha" }
eme_interception.js:30:13
SetServerCertificateCall eme_interception.js:28:13
Array [ Uint8Array(707) ]
eme_interception.js:29:13
MediaKeys { keySystem_: "com.widevine.alpha", createSession: (), setServerCertificate: extendEmeMethod()
, listenersAdded_: true, keySystem: "com.widevine.alpha" }
eme_interception.js:30:13
CreateSessionCall eme_interception.js:28:13
Array [ "temporary" ]
eme_interception.js:29:13
MediaKeys { keySystem_: "com.widevine.alpha", createSession: (), setServerCertificate: extendEmeMethod()
, listenersAdded_: true, keySystem: "com.widevine.alpha" }
eme_interception.js:30:13
GenerateRequestCall eme_interception.js:28:13
Array [ "cenc", Uint8Array(52) ]
eme_interception.js:29:13
MediaKeySession { keySystem_: "com.widevine.alpha", generateRequest: extendEmeMethod(), load: extendEmeMethod(), update: extendEmeMethod(), close: extendEmeMethod(), remove: extendEmeMethod()
, listenersAdded_: true, error: null, sessionId: "", expiration: NaN }
eme_interception.js:30:13
unreachable code after return statement
cadmium-playercore-6.0031.730.911.js:1:1579902
unreachable code after return statement
cadmium-playercore-6.0031.730.911.js:1:1472228
unreachable code after return statement
cadmium-playercore-6.0031.730.911.js:1:1465296
unreachable code after return statement
cadmium-playercore-6.0031.730.911.js:1:1337645
unreachable code after return statement
cadmium-playercore-6.0031.730.911.js:1:658819
unreachable code after return statement
cadmium-playercore-6.0031.730.911.js:1:1555816
MessageEvent eme_interception.js:28:13
message { target: MediaKeySession, isTrusted: true, messageType: "license-request", message: ArrayBuffer, srcElement: MediaKeySession, currentTarget: MediaKeySession, eventPhase: 2, bubbles: false, cancelable: false, returnValue: true, … }
eme_interception.js:29:13
null eme_interception.js:30:13
unreachable code after return statement
cadmium-playercore-6.0031.730.911.js:1:1463031
UpdateCall eme_interception.js:28:13
Array [ Uint8Array(1072) ]
eme_interception.js:29:13
MediaKeySession { keySystem_: "com.widevine.alpha", generateRequest: extendEmeMethod(), load: extendEmeMethod(), update: extendEmeMethod(), close: extendEmeMethod(), remove: extendEmeMethod()
, listenersAdded_: true, error: null, sessionId: "E5984EBFC8C7A0BD25FE9340A99212B7", expiration: NaN }
eme_interception.js:30:13
Object { type: 1, msg: Uint8Array(5565), signature: Uint8Array(256), session_key: null, remote_attestation: null }
content_key_decryption.js:69:19
Object { type: 2, msg: Uint8Array(541), signature: Uint8Array(32), session_key: Uint8Array(256), remote_attestation: null }
content_key_decryption.js:69:19
Uncaught Error: Permission denied to access property "value"
    sendMessagePromise moz-extension://91a458cb-392d-4f65-b1be-5fc8b5c2b6e2/content_key_decryption.js:33
    sendMessagePromise moz-extension://91a458cb-392d-4f65-b1be-5fc8b5c2b6e2/content_key_decryption.js:31
    sendMessagePromise moz-extension://91a458cb-392d-4f65-b1be-5fc8b5c2b6e2/content_key_decryption.js:27
    tryUsingDecoder moz-extension://91a458cb-392d-4f65-b1be-5fc8b5c2b6e2/content_key_decryption.js:102
    tryDecodingKey moz-extension://91a458cb-392d-4f65-b1be-5fc8b5c2b6e2/content_key_decryption.js:132
    decryptContentKey moz-extension://91a458cb-392d-4f65-b1be-5fc8b5c2b6e2/content_key_decryption.js:168
    onOperation moz-extension://91a458cb-392d-4f65-b1be-5fc8b5c2b6e2/eme_interception.js:71
    interceptCall moz-extension://91a458cb-392d-4f65-b1be-5fc8b5c2b6e2/eme_interception.js:427
    extendEmeMethod moz-extension://91a458cb-392d-4f65-b1be-5fc8b5c2b6e2/eme_interception.js:403
    update https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    Mea https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    D0 https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    plb https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    promise callback*c.prototype.plb/< https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    promise callback*c.prototype.plb https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    f6 https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    aib https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    this.Mi.oC https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    open https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    Csb https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    gNb https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    Na https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    ta https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    WU https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    next https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    m https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    m https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    T5a https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    gOb https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    load https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    gOb https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    BR https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    BR https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    promise callback*c.prototype.BR https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    BR https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    iea https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    C https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    lx https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    iea https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    sob https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    EXb https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    Crb https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    load https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    c https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    Lya https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    qU https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    load https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    load https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    load https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    load https://codex.nflxext.com/^3.0.0/truthBundle/webui/1.22.5-akira-js-vc904eb79/js/js/akira|akiraClient.js/2/082-2J032D2N2_050i00302M2W2P2K2V2E2O2X0J/l/true/none:10
    ie https://codex.nflxext.com/^3.0.0/truthBundle/webui/1.22.5-akira-js-vc904eb79/js/js/akira|akiraClient.js/2/082-2J032D2N2_050i00302M2W2P2K2V2E2O2X0J/l/true/none:15
    f https://codex.nflxext.com/^3.0.0/truthBundle/webui/1.22.5-akira-js-vc904eb79/js/js/akira|akiraClient.js/2/082-2J032D2N2_050i00302M2W2P2K2V2E2O2X0J/l/true/none:15
    Be https://codex.nflxext.com/^3.0.0/truthBundle/webui/1.22.5-akira-js-vc904eb79/js/js/akira|akiraClient.js/2/082-2J032D2N2_050i00302M2W2P2K2V2E2O2X0J/l/true/none:15
    u https://codex.nflxext.com/^3.0.0/truthBundle/webui/1.22.5-akira-js-vc904eb79/js/js/akira|akiraClient.js/2/082-2J032D2N2_050i00302M2W2P2K2V2E2O2X0J/l/true/none:15
    M https://codex.nflxext.com/^3.0.0/truthBundle/webui/1.22.5-akira-js-vc904eb79/js/js/akira|akiraClient.js/2/082-2J032D2N2_050i00302M2W2P2K2V2E2O2X0J/l/true/none:15
    u https://codex.nflxext.com/^3.0.0/truthBundle/webui/1.22.5-akira-js-vc904eb79/js/js/akira|akiraClient.js/2/082-2J032D2N2_050i00302M2W2P2K2V2E2O2X0J/l/true/none:15
    exports https://codex.nflxext.com/^3.0.0/truthBundle/webui/1.22.5-akira-js-vc904eb79/js/js/akira|akiraClient.js/2/082-2J032D2N2_050i00302M2W2P2K2V2E2O2X0J/l/true/none:15
    u https://codex.nflxext.com/^3.0.0/truthBundle/webui/1.22.5-akira-js-vc904eb79/js/js/akira|akiraClient.js/2/082-2J032D2N2_050i00302M2W2P2K2V2E2O2X0J/l/true/none:15
    r https://codex.nflxext.com/^3.0.0/truthBundle/webui/1.22.5-akira-js-vc904eb79/js/js/akira|akiraClient.js/2/082-2J032D2N2_050i00302M2W2P2K2V2E2O2X0J/l/true/none:9
    u https://codex.nflxext.com/^3.0.0/truthBundle/webui/1.22.5-akira-js-vc904eb79/js/js/akira|akiraClient.js/2/082-2J032D2N2_050i00302M2W2P2K2V2E2O2X0J/l/true/none:15
    exports https://codex.nflxext.com/^3.0.0/truthBundle/webui/1.22.5-akira-js-vc904eb79/js/js/akira|akiraClient.js/2/082-2J032D2N2_050i00302M2W2P2K2V2E2O2X0J/l/true/none:15
    u https://codex.nflxext.com/^3.0.0/truthBundle/webui/1.22.5-akira-js-vc904eb79/js/js/akira|akiraClient.js/2/082-2J032D2N2_050i00302M2W2P2K2V2E2O2X0J/l/true/none:15
    m https://codex.nflxext.com/^3.0.0/truthBundle/webui/1.22.5-akira-js-vc904eb79/js/js/akira|akiraClient.js/2/082-2J032D2N2_050i00302M2W2P2K2V2E2O2X0J/l/true/none:15
content_key_decryption.js:33:16
KeyStatusesChangeEvent eme_interception.js:28:13
keystatuseschange { target: MediaKeySession, isTrusted: true, srcElement: MediaKeySession, currentTarget: MediaKeySession, eventPhase: 2, bubbles: false, cancelable: false, returnValue: true, defaultPrevented: false, composed: false, … }
eme_interception.js:29:13
null eme_interception.js:30:13
usable 2 eme_interception.js:79:55
Arguments { 0: {…}, … }
eme_interception.js:162:13
DecodingInfoCall eme_interception.js:28:13
Array [ {…} ]
eme_interception.js:29:13
MediaCapabilities { decodingInfo: () }
eme_interception.js:30:13
MessageEvent eme_interception.js:28:13
message { target: MediaKeySession, isTrusted: true, messageType: "license-renewal", message: ArrayBuffer, srcElement: MediaKeySession, currentTarget: MediaKeySession, eventPhase: 2, bubbles: false, cancelable: false, returnValue: true, … }
eme_interception.js:29:13
null eme_interception.js:30:13
unreachable code after return statement
cadmium-playercore-6.0031.730.911.js:1:1542023
UpdateCall eme_interception.js:28:13
Array [ Uint8Array(282) ]
eme_interception.js:29:13
MediaKeySession { keySystem_: "com.widevine.alpha", generateRequest: extendEmeMethod(), load: extendEmeMethod(), update: extendEmeMethod(), close: extendEmeMethod(), remove: extendEmeMethod()
, listenersAdded_: true, error: null, sessionId: "E5984EBFC8C7A0BD25FE9340A99212B7", expiration: 1628275354000 }
eme_interception.js:30:13
Object { type: 1, msg: Uint8Array(5565), signature: Uint8Array(256), session_key: null, remote_attestation: null }
content_key_decryption.js:69:19
Object { type: 2, msg: Uint8Array(233), signature: Uint8Array(32), session_key: null, remote_attestation: null }
content_key_decryption.js:69:19
Uncaught (in promise) TypeError: bytes is null
    bytesToHex moz-extension://91a458cb-392d-4f65-b1be-5fc8b5c2b6e2/content_key_decryption.js:18
    tryDecodingKey moz-extension://91a458cb-392d-4f65-b1be-5fc8b5c2b6e2/content_key_decryption.js:131
    decryptContentKey moz-extension://91a458cb-392d-4f65-b1be-5fc8b5c2b6e2/content_key_decryption.js:168
    onOperation moz-extension://91a458cb-392d-4f65-b1be-5fc8b5c2b6e2/eme_interception.js:71
    interceptCall moz-extension://91a458cb-392d-4f65-b1be-5fc8b5c2b6e2/eme_interception.js:427
    extendEmeMethod moz-extension://91a458cb-392d-4f65-b1be-5fc8b5c2b6e2/eme_interception.js:403
    update https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    Mea https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    tLa https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    oUb https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    promise callback*c/this.oUb/< https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    Voa https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    wLa https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
    createSession https://assets.nflxext.com/en_us/ffe/player/html/cadmium-playercore-6.0031.730.911.js:1
content_key_decryption.js:18:31
downloadable font: font-display timeout, webfont not used (font-family: "Netflix Sans" style:normal weight:700 stretch:100 src index:0) source: https://assets.nflxext.com/ffe/siteui/fonts/netflix-sans/v3/NetflixSans_W_Md.woff2
downloadable font: font-display timeout, webfont not used (font-family: "Netflix Sans" style:normal weight:400 stretch:100 src index:0) source: https://assets.nflxext.com/ffe/siteui/fonts/netflix-sans/v3/NetflixSans_W_Rg.woff2 2
downloadable font: font-display timeout, webfont not used (font-family: "Netflix Sans" style:normal weight:700 stretch:100 src index:0) source: https://assets.nflxext.com/ffe/siteui/fonts/netflix-sans/v3/NetflixSans_W_Md.woff2 ```

​
Essam23 commented 3 years ago

@TiRajo I know, and that what I wrote, I just reporting this problem in case the master branch got more updates so the users of Firefox could benefit from them.

09kkthxbb commented 3 years ago

But now as example, the movie Fast And Furious Hoobs And Shaws On NF as I see on app they set HD quality, but when use tool netflix 1080p tool and I see they just 960x540 quality

I have downloaded Star Trek (2009) from NF and I am getting 1080p AVC High and DD+ audio .. also decrypted

Format : AVC Format/Info : Advanced Video Codec Format profile : High@L4 Format settings : CABAC / 4 Ref Frames Format settings, CABAC : Yes Format settings, ReFrames : 4 frames Codec ID : V_MPEG4/ISO/AVC Duration : 2 h 7 min Bit rate mode : Variable Bit rate : 3 043 kb/s Maximum bit rate : 20.0 Mb/s Width : 1 920 pixels Height : 1 080 pixels

Format : E-AC-3 Format/Info : Enhanced Audio Coding 3 Codec ID : A_EAC3 Duration : 2 h 7 min Bit rate mode : Constant Bit rate : 640 kb/s Channel(s) : 6 channels Channel positions : Front: L C R, Side: L R, LFE Sampling rate : 48.0 kHz Frame rate : 187.500 FPS (256 SPF) Compression mode : Lossy Stream size : 586 MiB (15%) Language : English Service kind : Complete Main Default : No Forced : No

how do you use yt-dlp to download .mpd files? what's the line command?

in m3u8-dl cli, I simply paste the .mpd url and the download will start.

but in yt-dlp , I tried this one:

yt-dlp --external-downloader aria2c "https://bitmovin-a.akamaihd.net/content/art-of-motion_drm/mpds/11331.mpd"

but it says no video format. Am I doing it wrong?

Essam23 commented 3 years ago

@Satsuoni This is Firefox 90.0.2 64-bit portable with the latest files from the master branch installed on it, you could use It for testing.

https://mega.nz/file/htVEHBhD#ZMiQWN5FEQcn0j972opUd1ym5y7Y8O6DFc-xLm20Ybg

tuprimafromtomelloso commented 3 years ago

@09kkthxbb

try this simple batch script, it will download, merge and decrypt the video, many audios and subtitle options in each batch.

its in spanish (my lenguage so sorry for that) you also can change the metadata to match your lenguage when mkvtoolnix merge the video/audio. its written by me and its working in movistar+ and filmin (spanish vod sites) but maybe it can work in another sites.

https://github.com/tuprimafromtomelloso/M-FLMN-BATCH-DOWNLOADER

MG577 commented 3 years ago

@09kkthxbb

Try this

yt-dlp -F --allow-unplayable-formats https://bitmovin-a.akamaihd.net/content/art-of-motion_drm/mpds/11331.mpd

Satsuoni commented 3 years ago

@Satsuoni This is Firefox 90.0.2 64-bit portable with the latest files from the master branch installed on it, you could use It for testing.

https://mega.nz/file/htVEHBhD#ZMiQWN5FEQcn0j972opUd1ym5y7Y8O6DFc-xLm20Ybg

Yes, that is helpful. Try new commit out? Seemed to work. Uff, malicious security limitations...

Essam23 commented 3 years ago

@Satsuoni Thank you so much, the master branch is now working on Firefox.

ortegabae commented 3 years ago

@Satsuoni Thank you so much, the master branch is now working on Firefox.

@Essam3152 Will there be an update for widevine guesser for firefox

Essam23 commented 3 years ago

@ortegabae Here is widevine_guesser-1.0.6 using the latest files from the master branch.

widevine_guesser-1.0.6-fx.zip

https://github.com/Satsuoni/widevine-l3-guesser/tree/5cbf7693b6909a6e4badc1921af5fbe1e5ef0b95

georgysaumen commented 3 years ago

But now as example, the movie Fast And Furious Hoobs And Shaws On NF as I see on app they set HD quality, but when use tool netflix 1080p tool and I see they just 960x540 quality

I have downloaded Star Trek (2009) from NF and I am getting 1080p AVC High and DD+ audio .. also decrypted

Format : AVC Format/Info : Advanced Video Codec Format profile : High@L4 Format settings : CABAC / 4 Ref Frames Format settings, CABAC : Yes Format settings, ReFrames : 4 frames Codec ID : V_MPEG4/ISO/AVC Duration : 2 h 7 min Bit rate mode : Variable Bit rate : 3 043 kb/s Maximum bit rate : 20.0 Mb/s Width : 1 920 pixels Height : 1 080 pixels

Format : E-AC-3 Format/Info : Enhanced Audio Coding 3 Codec ID : A_EAC3 Duration : 2 h 7 min Bit rate mode : Constant Bit rate : 640 kb/s Channel(s) : 6 channels Channel positions : Front: L C R, Side: L R, LFE Sampling rate : 48.0 kHz Frame rate : 187.500 FPS (256 SPF) Compression mode : Lossy Stream size : 586 MiB (15%) Language : English Service kind : Complete Main Default : No Forced : No

Hi , can I know the way you get ?

georgysaumen commented 3 years ago

But now as example, the movie Fast And Furious Hoobs And Shaws On NF as I see on app they set HD quality, but when use tool netflix 1080p tool and I see they just 960x540 quality

I have downloaded Star Trek (2009) from NF and I am getting 1080p AVC High and DD+ audio .. also decrypted

Format : AVC Format/Info : Advanced Video Codec Format profile : High@L4 Format settings : CABAC / 4 Ref Frames Format settings, CABAC : Yes Format settings, ReFrames : 4 frames Codec ID : V_MPEG4/ISO/AVC Duration : 2 h 7 min Bit rate mode : Variable Bit rate : 3 043 kb/s Maximum bit rate : 20.0 Mb/s Width : 1 920 pixels Height : 1 080 pixels

Format : E-AC-3 Format/Info : Enhanced Audio Coding 3 Codec ID : A_EAC3 Duration : 2 h 7 min Bit rate mode : Constant Bit rate : 640 kb/s Channel(s) : 6 channels Channel positions : Front: L C R, Side: L R, LFE Sampling rate : 48.0 kHz Frame rate : 187.500 FPS (256 SPF) Compression mode : Lossy Stream size : 586 MiB (15%) Language : English Service kind : Complete Main Default : No Forced : No

I just can download VP9 profile of NF or use AnyStream to download!

georgysaumen commented 3 years ago

@Satsuoni Hi, I think your lastest update they cannot work with Chrome! I have updated your newest update but when i go to netflix or galaxyplay I don't see any key that the extension give! Previous update is Ok

TiRajo commented 3 years ago

@Satsuoni Hi, I think your lastest update they cannot work with Chrome! I have updated your newest update but when i go to netflix or galaxyplay I don't see any key that the extension give! Previous update is Ok

new update means firefox fix? its working well with netflix gives.

georgysaumen commented 3 years ago

Yes, right! New update means firefox fix, but I use Chrome is not work and the key not given

Vào Th 6, 6 thg 8, 2021 lúc 17:56 TiRajo @.***> đã viết:

@Satsuoni https://github.com/Satsuoni Hi, I think your lastest update they cannot work with Chrome! I have updated your newest update but when i go to netflix or galaxyplay I don't see any key that the extension give! Previous update is Ok

new update means firefox fix? its working well with netflix gives.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Satsuoni/widevine-l3-guesser/issues/1#issuecomment-894179198, or unsubscribe https://github.com/notifications/unsubscribe-auth/AUQ2CUPUIKRTHHJL2S4MMXDT3O5UHANCNFSM5BG33V6A . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email .

TiRajo commented 3 years ago

try with clearing the cache.

Essam23 commented 3 years ago

@TiRajo Do you know how to download only the subtitle from this link? I can download the subtitle using yt-dlp.exe but the downloaded subtitle is not readable, I used.

yt-dlp --write-subs --allow-unplayable-formats --output "Bridge to Silence.mp4" "https://vod-gcs-cedexis.cbsaavideo.com/intl_vms/2021/04/23/1889263683579/644757_cenc_dash/stream.mpd"

Here is how the downloaded subtitle looks, you can just see the dialogue and parts of the positioning, open this file with Notepad++.

Bridge.To.Silence.zip

Edit: I was able to download the subtitle using this method.

https://forum.videohelp.com/threads/402693-How-to-download-the-subtitles-from-Paramount-Plus

Essam23 commented 3 years ago

@phanluchoaofficial20 The link has a subtitle, see here.

<AdaptationSet id="0" contentType="text" lang="en" segmentAlignment="true">
  <Role schemeIdUri="urn:mpeg:dash:role:2011" value="subtitle"/>
  <Representation id="0" bandwidth="979" codecs="wvtt" mimeType="application/mp4">
    <SegmentTemplate timescale="1000" initialization="13QV_3oXh5EYt5I5xmlBiG23Q6CE6Gy__1619591429137/vtt_init.m4v" media="13QV_3oXh5EYt5I5xmlBiG23Q6CE6Gy__1619591429137/seg_$Number$.m4s" startNumber="1">
      <SegmentTimeline>
        <S t="0" d="6000" r="913"/>
      </SegmentTimeline>
    </SegmentTemplate>
  </Representation>
</AdaptationSet>
TiRajo commented 3 years ago

yes subtitle is in webvtt which in video format only shaka can decode that and display.

georgysaumen commented 3 years ago

@Satsuoni I think this tool not support for get key H264 High Profile of Netflix, I see 4 keys but when I use to decrypt is all fail and video dont decrypt!

TiRajo commented 3 years ago

@Satsuoni I think this tool not support for get key H264 High Profile of Netflix, I see 4 keys but when I use to decrypt is all fail and video dont decrypt!

be sure that your track id when decrypting some video will be 2 some will be 1 instead of using kid

Video ID : 1 Format : AVC

in netflix! can share video link and which title will try with my key results

georgysaumen commented 3 years ago

@Satsuoni Tôi nghĩ công cụ này không hỗ trợ lấy key H264 High Profile của Netflix, tôi thấy có 4 phím nhưng khi sử dụng để giải mã thì tất cả đều thất bại và video không giải mã được!Untitled> hãy chắc chắn rằng id theo dõi của bạn khi giải mã một số video sẽ là 2, một số sẽ là 1 thay vì sử dụng kid

ID video : 1 Định dạng: AVC

trong netflix!

Untitled

Here, how can I decrypt ?

TiRajo commented 3 years ago

see its id 2

so 2:key in mp4decrypt

like : mp4decrypt --key 2:key input output

georgysaumen commented 3 years ago

see its id 2

so 2:key in mp4decrypt

like : mp4decrypt --key 2:key input output

Ohh, success! Thanks!

georgysaumen commented 3 years ago

see its id 2

so 2:key in mp4decrypt

like : mp4decrypt --key 2:key input output

Do you know how to get h265 video codec of nf ?

m0ck69 commented 3 years ago

@ortegabae Here is widevine_guesser-1.0.6 using the latest files from the master branch.

widevine_guesser-1.0.6-fx.zip

https://github.com/Satsuoni/widevine-l3-guesser/tree/5cbf7693b6909a6e4badc1921af5fbe1e5ef0b95

Hi. I unpacked your extension and edited it so that it would give keys in KID:KEY format. How do I compile it to xpi again? When I try, I always get the message about corrupted extension.

Essam23 commented 3 years ago

@m0ck69 You could register a Firefox account and submit it here, but do not submit it to the public, make it private, you might need to raise the version number in manifest.json to differentiate it from the other versions that I uploaded in github, and you will need to zip the files.

https://extensionworkshop.com/?utm_source=addons.mozilla.org&utm_medium=referral&utm_content=devhub-menu-link

11 22 33 1 2 3 4 5 6 7 8 9 10 11
09kkthxbb commented 3 years ago

@09kkthxbb

Try this

yt-dlp -F --allow-unplayable-formats https://bitmovin-a.akamaihd.net/content/art-of-motion_drm/mpds/11331.mpd

It worked. thanks. However, I am still getting x264 format from the .mpd stream. And the it doesn't properly rename the audio in its original extension name but ID name instead. (Ex: .aac becomes .audio_id_bitrate)

I dont understand why but I always get video tags in mediainfo when I do my own rips like: Writing library : x264 core 148 r2722 1b0121b Encoding settings : cabac=1 / ref=3 / deblock=1:0:0 / analyse=0x1:0x111 / me=umh / subme=10 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=24 / chroma_me=1 / trellis=2 / 8x8dct=0 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=8 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / stitchable=1 / constrained_intra=0 / bframes=2 / b_pyramid=0 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=23 / scenecut=0 / intra_refresh=0 / rc_lookahead=48 / rc=2pass / mbtree=1 / bitrate=4420 / ratetol=1.0 / qcomp=0.50 / qpmin=6 / qpmax=51 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / vbv_maxrate=6630 / vbv_bufsize=8840 / nal_hrd=vbr / filler=0 / ip_ratio=1.40 / aq=1:1.00

While in available public torrent release, it doesn't show the one above and ends up with this: Color range : Limited Color primaries : BT.709 Transfer characteristics : BT.709 Matrix coefficients : BT.709

Are they using other program to grab the video stream by any chance?

taeweishin commented 3 years ago

Disney+ 1080p is possible? I've tried it but it only shows 1 key:kid and this key:kid is only for the 720p version

Before the 31st, Disney+ showed 4 keys, it doesn't happen anymore, so I wanted to know if it is possible to show more keys.

ortegabae commented 3 years ago

@taeweishin @TiRajo download on disney+ what tool do you use if you may know

taeweishin commented 3 years ago

@taeweishin @TiRajo download on disney+ what tool do you use if you may know

N_m3u8DL-CLI

georgysaumen commented 3 years ago

@taeweishin @TiRajo download on disney+ what tool do you use if you may know

You can follow this guide to download Disney+ movies!

https://forum.suprbay.org/Thread-How-to-download-WEB-DL-from-streaming-site-like-Netflix-Amazon-Disney-Hulu-e

ortegabae commented 3 years ago

@phanluchoaofficial20 sorry the guide you included doesn't work for Disney Hotstar maybe you know another solution

jcronan-slcc commented 3 years ago

@phanluchoaofficial20 sorry the guide you included doesn't work for Disney Hotstar maybe you know another solution

If you know how to find the mpd and download it with yt-dlp, add --user-agent KAIOS/2.0 to the command line

georgysaumen commented 3 years ago

I dont use ytdlp, i use Nm3u8DL_CLI to download stream

Vào Th 7, 7 thg 8, 2021 lúc 19:10 jcronan-slcc @.***> đã viết:

@phanluchoaofficial20 https://github.com/phanluchoaofficial20 sorry the guide you included doesn't work for Disney Hotstar maybe you know another solution

If you know how to find the mpd and download it with yt-dlp, add --user-agent KAIOS/2.0 to the command line

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Satsuoni/widevine-l3-guesser/issues/1#issuecomment-894646638, or unsubscribe https://github.com/notifications/unsubscribe-auth/AUQ2CULQZWIIF3EJXHLV5SDT3UPCNANCNFSM5BG33V6A . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email .

jcronan-slcc commented 3 years ago

I dont use ytdlp, i use Nm3u8DL_CLI to download stream Vào Th 7, 7 thg 8, 2021 lúc 19:10 jcronan-slcc @.***> đã viết: @phanluchoaofficial20 https://github.com/phanluchoaofficial20 sorry the guide you included doesn't work for Disney Hotstar maybe you know another solution If you know how to find the mpd and download it with yt-dlp, add --user-agent KAIOS/2.0 to the command line — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <#1 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AUQ2CULQZWIIF3EJXHLV5SDT3UPCNANCNFSM5BG33V6A . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email .

Disney+ Hotstar is different from regular Disney+