VideoHelp Forum




+ Reply to Thread
Results 1 to 12 of 12
  1. hello everyone, I would like to know how to do it manually to obtain the 3 key id:key of the video because since mpd, I obtained only one key id. I would like to know how to obtain the 3 keys like widevine decryptor?

    3 KEY :
    1f7da96b80eb565383f5c2a3f218b555:237c7aadc9dd3da8d ef08030415827b8
    e2de457a63a55c0096c88d0159b0f318:e8b8e723ddea55ba6 a3386ab552370d3
    550d9cffbba4538b9a8e85b788e7dadb:3555d48fc2c327dbd 6b03532c1292091
    Image
    [Attachment 90219 - Click to enlarge]


    https://www.tf1.fr/tf1/barbapapa/videos/barbapapa-en-famille-bouillon-dinventions-8786...Slug=barbapapa

    can someone explain to me how to obtain the 3 keys like widevine decryptor?
    Quote Quote  
  2. Thank you for answering Cedric, the problem is the detection of the keys it's just how to obtain the 3 keys manually an mpd: e2de457a63a55c0096c88d0159b0f318 and the rest key, it is found where the other keys: 1f7da96b80eb565383f5c2a3f218b555 is 550d9cffbba4538b9a8e85b788e7dadb
    Quote Quote  
  3. Ok I don't understand what you really want...

    The numbers you give is just KID...and you need KEY...so you just have to install WIdevineProxy 2 with CDM and you will get all your keys to decrypt your video (like widevine decryptor)
    Quote Quote  
  4. Member
    Join Date
    Dec 2021
    Location
    england
    Search Comp PM
    where did you get drm analyzer from?
    ask developer why is it only fetch 1 key.
    Quote Quote  
  5. Hello, I created it with Tampermonkey, my DRM analyzer, but I'm looking for how to obtain the key and I don't know how to find it. I only know how to retrieve the ID key from the MPD.
    Quote Quote  
  6. Well, the process is explained in length in @A_n_g_e_l_a's "Decryption" series, pinned here in the forum.

    To summarize with just one sentence: the PSSH from your mpd is used to generate a crypted request at a licensing server, which returns a crypted response including all the keys needed to decrypt the video.
    Quote Quote  
  7. the goal is to obtain the keys without using python directly in javascript to obtain the keys from the drm video but without using device.wvd to obtain the keys. the problem I can't decrypt the license to obtain the keys.
    Quote Quote  
  8. Not possible, AFAICT. The main reason that DRM exists is quite simply to prevent you from obtaining the keys without "permission" (i.e. without a valid certificate or "device.wvd").
    Quote Quote  
  9. thank you for your answer but I will try to obtain the keys of the drm video without using device.wvd.
    Quote Quote  
  10. Originally Posted by sesamap159 View Post
    without using device.wvd.
    Good luck
    Quote Quote  
  11. I found a way to decrypt the license code from proto but I'm stuck on getting the decryption code for AES like python to get the final keys.

    bas64 license code:
    CAISpAIKSAoQ0O50sDnZzXqodV2hWWfRlBImChBwo35o5utINo mVwRXdjHApEAEyEDpWYnQ1/KD+H/r5o7xPE/AgASgAOABAAEiSz4vKBhIWCAEQARgAIAAoADgASABQAFgAYAFw ABpWEhB4RN06okB9r17nxmhtSBKDGkCvnAA3nH3WXadopUM8is Z6gzNq6T+kozJUJHuBTv89mEJe1+tNtqFRHR36V7VmEVmUEkP4 JrrCh7Dq0zfq4W6wIAEaXgoQeIntlN0KXFemaltvxSh7IxIQvB eifyRZ6zU9/kQfe5FMaRoQm/YmZ3LLR6ZV1wEgL5EDSSACKAEyCggAECoYACAAKABCEgoQa2Mx NgAAAADxPHLPoAAACGICU0Qgks+LygY4AFACGiAwTzPifV1Nuw GH4DEJTl3pLkGFFOpjFPaFfO7YHJusciKAASyVGWKSgTK/xUSLAtgGEgarN/dhZHzpsVIIij35z2md7e8m+ThmGl3+VcI2jNmf8ztKOJTog9rw 1rmTDoo+Wi4FQg9OYZ2EA/t3jegLG2KMqcvd/DEkZCVTfAUMJ9bQ5p8fy2C2ANRpzV2I+3yHmKIMUXMitvi60ss xZNXvDjF3OgkKBzE5LjEwLjFAAUqwAQAAAAIAAACwAAUAEPE8c s+ohkoAAAAAZgAAABAAAAB4AAAAQAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAABAAAAvgAAABAAAADQAAAAEAAAAOIAAAA QAAAAAAAAAAAAAAEGAAAAEAdG5YnjAezMelta2iVVN2WS/N59TtBX+0ac/BTtIT54WAE=
    the final result:
    Entrer la licence en Base64: CAISpAIKSAoQ0O50sDnZzXqodV2hWWfRlBImChBwo35o5utINo mVwRXdjHApEAEyEDpWYnQ1/KD+H/r5o7xPE/AgASgAOABAAEiSz4vKBhIWCAEQARgAIAAoADgASABQAFgAYAFw ABpWEhB4RN06okB9r17nxmhtSBKDGkCvnAA3nH3WXadopUM8is Z6gzNq6T+kozJUJHuBTv89mEJe1+tNtqFRHR36V7VmEVmUEkP4 JrrCh7Dq0zfq4W6wIAEaXgoQeIntlN0KXFemaltvxSh7IxIQvB eifyRZ6zU9/kQfe5FMaRoQm/YmZ3LLR6ZV1wEgL5EDSSACKAEyCggAECoYACAAKABCEgoQa2Mx NgAAAADxPHLPoAAACGICU0Qgks+LygY4AFACGiAwTzPifV1Nuw GH4DEJTl3pLkGFFOpjFPaFfO7YHJusciKAASyVGWKSgTK/xUSLAtgGEgarN/dhZHzpsVIIij35z2md7e8m+ThmGl3+VcI2jNmf8ztKOJTog9rw 1rmTDoo+Wi4FQg9OYZ2EA/t3jegLG2KMqcvd/DEkZCVTfAUMJ9bQ5p8fy2C2ANRpzV2I+3yHmKIMUXMitvi60ss xZNXvDjF3OgkKBzE5LjEwLjFAAUqwAQAAAAIAAACwAAUAEPE8c s+ohkoAAAAAZgAAABAAAAB4AAAAQAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAABAAAAvgAAABAAAADQAAAAEAAAAOIAAAA QAAAAAAAAAAAAAAEGAAAAEAdG5YnjAezMelta2iVVN2WS/N59TtBX+0ac/BTtIT54WAE=

    === Licence Keys Content ===
    Vidéo ID : 7889ed94dd0a5c57a66a5b6fc5287b23
    IV : bc17a27f2459eb353dfe441f7b914c69
    Taille IV : 16
    Key : 9bf6266772cb47a655d701202f910349
    Taille Key: 16

    === Structure complète ===
    Type: LICENSE
    Msg {
    Id {
    RequestId: "\320\356t\2609\331\315z\250u]\241Yg\321\224"
    SessionId: "\n\020p\243~h\346\353H6\211\225\301\025\335\214p) \020\0012\020:Vbt5\374\240\376\037\372\371\243\274 O\023\360"
    Type: DEFAULT
    Version: 0
    }
    _Policy {
    CanPlay: true
    CanPersist: true
    CanRenew: false
    RentalDurationSeconds: 0
    PlaybackDurationSeconds: 0
    RenewalRecoveryDurationSeconds: 0
    RenewalDelaySeconds: 0
    RenewalRetryIntervalSeconds: 0
    RenewWithUsage: false
    }
    Key {
    Iv: "xD\335:\242@}\257^\347\306hmH\022\203"
    Key: "\257\234\0007\234}\326]\247h\245C<\212\306z\2033j\351?\244\2432T${\201N\3 77=\230B^\327\353M\266\241Q\035\035\372W\265f\021Y \224\022C\370&\272\302\207\260\352\3237\352\341n\2 60"
    Type: SIGNING
    }
    Key {
    Id: "x\211\355\224\335\n\\W\246j[o\305({#"
    Iv: "\274\027\242\177$Y\3535=\376D\037{\221Li"
    Key: "\233\366&gr\313G\246U\327\001 /\221\003I"
    Type: CONTENT
    Level: SW_SECURE_CRYPTO
    RequiredProtection {
    Hdcp: HDCP_NONE
    CgmsFlags: CGMS_NONE
    }
    _KeyControl {
    KeyControlBlock: "kc16\000\000\000\000\361<r\317\240\000\000\01 0"
    }
    }
    LicenseStartTime: 1765992338
    ProtectionScheme: 0
    }
    Signature: "0O3\342}]M\273\001\207\3401\tN]\351.A\205\024\352c\024\366\205|\356\330\034\233\2 54r"
    SessionKey: ",\225\031b\222\2012\277\305D\213\002\330\006\022\ 006\2537\367ad|\351\261R\010\212=\371\317i\235\355 \357&\3718f\032]\376U\3026\214\331\237\363;J8\224\350\203\332\360\ 326\271\223\016\212>Z.\005B\017Na\235\204\003\373w \215\350\013\033b\214\251\313\335\3741$d%S|\005\01 4\'\326\320\346\237\037\313`\266\000\324i\315]\210\373|\207\230\242\014Qs\"\266\370\272\322\3131 d\325\357\0161w"
    I'm stuck on this in Python:
    for key in license.Msg.Key:
    if key.Id:
    key_id = key.Id
    else:
    key_id = wv_proto2.License.KeyContainer.KeyType.Name(key.Ty pe).encode('utf-8')
    encrypted_key = key.Key
    iv = key.Iv
    type = wv_proto2.License.KeyContainer.KeyType.Name(key.Ty pe)

    cipher = AES.new(session.derived_keys['enc'], AES.MODE_CBC, iv=iv)
    decrypted_key = cipher.decrypt(encrypted_key)
    if type == "OPERATOR_SESSION":
    permissions = []
    perms = key._OperatorSessionKeyPermissions
    for (descriptor, value) in perms.ListFields():
    if value == 1:
    permissions.append(descriptor.name)
    print(permissions)
    else:
    permissions = []
    session.keys.append(Key(key_id, type, Padding.unpad(decrypted_key, 16), permissions))

    self.logger.info("decrypted all keys")
    return 0
    to obtain the final key:
    ID : 7889ed94dd0a5c57a66a5b6fc5287b23 Key : f5f48a71b8115aa092e4a30e0ba8f50c
    Quote Quote  



Similar Threads

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