VideoHelp Forum
+ Reply to Thread
Page 3 of 5
FirstFirst 1 2 3 4 5 LastLast
Results 61 to 90 of 133
Thread
  1. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    Originally Posted by Karn View Post
    @A_n_g_e_l_a

    Thank you for this tool, but more importantly to me, for the venv. It proved immensely useful for running various scripts that would otherwise conflict.

    Your program works seamlessly, however one hurdle Im unable to cross despite tinkering with it since yesterday. I can run the script only within the hellyes2 folder and vis-a-vis the env running within it. No problems there.

    I have the folder set in PATH, still if I change the directory to anywhere else, device.wvd(set in the same .py folder) stops getting detected with error:

    Code:
    Data: None
    Traceback (most recent call last):
      File "C:\Users\Desktop\allhell3.py", line 424, in <module>
        key_results = get_key(pssh, lic_url)
                      ^^^^^^^^^^^^^^^^^^^^^^
      File "C:\Users\Desktop\allhell3.py", line 166, in get_key
        device = Device.load(WVD_PATH)
                 ^^^^^^^^^^^^^^^^^^^^^
      File "C:\Desktop Tools\hellyes2\Lib\site-packages\pywidevine\device.py", line 163, in load
        with Path(path).open(mode="rb") as f:
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "C:\Users\AppData\Local\Programs\Python\Python312\Lib\pathlib.py", line 1013, in open
        return io.open(self, mode, buffering, encoding, errors, newline)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    FileNotFoundError: [Errno 2] No such file or directory: 'device.wvd'

    As a workaround, I tried to set the Descriptor file to my cdm folder via the env running pywidevine, but that too doesnt seem to work.


    Any way I can get a fix for this?
    Find the WVD_PATH in the script:-

    Image
    [Attachment 80563 - Click to enlarge]


    and edit it to the FULL path where you have placed your wvd file .

    On Windows:
    WVD_PATH = "C://Users/Karn/Decryption/Devices/my_best_CDM_ever.wvd" for example.
    On Linux:
    WVD_PATH = "/home/Karn/Decryption/Devices/my_best_CDM_ever.wvd"

    Note the paths use forward slashes even on Windows when writing scripts in Python. That was probably where you were going wrong.
    Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
    https://files.videohelp.com/u/301890/hellyes6.zip
    Quote Quote  
  2. [QUOTE=A_n_g_e_l_a;2742504]
    Originally Posted by Karn View Post

    On Windows:
    WVD_PATH = "C://Users/Karn/Decryption/Devices/my_best_CDM_ever.wvd" for example.

    Note the paths use forward slashes even on Windows when writing scripts in Python. That was probably where you were going wrong.
    Honestly? Yes

    I did however notice you added a double slash after the directory path
    Code:
    "C://Users/Karn/Decryption/Devices/my_best_CDM_ever.wvd"
    I used a single instead and it worked. Could you explain the reason for using 2 slashes?
    Quote Quote  
  3. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    Originally Posted by Karn View Post
    I used a single instead and it worked. Could you explain the reason for using 2 slashes?
    I'm not a windows user, so that and my inattention cause the // error.
    Glad you've got it working.
    Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
    https://files.videohelp.com/u/301890/hellyes6.zip
    Quote Quote  
  4. Originally Posted by A_n_g_e_l_a View Post
    Originally Posted by Karn View Post
    I used a single instead and it worked. Could you explain the reason for using 2 slashes?
    I'm not a windows user, so that and my inattention cause the // error.
    Glad you've got it working.
    Got it. Thanks a lot again.
    Quote Quote  
  5. deleted
    Last edited by darkw4v3; 12th Jul 2024 at 02:08.
    Quote Quote  
  6. Great script, really makes things easier!

    One thing I found though is it doesn't return all the keys for me - at least on max.com which is the one I tried.
    Using wvg extension I do find the keys I need, but this script only finds the one key.

    This is the output from the script (some info redacted, but you get the point):

    Code:
         __       ________
        / /  ___ / / /_  /
       / _ \/ -_) / //_ <
      /_//_/\__/_/_/____/
    
    
    A Generic L3 Downloader:
    
    For DRM content only.
    
    
    Prepare three inputs.
     1. MPD URL
     2. cURL of license server request
     3. Video name
    
    
    MPD URL? https://fly.eu.prd.media.max.com/s/eu-west-1/v1/playlist/dash/16343b8c-8a4a-4b66-9a59-a8091b1c2428/3c3df515-93b8-4410-b10a-414079529821.mpd?ps=CAQ[...snip...]
    Found pssh element: AAAA[...snip...]
    Extracted or generated PSSH: AAAA[...snip...]
    
    Paste cURL of license server request:
    And press ENTER.
    cURL is saved but not displayed.
    cURL?
    URL: https://busy.any-any.prd.api.discomax.com/drm-proxy/any/drm-proxy/drm/license/widevine?keygen=playready&drmKeyVersion=1&auth=eyJhb[...snip...]&x-wbd-tenant=beam&x-wbd-user-home-market=emea
    Method: POST
    Headers: {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0', 'Accept': '*/*', 'Accept-Language': 'en-US,en;q=0.5', 'Accept-Encoding': 'gzip, deflate, br, zstd', 'Origin': 'https://play.max.com', 'Connection': 'keep-alive', 'Referer': 'https://play.max.com/', 'Sec-Fetch-Dest': 'empty', 'Sec-Fetch-Mode': 'cors', 'Sec-Fetch-Site': 'cross-site', 'TE': 'trailers'}
    Data: None
    
    --key 01008cdcb9598130cf60da54230e5e65:14a55ee4d3d4ad395ebac3106e2bbc83
    
    Save Video as?
    Using wvg I find these keys as well, including the one I need to decrypt:

    Image
    [Attachment 80668 - Click to enlarge]


    Error on my part?
    Quote Quote  
  7. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    Originally Posted by insideoutegg View Post
    Great script, really makes things easier!

    One thing I found though is it doesn't return all the keys for me - at least on max.com which is the one I tried.
    Using wvg extension I do find the keys I need, but this script only finds the one key.

    This is the output from the script (some info redacted, but you get the point):

    Error on my part?
    In testing, if multiple keys were available the script returned them, You say you 'need' all the other keys - does my script and the single key decrypt everything?

    Never seen anyone ever redact a pssh before!
    Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
    https://files.videohelp.com/u/301890/hellyes6.zip
    Quote Quote  
  8. Originally Posted by A_n_g_e_l_a View Post
    In testing, if multiple keys were available the script returned them, You say you 'need' all the other keys - does my script and the single key decrypt everything?

    Never seen anyone ever redact a pssh before!
    I was downloading Dune Part Two, and to decrypt I needed the second key from wvg, the one ending in ...1a7.
    I tried a few different resolutions and yours decrypted none, but that one did. Only reason I found the difference between the two scripts.

    Yeah, wasn't sure exactly what could be turned into my personal information so just redacted most of it just in case. You gurus can reverse anything it seems. 😊
    Let me know what info you need from me to troubleshoot, either here or as a dm.
    Quote Quote  
  9. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    Originally Posted by insideoutegg View Post

    I was downloading Dune Part Two, and to decrypt I needed the second key from wvg, the one ending in ...1a7.
    I tried a few different resolutions and yours decrypted none, but that one did. Only reason I found the difference between the two scripts.
    Thanks. All I can say is if it plays in the browser you'll get the key(s) the browser uses. Reasons you didn't get the right key maybe the the script. It would be the first report, if so. I find that unlikely. And that statement isn't hubris, but evidence based. At the moment I'm more inclined to suspect you've mixed up mpd with a mismatched cURL.
    Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
    https://files.videohelp.com/u/301890/hellyes6.zip
    Quote Quote  
  10. Originally Posted by A_n_g_e_l_a View Post
    Thanks. All I can say is if it plays in the browser you'll get the key(s) the browser uses. Reasons you didn't get the right key maybe the the script. It would be the first report, if so. I find that unlikely. And that statement isn't hubris, but evidence based. At the moment I'm more inclined to suspect you've mixed up mpd with a mismatched cURL.
    Yeah, probably an error on my part. Not sure where though.
    Here's some non-redacted output.

    PSSH seems to match between the two scripts:
    WVG -> "Select" PSSH:
    Image
    [Attachment 80703 - Click to enlarge]


    and output from script:
    Code:
    MPD URL? https://akm.eu.prd.media.max.com/s/eu-west-1/v1/playlist/dash/0fd0c2c4-7a75-4c81-bbe9-36eb64d30b18/3c3df515-93b8-4410-b10a-414079529821.mpd?ps=CAQSATEaE21zLlZvZFBsYXliYWNrU3RhdGUi9QMotS_9YCQDXQ8AdpxeNmBL2gZQEAQAJekwDMNguWm3WGuRu1-okUyZFpySVzVJEPpD1Jhto0YmrS1bomgcBdgT30ugsU4AUABKAEtmWYoLq6xrfBbvFSu07xN4vpVdKVqvCEhDQgJu-CzYVWKB3V89-E4jaHSs23TAL9kq2-6oDklhm7RsHf1l83o17Ju02uGQ2OveSoCGh60ukMZhHNMgTiTyJo23K-atLoyLNK-6HikwEdO8W1HxF0y6QXX7npodAUbZswIBzPo9Zm1asnmbAVcKy9IqAYHvRSFNS2K1ilO7paQ7-dumL707e_6dLE4z7pfPLllghxN8M1Kx0lYXv2RziYEcZKJR4Br9tGMcB0WPi7i7Jf4H5PADvWNvyHz0_Lv2pzhbvhlbtrq451RWvBUKhOIQQKIwHGBgeL0Ye2anmcRSAxbvTP3ORONwzONAYD_gA5JYepyIvyMPR-6ZeIo4qGkibx4eLJQLGzI4VHAKA4AzQKCAwoBYvPtWbckvacX1LSY7LyCAQmZzDPojhEtoXj8AUw7jK2MegnglrJqefNuERMSQG_bEKIssAjJeKOMVuZbvMhYHLhxEdx1MuXm0D7GMxYGFC64vIDyocwEHSgfXpPEJQXhwu4NZyLdpwX8gPhDLhKxjfZ2lBngDOguWBTM=&ctx=CgRiZWFtEjBVU0VSSUQ6Ym9sdDo4OWJhYTFiMy00YmNiLTRhNDEtOWI3MS05MWQxMDA0Y2U2OTMaJDRjMTBjMWQwLWRmOGUtNGE4My1iMDZhLTM1MDhhZDFkNThjOCIkMGZkMGMyYzQtN2E3NS00YzgxLWJiZTktMzZlYjY0ZDMwYjE4KiQzYzNkZjUxNS05M2I4LTQ0MTAtYjEwYS00MTQwNzk1Mjk4MjEyDTE4NS4xMTIuMTEyLjY6UE1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQ7IHJ2OjEyOC4wKSBHZWNrby8yMDEwMDEwMSBGaXJlZm94LzEyOC4wQgsI5ObLtAYQopyAQ0gDYgN3ZWJqBERBU0hyDkR1bmU6IFBhcnQgVHdvegN3ZWKCAQJTRYoBBGVtZWGQAQegAQE=
    Found pssh element: AAAAOHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABgSEAEAjNy5WYEwz2DaVCMOXmVI49yVmwY=
    Extracted or generated PSSH: AAAAOHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABgSEAEAjNy5WYEwz2DaVCMOXmVI49yVmwY=
    So mpd seems correct?


    I'm not sure how to troubleshoot the cURL part. Tips on what could be the culprit?

    I tried both with allhell3 in Firefox and Chrome, and just hell3 inside Firefox. Same results - just the one key.

    In devtools I find two links for license, URL is the same as with WVG, so I guess I have the correct URL as well?

    Image
    [Attachment 80706 - Click to enlarge]

    Image
    [Attachment 80704 - Click to enlarge]


    Difference of the two seems to be one contains "TE: trailers" in headers and has more data/payload.

    I tried to copy value -> cURL (Posix) on both of them, same result - the key ending in ...c83.

    I do see that data is set to None, could that be an issue?
    Code:
    Paste cURL of license server request:
    And press ENTER.
    cURL is saved but not displayed.
    cURL?
    URL: https://busy.any-any.prd.api.discomax.com/drm-proxy/any/drm-proxy/drm/license/widevine?keygen=playready&drmKeyVersion=1&auth=<let me know if you need this one, this seems good to redact ;)>&x-wbd-tenant=beam&x-wbd-user-home-market=emea
    Method: POST
    Headers: {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0', 'Accept': '*/*', 'Accept-Language': 'en-US,en;q=0.5', 'Accept-Encoding': 'gzip, deflate, br, zstd', 'Origin': 'https://play.max.com', 'Connection': 'keep-alive', 'Referer': 'https://play.max.com/', 'Sec-Fetch-Dest': 'empty', 'Sec-Fetch-Mode': 'cors', 'Sec-Fetch-Site': 'cross-site'}
    Data: None
    Is that good, bad, or not relevant?

    Couldn't figure out if the extension sends data or not when finding the keys, js and python mixed is new to me unfortunately.

    Recorded a small clip of my process just to make sure I didn't miss a step somewhere as well, see attached.
    (edited hell3.py to sys.exit after printing key results, that's why it stops, otherwise original script)
    Image Attached Files
    Quote Quote  
  11. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    Originally Posted by insideoutegg View Post
    Is that good, bad, or not relevant?
    Well, the fact that the script completes and provides keys really means the script is doing what the script should do. So not too relevant.
    Originally Posted by insideoutegg View Post
    original script)
    Technically the script waits for a key or for many keys. The fact it only gives you one says to me only one was issued.

    The question is why should that be so? In all honesty I have no idea. I have read here, on VH, of sites giving the wrong keys when they 'quietly reject' a CDM.
    Hell3.py and allhelll3.py use the same CDM. And there are many hundreds of users all demanding keys with the same old CDM taken from a Virtual Android Device.

    here is a simple l3.py with inbuilt debug phrases.

    Code:
    import logging
    from pywidevine.cdm import Cdm
    from pywidevine.device import Device
    from pywidevine.pssh import PSSH
    import httpx
    from headers import headers
    
    logging.basicConfig(level=logging.DEBUG)
    logger = logging.getLogger(__name__)
    
    ####################
    #BE SURE TO EDIT THIS!!!!! 
    ####################
    WVD_PATH = "<path to your>/device.wvd"
    
    
    
    def get_key(pssh, license_url):
        logger.debug("Loading device...")
        device = Device.load(WVD_PATH)
        cdm = Cdm.from_device(device)
        session_id = cdm.open()
        logger.debug("Session opened...")
    
        challenge = cdm.get_license_challenge(session_id, PSSH(pssh))
        response = httpx.post(license_url, data=challenge, headers=headers)
        cdm.parse_license(session_id, response.content)
    
        keys = []
        logger.debug("Retrieving keys...")
        for key in cdm.get_keys(session_id):
            logger.debug(f"Key found: {key.kid.hex}:{key.key.hex()}, Type: {key.type}")
            if key.type == 'CONTENT':
                keys.append(f"--key {key.kid.hex}:{key.key.hex()}")
    
        cdm.close(session_id)
        logger.debug("Session closed...")
        return "\n".join(keys)
    
    if __name__ == "__main__":
        pssh_str = input("PSSH? ")
        lic_url = input("License URL? ")
        result = get_key(pssh_str, lic_url)
        logger.debug("Result:")
        print(result)
    Copy and paste the above script into the same folder as hell3.py call it l3debug.py. It will need an edit to point to the CDM .
    Code:
    WVD_PATH = "./device.wvd"
    L3debug needs a separate headers.py file also to be created by you.
    Take the cURL of your video page license and go to curlconvverter.com and paste it there.
    Partially copy the transform, the bit that says headers= {...........} into a new file.
    Call it headers.py.
    This is just normal l3.py stuff which I'm probably teaching you to suck eggs with.

    Use your pssh found from hell3 and the license URL with l3debug.py that should give you the same keys as hell3. If that gives you the same result then it makes the CDM suspect. But still suspect only - not yet proven. But post any debug information that look useful.

    You've been using hell3 and firefox - you haven't said which browser you use with WVG - is that Chrome? If it is, then the game changes again. It is known for some CDN to provide Chrome with better resolutions for video. And it could be that a WVG on Chrome returns a key for each resolution whereas a non-chrome CDM does not. To check use N_M3u8DL-RE and test the single key you've found against all resolutions that ~RE finds. Maybe one works?

    EDIT: I've looked back at some testing results and a tester reported
    DL ok for Max, resolution 720p with L3 - they do 1080p and 4K but its L1 CDM
    (And Android app endpoints needed to fetch 4K)
    So my guess is you've got keys for 720p and that sort of confirms the Chrome theory.
    Last edited by A_n_g_e_l_a; 14th Jul 2024 at 06:28.
    Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
    https://files.videohelp.com/u/301890/hellyes6.zip
    Quote Quote  
  12. Originally Posted by A_n_g_e_l_a View Post
    Use your pssh found from hell3 and the license URL with l3debug.py that should give you the same keys as hell3. If that gives you the same result then it makes the CDM suspect. But still suspect only - not yet proven. But post any debug information that look useful.
    Tried it, same results.
    Tested with your device.wvd from the zip and my own CDM, the one I use for the extension.
    Also tried your CDM in WVG, still gets more keys and this script only one.
    Code:
    (.venv) HellYes2 > python .\l3debug.py
    PSSH? AAAAOHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABgSEAEAjNy5WYEwz2DaVCMOXmVI49yVmwY=
    License URL? https://busy.any-any.prd.api.discomax.com/drm-proxy/any/drm-proxy/drm/license/widevine?keygen=playready&drmKeyVersion=1&auth=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHBpcmF0aW9uVGltZSI6IjIwMjQtMDctMTRUMjA6NTU6MzYuNDcyMzg5Mzc0WiIsImVkaXRJZCI6IjNjM2RmNTE1LTkzYjgtNDQxMC1iMTBhLTQxNDA3OTUyOTgyMSIsImFwcEJ1bmRsZSI6ImJlYW0iLCJwbGF0Zm9ybSI6IndlYiIsInVzZXJJZCI6IlVTRVJJRDpib2x0Ojg5YmFhMWIzLTRiY2ItNGE0MS05YjcxLTkxZDEwMDRjZTY5MyIsInByb2ZpbGVJZCI6IlBST0ZJTEVJRDRjMDcyYTYwLWJlNjItNDg0Zi1hZWNiLWRmOTYyZjM5MmU1OCIsImRldmljZUlkIjoiYWU3MmY0ZjctN2M3My00MDRjLTg0MGEtY2RkNGMyNjBmMjk2Iiwic3NhaSI6dHJ1ZSwic3RyZWFtVHlwZSI6InZvZCJ9.a4zWfUhBYk8_xiNmIW9sJ1SIfjlQ4gOpNWbSN4_8xp8&x-wbd-tenant=beam&x-wbd-user-home-market=emea
    DEBUG:__main__:Loading device...
    DEBUG:__main__:Session opened...
    DEBUG:httpx:load_ssl_context verify=True cert=None trust_env=True http2=False
    DEBUG:httpx:load_verify_locations cafile='C:\\Users\\Thomas\\Desktop\\streamdl\\HellYes2\\.venv\\lib\\site-packages\\certifi\\cacert.pem'
    DEBUG:httpcore.connection:connect_tcp.started host='busy.any-any.prd.api.discomax.com' port=443 local_address=None timeout=5.0 socket_options=None
    DEBUG:httpcore.connection:connect_tcp.complete return_value=<httpcore._backends.sync.SyncStream object at 0x00000229E7662C20>
    DEBUG:httpcore.connection:start_tls.started ssl_context=<ssl.SSLContext object at 0x00000229E75269C0> server_hostname='busy.any-any.prd.api.discomax.com' timeout=5.0
    DEBUG:httpcore.connection:start_tls.complete return_value=<httpcore._backends.sync.SyncStream object at 0x00000229E7662BF0>
    DEBUG:httpcore.http11:send_request_headers.started request=<Request [b'POST']>
    DEBUG:httpcore.http11:send_request_headers.complete
    DEBUG:httpcore.http11:send_request_body.started request=<Request [b'POST']>
    DEBUG:httpcore.http11:send_request_body.complete
    DEBUG:httpcore.http11:receive_response_headers.started request=<Request [b'POST']>
    DEBUG:httpcore.http11:receive_response_headers.complete return_value=(b'HTTP/1.1', 200, b'OK', [(b'Date', b'Sun, 14 Jul 2024 15:05:23 GMT'), (b'Content-Type', b'application/octet-stream'), (b'Content-Length', b'673'), (b'Connection', b'keep-alive'), (b'access-control-allow-credentials', b'true'), (b'access-control-allow-methods', b'OPTIONS, POST'), (b'access-control-allow-origin', b'https://play.max.com'), (b'x-b3-spanid', b'981e32f3290195d4'), (b'x-b3-traceid', b'5f6233a5a16159e849a6ae35972aa810'), (b'access-control-expose-headers', b'x-wbd-session-state,x-wbd-refresh,x-wbd-ace,date,x-wbd-transport')])
    INFO:httpx:HTTP Request: POST https://busy.any-any.prd.api.discomax.com/drm-proxy/any/drm-proxy/drm/license/widevine?keygen=playready&drmKeyVersion=1&auth=eY...&x-wbd-tenant=beam&x-wbd-user-home-market=emea "HTTP/1.1 200 OK"
    DEBUG:httpcore.http11:receive_response_body.started request=<Request [b'POST']>
    DEBUG:httpcore.http11:receive_response_body.complete
    DEBUG:httpcore.http11:response_closed.started
    DEBUG:httpcore.http11:response_closed.complete
    DEBUG:httpcore.connection:close.started
    DEBUG:httpcore.connection:close.complete
    DEBUG:__main__:Retrieving keys...
    DEBUG:__main__:Key found: 00000000000000000000000000000000:efde5857e22a6369a501c7acc8ea70ae5523f1f5ff5e8c9634be6492bf7dd1b9f3dac7975715904ed01b360c9264072c4d1cb7d5148bffef698a55385bc053f7, Type: SIGNING
    DEBUG:__main__:Key found: 01008cdcb9598130cf60da54230e5e65:14a55ee4d3d4ad395ebac3106e2bbc83, Type: CONTENT
    DEBUG:__main__:Session closed...
    DEBUG:__main__:Result:
    --key 01008cdcb9598130cf60da54230e5e65:14a55ee4d3d4ad395ebac3106e2bbc83
    (.venv) HellYes2 >
    Originally Posted by A_n_g_e_l_a View Post
    You've been using hell3 and firefox - you haven't said which browser you use with WVG - is that Chrome? If it is, then the game changes again. It is known for some CDN to provide Chrome with better resolutions for video. And it could be that a WVG on Chrome returns a key for each resolution whereas a non-chrome CDM does not. To check use N_M3u8DL-RE and test the single key you've found against all resolutions that ~RE finds. Maybe one works?
    I used Firefox for both WVG and hell3 since that's where they both work best (and most scripts and guides by you and others are written for it).
    I myself use Chrome as my daily driver, so my Firefox instance is a fresh install with nothing but that extension (temporary install as per github instructions) and the only site visited is Max.

    I'll try to download all resolutions and see if the key decrypts one of them.
    Will report back with results.

    Originally Posted by A_n_g_e_l_a View Post
    EDIT: I've looked back at some testing results and a tester reported
    DL ok for Max, resolution 720p with L3 - they do 1080p and 4K but its L1 CDM
    (And Android app endpoints needed to fetch 4K)
    So my guess is you've got keys for 720p and that sort of confirms the Chrome theory.
    Yeah, also found that 1080p and up is L1, so only tried 720p and below.

    Edit: Test results are in:
    I downloaded all video resolutions up to 720p.
    Code:
    Key 01008cdcb9598130cf60da54230e5e65:14a55ee4d3d4ad395ebac3106e2bbc83 : nothing decrypted
    Key 0101a7fbee818b8d92348fd71cd47d16:aa92f78586ea9296cfffe29a5d3c01a7 : all resolutions decrypted
    Key 0102190f76823bc3fc58ba72b5bc812b:078d3e3ec14c78de3e423213af84ea07 : nothing decrypted
    Last edited by insideoutegg; 14th Jul 2024 at 11:10. Reason: Test results
    Quote Quote  
  13. Angela thank you for this tool!

    I'm struggling to enter the cURL, I'm getting a key symbol. Do you know what the problem could be? I'm trying to get a video from Showmax which uses similar security to Peacock
    Image Attached Thumbnails Click image for larger version

Name:	Screenshot 2024-07-15 at 1.29.09 AM.png
Views:	21
Size:	426.3 KB
ID:	80732  

    Quote Quote  
  14. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    Originally Posted by insideoutegg View Post

    Edit: Test results are in:
    I downloaded all video resolutions up to 720p.
    Code:
    Key 01008cdcb9598130cf60da54230e5e65:14a55ee4d3d4ad395ebac3106e2bbc83 : nothing decrypted
    Key 0101a7fbee818b8d92348fd71cd47d16:aa92f78586ea9296cfffe29a5d3c01a7 : all resolutions decrypted
    Key 0102190f76823bc3fc58ba72b5bc812b:078d3e3ec14c78de3e423213af84ea07 : nothing decrypted
    I've absolutely no idea what is going on! If you find out please report back!
    Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
    https://files.videohelp.com/u/301890/hellyes6.zip
    Quote Quote  
  15. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    Originally Posted by candy8kane View Post
    Angela thank you for this tool!

    I'm struggling to enter the cURL, I'm getting a key symbol. Do you know what the problem could be? I'm trying to get a video from Showmax which uses similar security to Peacock
    On windows use Terminal App from MS Playstore. On home versions of windows scripts sometimes get blocked by an operating system eager to stop its users doing things of value.

    Information was in start html.
    Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
    https://files.videohelp.com/u/301890/hellyes6.zip
    Quote Quote  
  16. Originally Posted by candy8kane View Post
    Angela thank you for this tool!

    I'm struggling to enter the cURL, I'm getting a key symbol. Do you know what the problem could be? I'm trying to get a video from Showmax which uses similar security to Peacock
    ⌘+V then press ⏎

    The script (hell3.py) works fine on macOS.

    For the script allhell3.py you need to press ⌘+V then press CTRL+D (just like in Linux)
    Last edited by kruglianin; 14th Jul 2024 at 12:45.
    Quote Quote  
  17. Originally Posted by A_n_g_e_l_a View Post
    Originally Posted by insideoutegg View Post

    Edit: Test results are in:
    I downloaded all video resolutions up to 720p.
    Code:
    Key 01008cdcb9598130cf60da54230e5e65:14a55ee4d3d4ad395ebac3106e2bbc83 : nothing decrypted
    Key 0101a7fbee818b8d92348fd71cd47d16:aa92f78586ea9296cfffe29a5d3c01a7 : all resolutions decrypted
    Key 0102190f76823bc3fc58ba72b5bc812b:078d3e3ec14c78de3e423213af84ea07 : nothing decrypted
    I've absolutely no idea what is going on! If you find out please report back!
    Will do. Thanks for looking into it!
    Quote Quote  
  18. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    Originally Posted by insideoutegg View Post

    Will do. Thanks for looking into it!
    My mind still is turning this one around a bit and another thought just came. We are not comparing like with like. Your WVG is on Chrome; your hell3 takes instruction from Firefox.

    Coul you use allhell3.py in my signature and take the mpd and cURL from Chrome and see what happens?
    Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
    https://files.videohelp.com/u/301890/hellyes6.zip
    Quote Quote  
  19. Originally Posted by A_n_g_e_l_a View Post
    My mind still is turning this one around a bit and another thought just came. We are not comparing like with like. Your WVG is on Chrome; your hell3 takes instruction from Firefox.

    Coul you use allhell3.py in my signature and take the mpd and cURL from Chrome and see what happens?
    No, it is in fact like with like.
    Like I said, I do normally use Chrome but to rule that out (and because WVG worked better on Firefox) I took Chrome out of the equation.

    All tests done now are on Firefox, in the same window, session and tab in a fresh install with only WVG installed (temporarily).

    I did however test in Chrome again just now, same result unfortunately. Again - script edited with a sys.exit after key print:
    Code:
    (.venv) HellYes2 > python .\allhell3.py
         __       ________
        / /  ___ / / /_  /
       / _ \/ -_) / //_ <
      /_//_/\__/_/_/____/
    
    
    A Generic L3 Downloader:
    
    For DRM content only.
    
    !!This version is for ALL browsers!!.
    
    
    Prepare three inputs.
     1. MPD URL
     2. cURL of license server request
     3. Video name
    
    
    MPD URL? https://gcp.eu.prd.media.max.com/s/eu-central-1/v1/playlist/dash/a32195c0-2db2-4de2-8684-10b4d0309806/3c3df515-93b8-4410-b10a-414079529821.mpd?ps=CAQSATEaE21zLlZvZFBsYXliYWNrU3RhdGUi2gUotS_9YGcFhRYApu6ON1BN2gYwLaMqxqgro-qKqqqq_7BuyW5C2mxmd6aUuLBxS_5lpQZ52d3dXtm2GeUG4PU5bsPNbA-LAIEAewBUBOL8g4uOcH1qHgI1heo8DWlgUCf97kwU65hAVEPgayGZomthAlOSBYUkT3Ujjm2fIJS6eEqxjolkspCqyNQofuJQknPr9H6BoZ-evpDoSgsiRYUG3LWR1L4WHLX7I019jxZEjletWAUuPUpkal_u8kRVuehHacf_UfxKSvWKVCHLUjFJFBUREKIRjQkSDA4twQEEjAkCEg31ktsP_xNF-P5UPf20oaCGnrpweDTh_ufZaQb2amsDORDnRsp1uPQoThds8cEcNIp-3ZZrUL4mubspPwMdP_iNvet6-b6hprcO1E8DOf0o19Eajx4NL1GuIzK32lKim7OBIofqW7lyHatN1kQodzAsuVgT8vFr77k5-j3hL2mdwQdbqNfmsTFMrM_0eXO3fSztdPyrVmY62UEEiAEARjTGROWBvre7B1ssY2qd1qczDFtWKc9mH09LIdMIGf9VWUOCBGPDhwm_ElfP7NGkYoIUkKgPIWOPtcD5pqOxZWSNq0PJHf2xy8gYrmkpc84CDAKMAQEq6nLrH2xpbrJejTFMnUyZa17UHzsXH9um1J82a0iIrsSMqamfp4qZDMhnvPZjLU96tLApdCbybNjcUz7udgzPxdDIVMcaGBasv9xjLXJ6jfGhU8k4uiWZWfExjW7xN1vjZLTysOKEcsb3sVrY6DdT7z4gkMJUZBv8BOB16fL69wBbWPUyStBCXila8IpbFOuqUF9g13uKTq5GbPmRTEVoGiMAAw7jK2Mehng9rDI9sbYJiYghR9gToyxkUZLxQhmvybV8lbF84Pogu-tgyY2jcQhkLB5YXnB9AelBvQt4oHxwTRofIcgObmMwC_LtLfgXxAdiuZB1r69nqQ3e4M6CZcYM&ctx=CgRiZWFtEjBVU0VSSUQ6Ym9sdDo4OWJhYTFiMy00YmNiLTRhNDEtOWI3MS05MWQxMDA0Y2U2OTMaJDAzNDUwMjY4LWFmMWEtNDI0OC1hNzFhLWM3MjYwZWFlMTliOCIkYTMyMTk1YzAtMmRiMi00ZGUyLTg2ODQtMTBiNGQwMzA5ODA2KiQzYzNkZjUxNS05M2I4LTQ0MTAtYjEwYS00MTQwNzk1Mjk4MjEyDTE4NS4xMTIuMTEyLjY6b01vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xMjYuMC4wLjAgU2FmYXJpLzUzNy4zNkIMCI3k07QGEKixopIDSANiA3dlYmoEREFTSHIORHVuZTogUGFydCBUd296A3dlYoIBAlNFigEEZW1lYZABB6ABAQ==
    Found pssh element: AAAAOHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABgSEAEAjNy5WYEwz2DaVCMOXmVI49yVmwY=
    Extracted or generated PSSH: AAAAOHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABgSEAEAjNy5WYEwz2DaVCMOXmVI49yVmwY=
    Next.
    1. Paste your cURL of license request.
    2. Press Ctrl-D (Linux) or Ctrl-Z (Windows) to save it.
    cURL?
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    URL: https://busy.any-any.prd.api.discomax.com/drm-proxy/any/drm-proxy/drm/license/widevine?keygen=playready&drmKeyVersion=1&auth=ey...&x-wbd-tenant=beam&x-wbd-user-home-market=emea
    Method: UNDEFINED
    Headers: {'accept': '*/*', 'accept-language': 'sv,en;q=0.9', 'dnt': '1', 'origin': 'https://play.max.com', 'priority': 'u=1, i', 'referer': 'https://play.max.com/', 'sec-ch-ua': '"Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': '"Windows"', 'sec-fetch-dest': 'empty', 'sec-fetch-mode': 'cors', 'sec-fetch-site': 'cross-site', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36'}
    Data: None
    
    --key 01008cdcb9598130cf60da54230e5e65:14a55ee4d3d4ad395ebac3106e2bbc83
    
    (.venv) HellYes2 >
    I see method is UNDEFINED, not sure that matters.
    Data is still None.

    Edit: WVG gave me all keys in Chrome as well, btw.

    I'm gonna look into the WVG extension when I have time, and see if I can get it to log to console, a file or something else to see if anything stands out.
    Need to read up a bit on JS, pyodide and stuff first. Time to learn.
    Quote Quote  
  20. I was wondering why the script produces a lot of blank lines/pages between pressing ctrl-z and the keys.
    Quote Quote  
  21. Originally Posted by A_n_g_e_l_a View Post
    Sites that use one-time-only tokens

    If a site uses a one-time-only token then the browser uses it up. In normal use, that is.

    However, in the browser there is a menu item in the Web-Tools window, (shift+ctrl+c), under the network tab, that allows you to disable a particular request for a url. So if you allow the browser to load properly once, find the url for the license and then block it requesting, then Ctrl+R to reload the page, it will deliver you a license url with an unused token. Allhell3.py will work in these circumstances BUT ONLY with your own CDM. The one in the kit is an emulated CDM and will not work on heavily protected sites.

    For those boys that always assume that when a script does not work, it must be the fault of the script, kindly think again!

    For this script, technically there is absolutely no difference in the manner the script presents requests to the license server from the way the browser does. If it works in your browser, whether with or without subscription or sign-in, then it will work in the script.

    It will only fail because of operator error. Your error! Just remember that before you post.

    (I posted most of this in another thread; it seems more useful here)
    Hello, A_n_g_e_l_a.
    Thank you so much for the script!
    The script has never let me down.

    I decided to return to the topic with a one-time token.
    I had the opportunity to dump a couple of new CDMs.
    I decided to check out the first CDM.
    I blocked the license URL and received a new token.
    I suspect that this method may not be universal for my site.
    With all due respect to you.

    If possible I am willing to provide a new CDM from a real device to PM.
    I dumped 3 new ones today.
    Thanks in advance!
    Last edited by kruglianin; 16th Jul 2024 at 23:38.
    Quote Quote  
  22. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    Originally Posted by Spectrumhsm View Post
    I was wondering why the script produces a lot of blank lines/pages between pressing ctrl-z and the keys.
    Oh.
    Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
    https://files.videohelp.com/u/301890/hellyes6.zip
    Quote Quote  
  23. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    Originally Posted by kruglianin View Post
    I remember that you said that all the problems are only on the operator’s side, I just wanted to ask, maybe you will have the opportunity to check the script on this site?
    With vdocipher all bets are off. Possibly a time limited token? Token is issued; clock starts; you fumble around capturing mpd and cURL; clock times out before you can paste anything. Whatever you do from now will fail.
    Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
    https://files.videohelp.com/u/301890/hellyes6.zip
    Quote Quote  
  24. Originally Posted by A_n_g_e_l_a View Post
    Originally Posted by kruglianin View Post
    I remember that you said that all the problems are only on the operator’s side, I just wanted to ask, maybe you will have the opportunity to check the script on this site?
    With vdocipher all bets are off. Possibly a time limited token? Token is issued; clock starts; you fumble around capturing mpd and cURL; clock times out before you can paste anything. Whatever you do from now will fail.
    Thanks for answers.
    I also think about the token and its short life.

    I wanted to clarify one more point. I saw messages in topics where they noted that the token is not always visible in Firefox.
    Here are 2 screenshots of the license being blocked.
    The difference between them is 2 seconds.
    Image
    [Attachment 80750 - Click to enlarge]

    After the second request, the token no longer appears for me.
    Image
    [Attachment 80751 - Click to enlarge]

    Google Chrome token is updated constantly.
    Do you know what this might be connected with?
    Quote Quote  
  25. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    Originally Posted by kruglianin View Post

    Thanks for answers.
    I also think about the token and its short life.

    I wanted to clarify one more point. I saw messages in topics where they noted that the token is not always visible in Firefox.
    Here are 2 screenshots of the license being blocked.
    The difference between them is 2 seconds.
    Do you know what this might be connected with?
    Well to make something appear and then disappear will be happening because of a javascript routine, the page has loaded, rewriting the the display. There is no human interactive way around that.


    I note from vdocipher.com in part of their PR they say:-
    Backend Licensing, Geo, Time, Domain, Authentication Restrictions
    Our backend authentication system keeps your videos safe from the downloader plugins and hacks. Restrict access to a particular Geo/IP. Stop playback on emulators, rooted devices & duplicate apps on mobile
    So they are clearly working very hard to keep you away. These sort of sites need a specialist script.
    Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
    https://files.videohelp.com/u/301890/hellyes6.zip
    Quote Quote  
  26. Originally Posted by A_n_g_e_l_a View Post
    Originally Posted by kruglianin View Post

    Thanks for answers.
    I also think about the token and its short life.

    I wanted to clarify one more point. I saw messages in topics where they noted that the token is not always visible in Firefox.
    Here are 2 screenshots of the license being blocked.
    The difference between them is 2 seconds.
    Do you know what this might be connected with?
    Well to make something appear and then disappear will be happening because of a javascript routine, the page has loaded, rewriting the the display. There is no human interactive way around that.


    I note from vdocipher.com in part of their PR they say:-
    Backend Licensing, Geo, Time, Domain, Authentication Restrictions
    Our backend authentication system keeps your videos safe from the downloader plugins and hacks. Restrict access to a particular Geo/IP. Stop playback on emulators, rooted devices & duplicate apps on mobile
    So they are clearly working very hard to keep you away. These sort of sites need a specialist script.
    Thank you for your responses!
    I really appreciate it.
    Once again I want to thank you for your script.
    All at the highest level!
    Quote Quote  
  27. Hello @A_n_g_e_l_a
    Thank You for a wonderful script, I was curious, Is there a m3u8 version of this script?
    Quote Quote  
  28. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    Originally Posted by Spectrumhsm View Post
    I was wondering why the script produces a lot of blank lines/pages between pressing ctrl-z and the keys.
    I now have time to flesh out my initial - 'oh' - surprised response to your question.

    Firefox produces a curl that has no return characters and is all on one line.
    PHP Code:
    curl 'https://widevine.entitlement.eu.theplatform.com/wv/web/ModularDrm?token=eyJhbGciOiJSUzUxMiJ9.eyJzdWIiOiJydGUtcHJkLXByZC10cnQvYW5vbnltb3VzX25ncnBfcGxheWVyQHJ0ZS5pZSIsImlzcyI6IjEiLCJleHAiOjE3MTk1ODUzNTUsImlhdCI6MTcxOTQ5ODk1NTYwMywianRpIjoiYTQzMGE0NDktYTFlNy00MDMxLWIwZjgtNWY4Mjk1NGUzYmJlIiwiZGlkIjoicnRlLXByZC1wcmQtdHJ0IiwidW5tIjoiYW5vbnltb3VzX25ncnBfcGxheWVyQHJ0ZS5pZSIsImN0eCI6IntcInVzZXJOYW1lXCI6XCJhbm9ueW1vdXNfbmdycF9wbGF5ZXJAcnRlLmllXCJ9XG4iLCJvaWQiOiIyNzAwODk0MDAxIn0.efgp5-MNK1Hh9MVZ0M3XlzTumf1JdBF_e2vm3n-lQBFO-wt4zeabY3xW6F-MKfXCMD3PHgschfH-MEO0LqOqFTiFgewu456K2rAUDTYcEZhvu1O6mJ24EY-IiPeF_DGYqmyaIwdB1zq_UCwCh_9RSh2fti7OemF-n83iHdA4NqlgU5P1QRl3hPxNNHyiyFYFh81HIdeI7NheVjCrqNlP-Ve5z3Vlv8NlkcC3I7Jgcl1Bp6r54_ndyUbpSAAf-COEevBLn2x0VmUXZgg15dFSt-9YAZxelZMijrpXfHXV3EkuDUY5iP5u0kmIkElv44SRQVHCmQIIQYsdkEk8iRQTwg&account=http%3A%2F%2Faccess.auth.theplatform.com%2Fdata%2FAccount%2F2700894001&form=json&schema=1.0' -X POST -'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:127.0) Gecko/20100101 Firefox/127.0' -'Accept: */*' -'Accept-Language: en-GB,en;q=0.5' -'Accept-Encoding: gzip, deflate, br, zstd' -'content-type: text/plain;charset=UTF-8' -'Origin: https://www.rte.ie' -'DNT: 1' -'Connection: keep-alive' -'Sec-Fetch-Dest: empty' -'Sec-Fetch-Mode: cors' -'Sec-Fetch-Site: cross-site' -'Priority: u=4' --data-raw '{"getWidevineLicense":{"releasePid":"54ndDGZryAC4","widevineChallenge":"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"}}' 
    Chrome produces a response over many lines with return characters like this
    PHP Code:
    curl 'https://widevine.entitlement.eu.theplatform.com/wv/web/ModularDrm?token=eyJhbGciOiJSUzUxMiJ9.eyJzdWIiOiJydGUtcHJkLXByZC10cnQvYW5vbnltb3VzX25ncnBfcGxheWVyQHJ0ZS5pZSIsImlzcyI6IjEiLCJleHAiOjE3MjEyOTk0MDEsImlhdCI6MTcyMTIxMzAwMTY3NCwianRpIjoiNDI0MGZlNjMtZjU1Mi00MjJjLTljYTktOTIxMDg5MDI5NGZkIiwiZGlkIjoicnRlLXByZC1wcmQtdHJ0IiwidW5tIjoiYW5vbnltb3VzX25ncnBfcGxheWVyQHJ0ZS5pZSIsImN0eCI6IntcInVzZXJOYW1lXCI6XCJhbm9ueW1vdXNfbmdycF9wbGF5ZXJAcnRlLmllXCJ9XG4iLCJvaWQiOiIyNzAwODk0MDAxIn0.LtahoMle3v-CBnQQazg5wpOMHa6ogS25QvupT_e-huTgcTGhQdKglSpXXbd7P-0bcJrSnN3UNWaN9KfiHHO5suLJAca7HI41Zfip5w3SLcR72Hm0rwzC9gu06-TJxBjXaU7eaIa1gUtkN6wNnW7hL-NJzsLrtwmPxaClV_swHRpCpjoGJWV1K5mHMr3QKAve8mBPLJbd389kjPOOsRgt04G2DOAXF9RQPihfnAI__vDkK1lTq3Hly7fUzNvGh7jUHIdnnax7gPpRaXdej23QAdSZlka4vQPhGKnMkQCM6Z-Icm07Kv3az0B1oy6dAOLuGgfnk1xN3nBwjmJJZG72nA&account=http%3A%2F%2Faccess.auth.theplatform.com%2Fdata%2FAccount%2F2700894001&form=json&schema=1.0' \
      -
    'accept: */*' \
      -
    'accept-language: en-GB,en-US;q=0.9,en;q=0.8' \
      -
    'dnt: 1' \
      -
    'origin: https://www.rte.ie' \
      -
    'priority: u=1, i' \
      -
    'sec-ch-ua: "Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"' \
      -
    'sec-ch-ua-mobile: ?0' \
      -
    'sec-ch-ua-platform: "Linux"' \
      -
    'sec-fetch-dest: empty' \
      -
    'sec-fetch-mode: cors' \
      -
    'sec-fetch-site: cross-site' \
      -
    'user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36' \
      --
    data-raw '{"getWidevineLicense":{"releasePid":"UoN1PWv_MivE","widevineChallenge":"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"}}' 
    Despite telling the terminal not to print to screen the reaction to a new line character is, seemingly, an unwanted-artifact produced by def getch() in the code. Hope this helps. The blank lines have never worried me; function is more important than form; and most importantly, the code works.
    Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
    https://files.videohelp.com/u/301890/hellyes6.zip
    Quote Quote  
  29. Despite telling the terminal not to print to screen the reaction to a new line character is, seemingly, an unwanted-artifact produced by def getch() in the code. Hope this helps. The blank lines have never worried me; function is more important than form; and most importantly, the code works.
    Thanks for looking into it.
    I was just curious about blank spaces.
    Indeed code works and produces the keys.

    Respect.
    Quote Quote  
  30. Originally Posted by kruglianin View Post
    Originally Posted by candy8kane View Post
    Angela thank you for this tool!

    I'm struggling to enter the cURL, I'm getting a key symbol. Do you know what the problem could be? I'm trying to get a video from Showmax which uses similar security to Peacock
    ⌘+V then press ⏎

    The script (hell3.py) works fine on macOS.

    For the script allhell3.py you need to press ⌘+V then press CTRL+D (just like in Linux)
    Unfortunately that didn't work either but managed to get it to work on Windows
    Quote Quote  



Similar Threads

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