VideoHelp Forum


Try StreamFab Downloader and download from Netflix, Amazon, Youtube! Or Try DVDFab and copy Blu-rays!


Try StreamFab Downloader and download streaming video from Youtube, Netflix, Amazon! Download free trial.


+ Reply to Thread
Page 2 of 3
FirstFirst 1 2 3 LastLast
Results 31 to 60 of 65
Thread
  1. Originally Posted by Obo View Post
    Install Pywidevine (https://pypi.org/project/pywidevine/)

    You can then use this (or a similar script) to read the information:

    Code:
    import sys
    
    from pywidevine import Device
    
    if len(sys.argv) < 2:
        print(f'usage: {sys.argv[0]} <private-key-file> <client-id-blob> or {sys.argv[0]} <file.wvd>')
        sys.exit(1)
    
    if len(sys.argv) >= 3:
    
        with open(sys.argv[1], 'rb') as f:
            private_key = f.read()
        with open(sys.argv[2], 'rb') as f:
            client_id = f.read()
    
        device = Device(
            private_key=private_key,
            client_id=client_id,
            type_=Device.Types['ANDROID'],
            security_level=3,
            flags=None)
    
    else:
        device = Device.load(sys.argv[1])
    
    print(device)
    Thanks... It works like a charm
    Quote Quote  
  2. Thank you I am going to save a bunch of these except for the one that a poster said no longer works. I am learning to set up Virtual Enviroments and such trying to get things correct from the get go and isolated.
    Quote Quote  
  3. Originally Posted by Karoolus View Post
    These are 28 individual L3 CDMs (Android Studio, Android 11 iirc):
    https://files.videohelp.com/u/303646/1836941661.zip
    https://files.videohelp.com/u/303646/1874076282.zip
    https://files.videohelp.com/u/303646/1901532735.zip
    https://files.videohelp.com/u/303646/2085943500.zip
    https://files.videohelp.com/u/303646/2090896636.zip
    https://files.videohelp.com/u/303646/2103024377.zip
    https://files.videohelp.com/u/303646/2135508799.zip
    https://files.videohelp.com/u/303646/2163841363.zip
    https://files.videohelp.com/u/303646/2165463467.zip
    https://files.videohelp.com/u/303646/2205156279.zip
    https://files.videohelp.com/u/303646/2225908683.zip
    https://files.videohelp.com/u/303646/2257664396.zip
    https://files.videohelp.com/u/303646/2314085259.zip
    https://files.videohelp.com/u/303646/2343152275.zip
    https://files.videohelp.com/u/303646/2361419202.zip
    https://files.videohelp.com/u/303646/2371137915.zip
    https://files.videohelp.com/u/303646/2373129295.zip
    https://files.videohelp.com/u/303646/2388267602.zip
    https://files.videohelp.com/u/303646/2389746031.zip
    https://files.videohelp.com/u/303646/2408472391.zip
    https://files.videohelp.com/u/303646/2428458567.zip
    https://files.videohelp.com/u/303646/2441727647.zip
    https://files.videohelp.com/u/303646/2448192963.zip
    https://files.videohelp.com/u/303646/2448787606.zip
    https://files.videohelp.com/u/303646/2453587260.zip
    https://files.videohelp.com/u/303646/2464283359.zip
    https://files.videohelp.com/u/303646/2515545258.zip
    https://files.videohelp.com/u/303646/2760340741.zip

    You're welcome
    Thank you very much, i got one today and it works.
    Quote Quote  
  4. Originally Posted by Obo View Post
    Install Pywidevine (https://pypi.org/project/pywidevine/)

    You can then use this (or a similar script) to read the information:

    Code:
    import sys
    
    from pywidevine import Device
    
    if len(sys.argv) < 2:
        print(f'usage: {sys.argv[0]} <private-key-file> <client-id-blob> or {sys.argv[0]} <file.wvd>')
        sys.exit(1)
    
    if len(sys.argv) >= 3:
    
        with open(sys.argv[1], 'rb') as f:
            private_key = f.read()
        with open(sys.argv[2], 'rb') as f:
            client_id = f.read()
    
        device = Device(
            private_key=private_key,
            client_id=client_id,
            type_=Device.Types['ANDROID'],
            security_level=3,
            flags=None)
    
    else:
        device = Device.load(sys.argv[1])
    
    print(device)
    I dumped my keys from a Samsung Galaxy S4 after upgrading the original stock firmware Android 5.0.1 to custom firmware LineageOS 14.1 - Android 7.1 and that's what I found (but decryption works):

    Code:
    client_info {
      name: "widevine_cdm_version"
      value: "v4.0.0-android"
    }
    Quote Quote  
  5. Member
    Join Date
    Jan 2023
    Location
    Wales
    Search Comp PM
    Thanks Karoolus, much appreciated.
    Quote Quote  
  6. Originally Posted by Karoolus View Post
    These are 28 individual L3 CDMs (Android Studio, Android 11 iirc):
    https://files.videohelp.com/u/303646/1836941661.zip
    https://files.videohelp.com/u/303646/1874076282.zip
    https://files.videohelp.com/u/303646/1901532735.zip
    https://files.videohelp.com/u/303646/2085943500.zip
    https://files.videohelp.com/u/303646/2090896636.zip
    https://files.videohelp.com/u/303646/2103024377.zip
    https://files.videohelp.com/u/303646/2135508799.zip
    https://files.videohelp.com/u/303646/2163841363.zip
    https://files.videohelp.com/u/303646/2165463467.zip
    https://files.videohelp.com/u/303646/2205156279.zip
    https://files.videohelp.com/u/303646/2225908683.zip
    https://files.videohelp.com/u/303646/2257664396.zip
    https://files.videohelp.com/u/303646/2314085259.zip
    https://files.videohelp.com/u/303646/2343152275.zip
    https://files.videohelp.com/u/303646/2361419202.zip
    https://files.videohelp.com/u/303646/2371137915.zip
    https://files.videohelp.com/u/303646/2373129295.zip
    https://files.videohelp.com/u/303646/2388267602.zip
    https://files.videohelp.com/u/303646/2389746031.zip
    https://files.videohelp.com/u/303646/2408472391.zip
    https://files.videohelp.com/u/303646/2428458567.zip
    https://files.videohelp.com/u/303646/2441727647.zip
    https://files.videohelp.com/u/303646/2448192963.zip
    https://files.videohelp.com/u/303646/2448787606.zip
    https://files.videohelp.com/u/303646/2453587260.zip
    https://files.videohelp.com/u/303646/2464283359.zip
    https://files.videohelp.com/u/303646/2515545258.zip
    https://files.videohelp.com/u/303646/2760340741.zip

    You're welcome
    how can i create .wvd file after downloading above file?
    help a newbie
    Quote Quote  
  7. Originally Posted by Obo View Post
    Install Pywidevine (https://pypi.org/project/pywidevine/)

    You can then use this (or a similar script) to read the information:

    Code:
    import sys
    
    from pywidevine import Device
    
    if len(sys.argv) < 2:
        print(f'usage: {sys.argv[0]} <private-key-file> <client-id-blob> or {sys.argv[0]} <file.wvd>')
        sys.exit(1)
    
    if len(sys.argv) >= 3:
    
        with open(sys.argv[1], 'rb') as f:
            private_key = f.read()
        with open(sys.argv[2], 'rb') as f:
            client_id = f.read()
    
        device = Device(
            private_key=private_key,
            client_id=client_id,
            type_=Device.Types['ANDROID'],
            security_level=3,
            flags=None)
    
    else:
        device = Device.load(sys.argv[1])
    
    print(device)
    Traceback (most recent call last):
    File "/home/red/Desktop/test", line 19, in <module>
    type_=Device.Types['ANDROID'],
    AttributeError: type object 'Device' has no attribute 'Types'

    wrong python version ? i use 3.9
    Quote Quote  
  8. How did you execute the script? What arguments did you pass?
    Quote Quote  
  9. Maybe it's PCOK specifically, but I tried 5 of these CDMs and none worked. Maybe they block emulated CDMs now, either that or these are revoked already.
    Quote Quote  
  10. Originally Posted by Obo View Post
    How did you execute the script? What arguments did you pass?
    pthon3 test device_private_key device_client_id_blob

    also how can check its a revoked or not any idea ?
    Quote Quote  
  11. I've fixed the script in #29. If you want to check your CDM you should first create a .wvd file from it. Just issue

    Code:
    pywidevine create-device -t ANDROID -l 3 -k device_private_key -c device_client_id_blob -o .
    If you have your .wvd file you can then use "pywidevine test <your-wvd-file-here>" to check if it is still working or unfortunately revoked.
    Quote Quote  
  12. Originally Posted by Obo View Post
    I've fixed the script in #29. If you want to check your CDM you should first create a .wvd file from it. Just issue

    Code:
    pywidevine create-device -t ANDROID -l 3 -k device_private_key -c device_client_id_blob -o .
    If you have your .wvd file you can then use "pywidevine test <your-wvd-file-here>" to check if it is still working or unfortunately revoked.
    Thank you my friend working perfect
    Quote Quote  
  13. Originally Posted by Obo View Post
    I've fixed the script in #29. If you want to check your CDM you should first create a .wvd file from it. Just issue

    Code:
    pywidevine create-device -t ANDROID -l 3 -k device_private_key -c device_client_id_blob -o .
    If you have your .wvd file you can then use "pywidevine test <your-wvd-file-here>" to check if it is still working or unfortunately revoked.
    Is there a similar way to check for revoked cdms for other encryption platforms, like vdocipher?
    Quote Quote  
  14. Search, Learn, Download! Karoolus's Avatar
    Join Date
    Oct 2022
    Location
    Belgium
    Search Comp PM
    None of these will work for vdocipher
    Quote Quote  
  15. Originally Posted by Karoolus View Post
    None of these will work for vdocipher
    @karoolus. Thanks. I have procured a couple of physical cdms. I wanted to check if they have been revoked on vdocipher without experimenting on a real site.
    Quote Quote  
  16. A naive person
    Quote Quote  
  17. Originally Posted by Obo View Post
    I've fixed the script in #29. If you want to check your CDM you should first create a .wvd file from it. Just issue

    Code:
    pywidevine create-device -t ANDROID -l 3 -k device_private_key -c device_client_id_blob -o .
    If you have your .wvd file you can then use "pywidevine test <your-wvd-file-here>" to check if it is still working or unfortunately revoked.
    Thank you for doing this.
    Quote Quote  
  18. Search, Learn, Download! Karoolus's Avatar
    Join Date
    Oct 2022
    Location
    Belgium
    Search Comp PM
    Added new CDMs in case the ones I had already posted have been blocklisted
    Quote Quote  
  19. Originally Posted by Karoolus View Post
    Added new CDMs in case the ones I had already posted have been blocklisted
    ty 👍💯
    Quote Quote  
  20. how can i get own .wvd anyone can help me pls


    Image
    [Attachment 81861 - Click to enlarge]
    Quote Quote  
  21. Member
    Join Date
    Sep 2024
    Location
    North America
    Search Comp PM
    Originally Posted by Obo View Post
    I've fixed the script in #29. If you want to check your CDM you should first create a .wvd file from it. Just issue

    Code:
    pywidevine create-device -t ANDROID -l 3 -k device_private_key -c device_client_id_blob -o .
    If you have your .wvd file you can then use "pywidevine test <your-wvd-file-here>" to check if it is still working or unfortunately revoked.
    This command is erroring out for me after unzipping the zip file of newer 30 CDMs, picked one out of 30 at random:

    Code:
    $ pywidevine create-device -k private_key.pem -c client_id.bin -t ANDROID -l 3 -o .
    INFO:root:pywidevine version 1.8.0 Copyright (c) 2022-2024 rlaphoenix
    INFO:root:https://github.com/devine-dl/pywidevine
    Traceback (most recent call last):
      File "/home/dhinchak/code/drm/env/lib/python3.12/site-packages/pywidevine/device.py", line 113, in __init__
        raise DecodeError("partial parse")
    google.protobuf.message.DecodeError: partial parse
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "/home/dhinchak/code/drm/env/bin/pywidevine", line 10, in <module>
        sys.exit(main())
                 ^^^^^^
      File "/home/dhinchak/code/drm/env/lib/python3.12/site-packages/click/core.py", line 1157, in __call__
        return self.main(*args, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/home/dhinchak/code/drm/env/lib/python3.12/site-packages/click/core.py", line 1078, in main
        rv = self.invoke(ctx)
             ^^^^^^^^^^^^^^^^
      File "/home/dhinchak/code/drm/env/lib/python3.12/site-packages/click/core.py", line 1688, in invoke
        return _process_result(sub_ctx.command.invoke(sub_ctx))
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/home/dhinchak/code/drm/env/lib/python3.12/site-packages/click/core.py", line 1434, in invoke
        return ctx.invoke(self.callback, **ctx.params)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/home/dhinchak/code/drm/env/lib/python3.12/site-packages/click/core.py", line 783, in invoke
        return __callback(*args, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/home/dhinchak/code/drm/env/lib/python3.12/site-packages/click/decorators.py", line 33, in new_func
        return f(get_current_context(), *args, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/home/dhinchak/code/drm/env/lib/python3.12/site-packages/pywidevine/main.py", line 197, in create_device
        device = Device(
                 ^^^^^^^
      File "/home/dhinchak/code/drm/env/lib/python3.12/site-packages/pywidevine/device.py", line 115, in __init__
        raise DecodeError(f"Failed to parse client_id as a ClientIdentification, {e}")
    google.protobuf.message.DecodeError: Failed to parse client_id as a ClientIdentification, partial parse
    $
    This is happening for all 30 of them:

    Code:
    $ for DIR in `ls | grep _Android_`; do pywidevine create-device -k $DIR/private_key.pem -c $DIR/client_id.bin -t ANDROID -l 3 -o WVD; done
    < .. same error for every single one ..>
    Sounds more like there's something fundamentally wrong rather than revoked/invalid CDMs. Here's my env:

    Code:
    $ python --version
    Python 3.12.4
    $ pywidevine --version
    INFO:root:pywidevine version 1.8.0 Copyright (c) 2022-2024 rlaphoenix
    INFO:root:https://github.com/devine-dl/pywidevine
    $ uname -a
    Linux homelab 6.10.6-arch1-1 #1 SMP PREEMPT_DYNAMIC Mon, 19 Aug 2024 17:02:39 +0000 x86_64 GNU/Linux
    $
    Quote Quote  
  22. Feels Good Man 2nHxWW6GkN1l916N3ayz8HQoi's Avatar
    Join Date
    Jan 2024
    Location
    Pepe Island
    Search Comp PM
    Originally Posted by salimrz View Post
    how can i get own .wvd anyone can help me pls
    You should really start reading what other people post. The answer is in the same page of this post
    https://forum.videohelp.com/threads/413719-Ready-to-use-CDMs-available-here!/page2#post2743556
    --[----->+<]>.++++++++++++.---.--------.
    [*drm mass downloader: widefrog*]~~~[*how to make your own mass downloader: guide*]
    Quote Quote  
  23. Search, Learn, Download! Karoolus's Avatar
    Join Date
    Oct 2022
    Location
    Belgium
    Search Comp PM
    Originally Posted by dhinchak View Post
    Sounds more like there's something fundamentally wrong rather than revoked/invalid CDMs.

    Even if the CDMs were revoked, I don't think a local command would throw an error when creating the WVD.
    Quote Quote  
  24. Member
    Join Date
    Aug 2023
    Location
    Turkey
    Search Comp PM
    Originally Posted by Karoolus View Post
    Originally Posted by dhinchak View Post
    Sounds more like there's something fundamentally wrong rather than revoked/invalid CDMs.

    Even if the CDMs were revoked, I don't think a local command would throw an error when creating the WVD.
    it is so if its revoked you cant build WVD
    Quote Quote  
  25. Search, Learn, Download! Karoolus's Avatar
    Join Date
    Oct 2022
    Location
    Belgium
    Search Comp PM
    Originally Posted by senkron24 View Post
    Originally Posted by Karoolus View Post
    Originally Posted by dhinchak View Post
    Sounds more like there's something fundamentally wrong rather than revoked/invalid CDMs.

    Even if the CDMs were revoked, I don't think a local command would throw an error when creating the WVD.
    it is so if its revoked you cant build WVD

    I just tried with the revoked CDM, as reported here:
    Originally Posted by LittleSoldier View Post
    For Info :

    https://files.videohelp.com/u/303646/2760340741.zip

    This one is already revoked Karloos but anyways you've provided us with enough CDMs


    Image
    [Attachment 81915 - Click to enlarge]
    Quote Quote  
  26. Doesn't seem like it:
    Code:
    > pywidevine test .\unknown_android_sdk_built_for_x86_16.0.0_9d1ea0a0_8162_l3.wvd
    INFO:root:pywidevine version 1.8.0 Copyright (c) 2022-2024 rlaphoenix
    INFO:root:https://github.com/devine-dl/pywidevine
    INFO:license:[+] Loaded Device (8162 L3)
    INFO:license:[+] Loaded CDM
    INFO:license:[+] Opened CDM Session: 99d186497a032ed8b33bfbb97cb9e8b8
    INFO:license:[+] Created License Request Message (Challenge)
    INFO:license:[+] Got License Message
    INFO:license:[+] License Parsed Successfully
    INFO:license:[SIGNING] 00000000000000000000000000000000:bdff2a1f1f05166d942b27c0c4776f90127e7c8c18b60322f0e110db6f0b207e2587631553edbddc01999c48936aecc12032215d5cfd6a464629476a35ce2ae4
    INFO:license:[CONTENT] ccbf5fb4c2965be7aa130ffb3ba9fd73:9cc0c92044cb1d69433f5f5839a159df
    INFO:license:[CONTENT] 9bf0e9cf0d7b55aeb4b289a63bab8610:90f52fd8ca48717b21d0c2fed7a12ae1
    INFO:license:[CONTENT] eb676abbcb345e96bbcf616630f1a3da:100b6c20940f779a4589152b57d2dacb
    INFO:license:[CONTENT] 0294b9599d755de2bbf0fdca3fa5eab7:3bda2f40344c7def614227b9c0f03e26
    INFO:license:[CONTENT] 639da80cf23b55f3b8cab3f64cfa5df6:229f5f29b643e203004b30c4eaf348f4
    https://github.com/DevLARLEY
    Keys from just the License URL: WidevineFetch
    Quote Quote  
  27. Search, Learn, Download! Karoolus's Avatar
    Join Date
    Oct 2022
    Location
    Belgium
    Search Comp PM
    I didn't check, but maybe I'm too gullible..
    Quote Quote  
  28. Naah. Building a wvd from cert/pem and blob works without internet access, and thus even if the CDM is revoked, building won't fail for that reason. You can check the code. To my understanding wvd is just another format probably invented by rlaphoenix to serialize a cdm.

    If the local components even don't have knowledge of being revoked: how can building a wvd from cert/pem/blob possibly fail for that reason?
    Quote Quote  
  29. Search, Learn, Download! Karoolus's Avatar
    Join Date
    Oct 2022
    Location
    Belgium
    Search Comp PM
    That's what I thought as well. I think wvd is a concatenated version of the 2 separate files
    Quote Quote  



Similar Threads

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