VideoHelp Forum



Support our site by donate $5 directly to us Thanks!!!

Try StreamFab Downloader and download streaming video from Netflix, Amazon!



+ Reply to Thread
Results 1 to 15 of 15
  1. Hi, I have 2 questions...

    1) What contains a widevine response and how it converts into key, that is what are the inputs that need the algorithm to obtain the key.
    2) How can I extract the IV key from a widevine response?
    Quote Quote  
  2. Originally Posted by Rathan View Post
    Hi, I have 2 questions...


    2) How can I extract the IV key from a widevine response?
    You are confusing 2 different types of 'protection' here
    Quote Quote  
  3. Member
    Join Date
    Feb 2022
    Location
    Europe
    Search PM
    Click image for larger version

Name:	widevine-security-model.png
Views:	3388
Size:	188.2 KB
ID:	64144

    This might help you.. and if not, it is still a pretty decent read

    https://ottverse.com/widevine-drm-how-does-it-work/
    Quote Quote  
  4. Originally Posted by codehound View Post
    You are confusing 2 different types of 'protection' here
    From a decryption code, the IV key is used to obtain the final key:
    Code:
    license = License.read(licenseResponse.msg);
    ...
    currentKey of license.key
    ...
    keyId = currentKey.id;
    keyData = currentKey.key.slice(0, 16); 
    keyIv = currentKey.iv.slice(0, 16);
    ...
    So I thought that in the Widevine Response there was the IV key.
    I wanted to try to decrypt a video with DRM WIDEVINE using AES-128 with KEY and IV, always if it is possible
    Quote Quote  
  5. Originally Posted by gnodde View Post
    Image
    [Attachment 64144 - Click to enlarge]


    This might help you.. and if not, it is still a pretty decent read

    https://ottverse.com/widevine-drm-how-does-it-work/
    So even if the coded key is the same, every time you get different Widevine Response and can't be stored to view the video in later sessions?

    Thanks
    Quote Quote  
  6. Originally Posted by Rathan View Post

    So I thought that in the Widevine Response there was the IV key.

    I wanted to try to decrypt a video with DRM WIDEVINE using AES-128 with KEY and IV, always if it is possible
    Widevine is one type of encryption, AES-128 is another type of encryption (but it isnt Widevine).

    Like I said before you are confusing 2 differing types of encryption.

    Is the video you want to download encrypted by WV or AES-128 ?

    In either case, because you dont know, give us the url of the page that contains the video, so we can look. Both need a different approach.
    Last edited by codehound; 5th Apr 2022 at 17:34.
    Quote Quote  
  7. Originally Posted by codehound View Post

    Widevine is one type of encryption, AES-128 is another type of encryption (but it isnt Widevine).

    Like I said before you are confusing 2 differing types of encryption.

    Is the video you want to download encrypted by WV or AES-128 ?

    In either case, because you dont know, give us the url of the page that contains the video, so we can look. Both need a different approach.
    I know they are different, but since the widevine algorithm speaks of key IV, I thought I could use it for a decryption in AES-128.

    Thank you for the notions.
    Quote Quote  
  8. Originally Posted by codehound View Post
    Originally Posted by Rathan View Post

    So I thought that in the Widevine Response there was the IV key.

    I wanted to try to decrypt a video with DRM WIDEVINE using AES-128 with KEY and IV, always if it is possible
    Widevine is one type of encryption, AES-128 is another type of encryption (but it isnt Widevine).

    Like I said before you are confusing 2 differing types of encryption.

    Is the video you want to download encrypted by WV or AES-128 ?

    In either case, because you dont know, give us the url of the page that contains the video, so we can look. Both need a different approach.
    Not quite.

    Widevine is just a secure mechanism for exchanging the encryption keys (AES 128) between the client and the server in a way such that the keys and content are never revealed to the end user. They are NOT separate mechanisms but one incorporates the other.
    Quote Quote  
  9. Originally Posted by basedcel View Post
    Not quite.

    Widevine is just a secure mechanism for exchanging the encryption keys (AES 128) between the client and the server in a way such that the keys and content are never revealed to the end user. They are NOT separate mechanisms but one incorporates the other.
    Here is explained!
    So it's right that there is also a key IV inside, which then turns into the KID:KEY format.
    I appreciate your answer, thanks.
    Quote Quote  
  10. Hello, is there any method to generate the widevine license if I already have the kid:key?
    Quote Quote  
  11. Originally Posted by ga2p View Post
    Hello, is there any method to generate the widevine license if I already have the kid:key?
    The whole reason for the widevine license request is to get the key, so if you already have the key, what's the point?
    Quote Quote  
  12. Hello, I use the keys to play directly, some mpd/m3u8 don't have "cenc:default_KID" in the manifest so it doesn't work.
    Either I patch the manifest by adding "cenc:default_KID" or I have to pull the widevine license.
    So if I already have the key, I thought of generating the widevine license without attacking the original server.
    All the best.
    Quote Quote  
  13. hmmm interesting... so its for the player?
    how does having the kid in the manifest affect the key retrieval (without license server)?
    theres probably a method to feed the keys to the player directly without it needing to request it externally.
    Quote Quote  
  14. Originally Posted by ElCap View Post
    hmmm interesting... so its for the player?
    how does having the kid in the manifest affect the key retrieval (without license server)?
    theres probably a method to feed the keys to the player directly without it needing to request it externally.
    Yes, the player is OTT Navigator and Tivimate.

    These two formats can be used:
    #KODIPROP:inputstream.adaptive.manifest_type=mpd
    #KODIPROP:inputstream.adaptive.license_type=cleark ey
    #KODIPROP:inputstream.adaptive.license_key=72b387a 528f8b4cf79b9fa07a058bbac6:d9441c93cdf8378dc2028a7 72ac9790

    or

    #KODIPROP:inputstream.adaptive.manifest_type=mpd
    #KODIPROP:inputstream.adaptive.license_type=org.w3 .clearkey
    #KODIPROP:inputstream.adaptive.license_key={"keys" :[{"kty":"oct","k":"p+Ccb0evVqcvLMmw7y4msg","kid":"J j9tsS1vm+mZt4nrVNMlXQ"}],"type": "temporary"}

    Are examples.
    If you have the default_KID it works, if not, no.
    I read the documentation and I didn't find anything, that's why I thought about generating the widevine license as I already have the kid-key and it's resolved, but I didn't find anything on how to generate it.
    Quote Quote  
  15. Originally Posted by ga2p View Post
    Originally Posted by ElCap View Post
    hmmm interesting... so its for the player?
    how does having the kid in the manifest affect the key retrieval (without license server)?
    theres probably a method to feed the keys to the player directly without it needing to request it externally.
    Yes, the player is OTT Navigator and Tivimate.

    These two formats can be used:
    #KODIPROP:inputstream.adaptive.manifest_type=mpd
    #KODIPROP:inputstream.adaptive.license_type=cleark ey
    #KODIPROP:inputstream.adaptive.license_key=72b387a 528f8b4cf79b9fa07a058bbac6:d9441c93cdf8378dc2028a7 72ac9790

    or

    #KODIPROP:inputstream.adaptive.manifest_type=mpd
    #KODIPROP:inputstream.adaptive.license_type=org.w3 .clearkey
    #KODIPROP:inputstream.adaptive.license_key={"keys" :[{"kty":"oct","k":"p+Ccb0evVqcvLMmw7y4msg","kid":"J j9tsS1vm+mZt4nrVNMlXQ"}],"type": "temporary"}

    Are examples.
    If you have the default_KID it works, if not, no.
    I read the documentation and I didn't find anything, that's why I thought about generating the widevine license as I already have the kid-key and it's resolved, but I didn't find anything on how to generate it.
    By entering the ClearKey value in License Type and without the type of license given by the Default KID in the MPD, the player fails to identify the type of license used, so if you can impose with some directive that Widevine must use maybe you can make it work.

    Try to consult the documentation to see if you can do something similar:
    [{"kty":"oct","k":"","kid":"", "default_kid":""}],"type": "temporary"} or [{"kty":"oct","k":"","kid":""}],"type": "widevine"}
    Quote Quote  



Similar Threads

Visit our sponsor! Try DVDFab and backup Blu-rays!