VideoHelp Forum
+ Reply to Thread
Page 2 of 5
FirstFirst 1 2 3 4 ... LastLast
Results 31 to 60 of 124
Thread
  1. Originally Posted by A_n_g_e_l_a View Post
    Thanks.

    The presence of the <ContentProtection> element with the Widevine UUID indicates the use of Widevine DRM, but the lack of additional information suggests that the playback environment is expected to handle the specifics of the license acquisition and decryption process.

    The missing references could mean that the actual decryption and playback of the content require external configuration or that the player handling the MPD file already has the necessary information to acquire the license (e.g., pre-configured license server URLs or pre-shared keys).

    AllHell3Gui and clan cannot work without one of the missing references - of which there are three; pssh, Default_KID and parsing for pssh in init.m4f (1st video segment)

    I asked chatgpt whether the schema follows google Widevine recommendations. It replied:
    No, the <ContentProtection> schema you provided does not fully follow Google Widevine's recommendations. While the schemeIdUri correctly identifies the content as being protected by Widevine, a compliant Widevine MPD typically includes additional elements and data to meet the full requirements of Widevine DRM.
    Key Elements Typically Included:

    PSSH (Protection System Specific Header):
    Widevine DRM generally requires a cencssh element within the <ContentProtection> element. The pssh (Protection System Specific Header) is a Base64-encoded binary blob that contains necessary initialization data for the DRM system. This data is used by the player to request the decryption keys from the license server.

    Example:

    xml

    <ContentProtection
    schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"
    cencssh="Base64 encoded pssh data">
    </ContentProtection>

    License Acquisition URL (Optional but Recommended):
    While not mandatory in the MPD file, it is often helpful to include a widevine:license element or similar, which provides the license acquisition URL. This helps players to know where to send their license requests without needing external configuration.

    Content Protection Attributes:
    Widevine may also require certain attributes like cenc:default_KID (Key Identifier) to be included in the MPD for more precise control over the DRM process.

    Why Full Compliance Matters:

    Player Compatibility: Without the pssh data, many players that expect it might not be able to request the necessary license, leading to playback failure.
    Security and Efficiency: Widevine's recommended structure ensures that all necessary data for content decryption is provided directly in the MPD, streamlining the process and ensuring a higher level of security.

    Conclusion:

    The example <ContentProtection> element you provided does indicate Widevine protection, but it does not include the full set of information recommended by Google Widevine for DRM-protected content. For full compliance and optimal playback support, the MPD should include the pssh data and possibly other elements like the license URL or default KID.
    So since it isn't widevine compliant I disregard this result.
    Thank you for taking the time to analyze and answer

    Now the tool should be fine. My tool can get the key of another site. This problem is relatively niche and will not be fixed. I will learn how to use the API post request. Thank you.
    Quote Quote  
  2. Originally Posted by A_n_g_e_l_a View Post
    Thanks.

    The presence of the <ContentProtection> element with the Widevine UUID indicates the use of Widevine DRM, but the lack of additional information suggests that the playback environment is expected to handle the specifics of the license acquisition and decryption process.

    The missing references could mean that the actual decryption and playback of the content require external configuration or that the player handling the MPD file already has the necessary information to acquire the license (e.g., pre-configured license server URLs or pre-shared keys).

    AllHell3Gui and clan cannot work without one of the missing references - of which there are three; pssh, Default_KID and parsing for pssh in init.m4f (1st video segment)

    I asked chatgpt whether the schema follows google Widevine recommendations. It replied:
    No, the <ContentProtection> schema you provided does not fully follow Google Widevine's recommendations. While the schemeIdUri correctly identifies the content as being protected by Widevine, a compliant Widevine MPD typically includes additional elements and data to meet the full requirements of Widevine DRM.
    Key Elements Typically Included:

    PSSH (Protection System Specific Header):
    Widevine DRM generally requires a cencssh element within the <ContentProtection> element. The pssh (Protection System Specific Header) is a Base64-encoded binary blob that contains necessary initialization data for the DRM system. This data is used by the player to request the decryption keys from the license server.

    Example:

    xml

    <ContentProtection
    schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"
    cencssh="Base64 encoded pssh data">
    </ContentProtection>

    License Acquisition URL (Optional but Recommended):
    While not mandatory in the MPD file, it is often helpful to include a widevine:license element or similar, which provides the license acquisition URL. This helps players to know where to send their license requests without needing external configuration.

    Content Protection Attributes:
    Widevine may also require certain attributes like cenc:default_KID (Key Identifier) to be included in the MPD for more precise control over the DRM process.

    Why Full Compliance Matters:

    Player Compatibility: Without the pssh data, many players that expect it might not be able to request the necessary license, leading to playback failure.
    Security and Efficiency: Widevine's recommended structure ensures that all necessary data for content decryption is provided directly in the MPD, streamlining the process and ensuring a higher level of security.

    Conclusion:

    The example <ContentProtection> element you provided does indicate Widevine protection, but it does not include the full set of information recommended by Google Widevine for DRM-protected content. For full compliance and optimal playback support, the MPD should include the pssh data and possibly other elements like the license URL or default KID.
    So since it isn't widevine compliant I disregard this result.
    I have tested that it is possible to convert UUID as Base 64 using such tools: https://emarsden.github.io/pssh-box-wasm/generate/
    Quote Quote  
  3. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    Originally Posted by shy0o View Post
    Originally Posted by A_n_g_e_l_a View Post
    Thanks.

    The presence of the <ContentProtection> element with the Widevine UUID indicates the use of Widevine DRM, but the lack of additional information suggests that the playback environment is expected to handle the specifics of the license acquisition and decryption process.

    The missing references could mean that the actual decryption and playback of the content require external configuration or that the player handling the MPD file already has the necessary information to acquire the license (e.g., pre-configured license server URLs or pre-shared keys).

    AllHell3Gui and clan cannot work without one of the missing references - of which there are three; pssh, Default_KID and parsing for pssh in init.m4f (1st video segment)

    I asked chatgpt whether the schema follows google Widevine recommendations. It replied:
    No, the <ContentProtection> schema you provided does not fully follow Google Widevine's recommendations. While the schemeIdUri correctly identifies the content as being protected by Widevine, a compliant Widevine MPD typically includes additional elements and data to meet the full requirements of Widevine DRM.
    Key Elements Typically Included:

    PSSH (Protection System Specific Header):
    Widevine DRM generally requires a cencssh element within the <ContentProtection> element. The pssh (Protection System Specific Header) is a Base64-encoded binary blob that contains necessary initialization data for the DRM system. This data is used by the player to request the decryption keys from the license server.

    Example:

    xml

    <ContentProtection
    schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"
    cencssh="Base64 encoded pssh data">
    </ContentProtection>

    License Acquisition URL (Optional but Recommended):
    While not mandatory in the MPD file, it is often helpful to include a widevine:license element or similar, which provides the license acquisition URL. This helps players to know where to send their license requests without needing external configuration.

    Content Protection Attributes:
    Widevine may also require certain attributes like cenc:default_KID (Key Identifier) to be included in the MPD for more precise control over the DRM process.

    Why Full Compliance Matters:

    Player Compatibility: Without the pssh data, many players that expect it might not be able to request the necessary license, leading to playback failure.
    Security and Efficiency: Widevine's recommended structure ensures that all necessary data for content decryption is provided directly in the MPD, streamlining the process and ensuring a higher level of security.

    Conclusion:

    The example <ContentProtection> element you provided does indicate Widevine protection, but it does not include the full set of information recommended by Google Widevine for DRM-protected content. For full compliance and optimal playback support, the MPD should include the pssh data and possibly other elements like the license URL or default KID.
    So since it isn't widevine compliant I disregard this result.
    I have tested that it is possible to convert UUID as Base 64 using such tools: https://emarsden.github.io/pssh-box-wasm/generate/
    There is none for widevine in that mpd. If you are thinking it is this
    Code:
    <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"></ContentProtection>
    It isn't. That is the scheme identifier that says it is widevine. Nothing else.

    Here is how it should look. Note the same scheme id is used
    Code:
    <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed" xmlns:cenc="urn:mpeg:cenc:2013" bc:licenseAcquisitionUrl="https://manifest.prod.boltdns.net/license/v1/cenc/widevine/1242911124001/cf79ae24-1886-48bf-a5de-d99d100035fe/776db926-abcf-46aa-ab0c-b596664450f3?fastly_token=NjZkOTVkZWJfZTNkMzhhYzJiYzcyYWM2NDc2ZWM3NzQ5NGMxZWI2MWI3MDI2NGVjZDZkZGViOTkzYTFiZDQwOTYzMzY3MjZhNg%3D%3D" xmlns:bc="urn:brightcove:2015">
            <cenc:pssh>AAAAVnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADYIARIQd225JqvPRqqrDLWWZkRQ8xoNd2lkZXZpbmVfdGVzdCIIMTIzNDU2NzgyB2RlZmF1bHQ=</cenc:pssh>
          </ContentProtection>
    Last edited by A_n_g_e_l_a; 14th Aug 2024 at 07:36.
    Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
    https://files.videohelp.com/u/301890/hellyes6.zip
    Quote Quote  
  4. Only possible solution in such a case would be to try to extract all necessary information from the PlayReady PSSH and build a Widevine PSSH from there. Devine tries to do so, it has a method

    Code:
            if pssh.system_id == PSSH.SystemId.PlayReady:
                pssh.to_widevine()
    If it is worth the work: I don't know.
    Quote Quote  
  5. Code:
    // Refactored conversion functions
    const fromHexString = hexString => Uint8Array.from(hexString.match(/.{1,2}/g).map(byte => parseInt(byte, 16)));
    
    const toHexString = bytes => bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, '0'), '');
    
    const b64ToHex = b64 => [...atob(b64)].map(c=> c.charCodeAt(0).toString(16).padStart(2,0)).join``
    
    // initData to PSSH
    function getPssh(buffer) {
        const bytes = fromHexString(toHexString(new Uint8Array(buffer)).match(/000000..70737368.*/)[0]);
        return window.btoa(String.fromCharCode(...bytes));
    }
    
    // Get Clearkey keys
    function getClearkey(response) {
        let obj=JSON.parse((new TextDecoder("utf-8")).decode(response))
        obj = obj["keys"].map(o => [o["kid"], o["k"]]);
        obj = obj.map(o => o.map(a => a.replace(/-/g, '+').replace(/_/g, '/')+"=="))
        return obj.map(o => `${b64ToHex(o[0])}:${b64ToHex(o[1])}`).join("\n")
    
    }
    
    // Widevine PSSH extraction from init
    const originalGenerateRequest = MediaKeySession.prototype.generateRequest;
    MediaKeySession.prototype.generateRequest = function(initDataType, initData) {
        const result = originalGenerateRequest.call(this, initDataType, initData);
        //Get PSSH and pass into content.js
        try {
            console.log("[PSSH] " + getPssh(initData))
            document.dispatchEvent(new CustomEvent('pssh', {
                detail: getPssh(initData)
            }));
        } finally {
            return result;
        }
    };
    
    //Clearkey Support
    const originalUpdate = MediaKeySession.prototype.update;
    MediaKeySession.prototype.update = function(response) {
        const result = originalUpdate.call(this, response);
        try {
            console.log("[CLEARKEY] " + getClearkey(response));
            document.dispatchEvent(new CustomEvent('clearkey', {
                detail: getClearkey(response)
            }));
        } finally {
            return result;
        }
    };

    Image
    [Attachment 81451 - Click to enlarge]



    This is the content of web debugging
    Quote Quote  
  6. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    Originally Posted by Obo View Post
    Only possible solution in such a case would be to try to extract all necessary information from the PlayReady PSSH and build a Widevine PSSH from there. Devine tries to do so, it has a meth
    If it is worth the work: I don't know.

    No. It is not standard Widevine so it can have no standard solution. This is something for shy0o to work on.
    Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
    https://files.videohelp.com/u/301890/hellyes6.zip
    Quote Quote  
  7. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    Originally Posted by shy0o View Post

    This is the content of web debugging
    Of course. PSSH is provided to the web-player, by JavaScript probably, BUT PSSH does not appear in the mpd.
    Use the PSSH and the license with a normal l3.py to get your keys by all means. Automated routes to get keys are cut off.

    And it looks like you have other help from your replies I suggest you go there as this is no longer an allhell3 issue.
    Last edited by A_n_g_e_l_a; 14th Aug 2024 at 08:51.
    Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
    https://files.videohelp.com/u/301890/hellyes6.zip
    Quote Quote  
  8. Originally Posted by Karn View Post
    Originally Posted by terrence View Post
    Hi, I am trying to use this for VdoCipher but not getting the desired keys. @A_n_g_e_l_a Could you pls throw some light on this?
    This will not work with vdocipher. In fact, there are very few working scripts that fetch vdocipher. Thats one thing.

    Second, you will need a REAL cdm(i.e. from a real phone).
    Hi @Karn, Thanks for answering this. I am using a real CDM only. I am able to get the keys for the requests https://license64.vdocipher.com/auth/wv/:authToken
    But there are some requests which are made to https://license.vdocipher.com/auth and passing the base64 encoded body having the otp ,playback info, and licenseRequest : CAQ= and this return some license. Then a request is sent to the same URI and this time license request is something big. I am not able to figure out how this licenseRequest is generated.
    It will be helpful if you can guide me on this.

    Thanks in Advance!
    Quote Quote  
  9. Why not get the init file from the manifest? It has to be in there
    https://github.com/DevLARLEY
    Keys from just the License URL: WidevineFetch
    Quote Quote  
  10. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    Originally Posted by larley View Post
    Why not get the init file from the manifest? It has to be in there
    Allhell3 does parse the init segment. But init parsing appears to have escaped transition into the gui. shy0o try with allhell3.py.
    Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
    https://files.videohelp.com/u/301890/hellyes6.zip
    Quote Quote  
  11. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    https://files.videohelp.com/u/301890/HellYes4.zip

    Corrected missing init parser in the GUI version and the GUI has had a makeover.

    Image
    [Attachment 81469 - Click to enlarge]
    Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
    https://files.videohelp.com/u/301890/hellyes6.zip
    Quote Quote  
  12. Sorry to bother you again, pssh is hidden in the m4i file. You still cannot read it after updating to HellYes4.zip. The following code is the content of the first fragment m4i.

    https://ewcdn03.nowe.com/session/10-0415bd77b353e353b832f7d53c9e8/Content/DASH_VOS3/Li...5item_init.m4i

    Code:
    ftypdashiso2dash�moovxmvhd�U&'�U&'�����������@Qpssh�y�JΣ�'��!�1. 뚯�>��'�9��.�
    widevine_test"
    CH332NDash2�pssh��y�@B����[��_�``V<WRMHEADER xmlns="http://schemas.microsoft.com/DRM/2007/03/PlayReadyHeader" version="4.0.0.0"><DATA><PROTECTINFO><KEYLEN>16</KEYLEN><ALGID>AESCTR</ALGID></PROTECTINFO><KID>musgLqOv9T6lJ5w5lIEurQ==</KID><CHECKSUM>tnTAR9epNYo=</CHECKSUM><LA_URL>https://profficialsite.keydelivery.mediaservices.windows.net/PlayReady/</LA_URL><CUSTOMATTRIBUTES><IIS_DRM_VERSION>8.0.1611.1001</IIS_DRM_VERSION></CUSTOMATTRIBUTES></DATA></WRMHEADER>
    trakhtkhd�U&'�U&'��������@�mdia,mdhd�U&'�U&'�����������
    &hdlrsounSoundCminfsmhd$dinfdrefurl stblsttscttsstscstszstco�stsd�enca}'esds@����Psinffrmamp4aschmcenc(schi tenc. 뚯�>��'�9��.�(mvex trex



    Prepare three inputs.
    1. MPD URL
    2. cURL of license server request
    3. Video name


    MPD URL? https://ewcdn03.nowe.com/session/10-0415bd77b353e353b832f7d53c9e8/Content/DASH_VOS3/Li...bc8_1723730304
    Extracting PSSH from MPD...
    Extracting PSSHs from init file: init.m4f

    AAAAUXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADEIARIQLi Drmq+jPvWlJ5w5lIEurRoNd2lkZXZpbmVfdGVzdCIKQ0gzMzJO RGFzaDIA

    init.m4f file successfully deleted.
    Extracted or generated PSSH: None
    Next.
    1. Paste your cURL of license request.
    2. Press Ctrl-D (Linux) or Ctrl-Z (Windows) to save it.
    cURL?



    After using allhell3.py, after entering curl, the entire script will freeze.
    Last edited by shy0o; 15th Aug 2024 at 06:02.
    Quote Quote  
  13. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    Originally Posted by shy0o View Post
    Sorry to bother you again, pssh is hidden in the m4i file. You still cannot read it after updating to HellYes4.zip. The following code is the content of the first fragment m4i.

    https://ewcdn03.nowe.com/session/10-0415bd77b353e353b832f7d53c9e8/Content/DASH_VOS3/Li...5item_init.m4i

    Code:
    ftypdashiso2dash�moovxmvhd�U&'�U&'�����������@Qpssh�y�JΣ�'��!�1. 뚯�>��'�9��.�
    widevine_test"
    CH332NDash2�pssh��y�@B����[��_�``V<WRMHEADER xmlns="http://schemas.microsoft.com/DRM/2007/03/PlayReadyHeader" version="4.0.0.0"><DATA><PROTECTINFO><KEYLEN>16</KEYLEN><ALGID>AESCTR</ALGID></PROTECTINFO><KID>musgLqOv9T6lJ5w5lIEurQ==</KID><CHECKSUM>tnTAR9epNYo=</CHECKSUM><LA_URL>https://profficialsite.keydelivery.mediaservices.windows.net/PlayReady/</LA_URL><CUSTOMATTRIBUTES><IIS_DRM_VERSION>8.0.1611.1001</IIS_DRM_VERSION></CUSTOMATTRIBUTES></DATA></WRMHEADER>
    trakhtkhd�U&'�U&'��������@�mdia,mdhd�U&'�U&'�����������
    &hdlrsounSoundCminfsmhd$dinfdrefurl stblsttscttsstscstszstco�stsd�enca}'esds@����Psinffrmamp4aschmcenc(schi tenc. 뚯�>��'�9��.�(mvex trex



    Prepare three inputs.
    1. MPD URL
    2. cURL of license server request
    3. Video name


    MPD URL? https://ewcdn03.nowe.com/session/10-0415bd77b353e353b832f7d53c9e8/Content/DASH_VOS3/Li...bc8_1723730304
    Extracting PSSH from MPD...
    Extracting PSSHs from init file: init.m4f

    AAAAUXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADEIARIQLi Drmq+jPvWlJ5w5lIEurRoNd2lkZXZpbmVfdGVzdCIKQ0gzMzJO RGFzaDIA

    init.m4f file successfully deleted.
    Extracted or generated PSSH: None
    Next.
    1. Paste your cURL of license request.
    2. Press Ctrl-D (Linux) or Ctrl-Z (Windows) to save it.
    cURL?



    After using allhell3.py, after entering curl, the entire script will freeze.
    Have you followed instructions to press ctrl +D OR ctrl+Z on windows at item 2
    Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
    https://files.videohelp.com/u/301890/hellyes6.zip
    Quote Quote  
  14. Originally Posted by A_n_g_e_l_a View Post
    Originally Posted by shy0o View Post
    Sorry to bother you again, pssh is hidden in the m4i file. You still cannot read it after updating to HellYes4.zip. The following code is the content of the first fragment m4i.

    https://ewcdn03.nowe.com/session/10-0415bd77b353e353b832f7d53c9e8/Content/DASH_VOS3/Li...5item_init.m4i

    Code:
    ftypdashiso2dash�moovxmvhd�U&'�U&'�����������@Qpssh�y�JΣ�'��!�1. 뚯�>��'�9��.�
    widevine_test"
    CH332NDash2�pssh��y�@B����[��_�``V<WRMHEADER xmlns="http://schemas.microsoft.com/DRM/2007/03/PlayReadyHeader" version="4.0.0.0"><DATA><PROTECTINFO><KEYLEN>16</KEYLEN><ALGID>AESCTR</ALGID></PROTECTINFO><KID>musgLqOv9T6lJ5w5lIEurQ==</KID><CHECKSUM>tnTAR9epNYo=</CHECKSUM><LA_URL>https://profficialsite.keydelivery.mediaservices.windows.net/PlayReady/</LA_URL><CUSTOMATTRIBUTES><IIS_DRM_VERSION>8.0.1611.1001</IIS_DRM_VERSION></CUSTOMATTRIBUTES></DATA></WRMHEADER>
    trakhtkhd�U&'�U&'��������@�mdia,mdhd�U&'�U&'�����������
    &hdlrsounSoundCminfsmhd$dinfdrefurl stblsttscttsstscstszstco�stsd�enca}'esds@����Psinffrmamp4aschmcenc(schi tenc. 뚯�>��'�9��.�(mvex trex



    Prepare three inputs.
    1. MPD URL
    2. cURL of license server request
    3. Video name


    MPD URL? https://ewcdn03.nowe.com/session/10-0415bd77b353e353b832f7d53c9e8/Content/DASH_VOS3/Li...bc8_1723730304
    Extracting PSSH from MPD...
    Extracting PSSHs from init file: init.m4f

    AAAAUXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADEIARIQLi Drmq+jPvWlJ5w5lIEurRoNd2lkZXZpbmVfdGVzdCIKQ0gzMzJO RGFzaDIA

    init.m4f file successfully deleted.
    Extracted or generated PSSH: None
    Next.
    1. Paste your cURL of license request.
    2. Press Ctrl-D (Linux) or Ctrl-Z (Windows) to save it.
    cURL?



    After using allhell3.py, after entering curl, the entire script will freeze.
    Have you followed instructions to press ctrl +D OR ctrl+Z on windows at item 2
    Sorry, it turns out that the Ctrl function on my computer is broken, and there is often no response when I press it.

    I think I'm troubling you. If the program is normal and there's no problem, you can leave me alone. Sorry.

    Code:
    Traceback (most recent call last):
      File "/Users/shy/Downloads/HellYesGui/allhell3.py", line 424, in <module>
        key_results = get_key(pssh, lic_url)
                      ^^^^^^^^^^^^^^^^^^^^^^
      File "/Users/shy/Downloads/HellYesGui/allhell3.py", line 170, in get_key
        challenge = cdm.get_license_challenge(session_id, PSSH(pssh))
                                                          ^^^^^^^^^^
      File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/pywidevine/pssh.py", line 67, in __init__
        raise ValueError("Data must not be empty.")
    ValueError: Data must not be empty.
    Quote Quote  
  15. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    Originally Posted by shy0o View Post

    I think I'm troubling you. If the program is normal and there's no problem, you can leave me alone. Sorry.
    Well we now know the script fetches the pssh from the init segment- so that is an advance.
    I've updated the The GUI version to include what this geriatric missed when the GUI was first created, so use that now - link is in my signature.
    Sorry for misleading you I assumed the init parser was present in the original GUI.
    Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
    https://files.videohelp.com/u/301890/hellyes6.zip
    Quote Quote  
  16. It seems that it cannot be obtained, but the terminal will display it.

    Image
    [Attachment 81481 - Click to enlarge]
    Quote Quote  
  17. Originally Posted by A_n_g_e_l_a View Post
    Originally Posted by shy0o View Post
    Sorry to bother you again, pssh is hidden in the m4i file. You still cannot read it after updating to HellYes4.zip. The following code is the content of the first fragment m4i.

    https://ewcdn03.nowe.com/session/10-0415bd77b353e353b832f7d53c9e8/Content/DASH_VOS3/Li...5item_init.m4i

    Code:
    ftypdashiso2dash�moovxmvhd�U&'�U&'�����������@Qpssh�y�JΣ�'��!�1. 뚯�>��'�9��.�
    widevine_test"
    CH332NDash2�pssh��y�@B����[��_�``V<WRMHEADER xmlns="http://schemas.microsoft.com/DRM/2007/03/PlayReadyHeader" version="4.0.0.0"><DATA><PROTECTINFO><KEYLEN>16</KEYLEN><ALGID>AESCTR</ALGID></PROTECTINFO><KID>musgLqOv9T6lJ5w5lIEurQ==</KID><CHECKSUM>tnTAR9epNYo=</CHECKSUM><LA_URL>https://profficialsite.keydelivery.mediaservices.windows.net/PlayReady/</LA_URL><CUSTOMATTRIBUTES><IIS_DRM_VERSION>8.0.1611.1001</IIS_DRM_VERSION></CUSTOMATTRIBUTES></DATA></WRMHEADER>
    trakhtkhd�U&'�U&'��������@�mdia,mdhd�U&'�U&'�����������
    &hdlrsounSoundCminfsmhd$dinfdrefurl stblsttscttsstscstszstco�stsd�enca}'esds@����Psinffrmamp4aschmcenc(schi tenc. 뚯�>��'�9��.�(mvex trex



    Prepare three inputs.
    1. MPD URL
    2. cURL of license server request
    3. Video name


    MPD URL? https://ewcdn03.nowe.com/session/10-0415bd77b353e353b832f7d53c9e8/Content/DASH_VOS3/Li...bc8_1723730304
    Extracting PSSH from MPD...
    Extracting PSSHs from init file: init.m4f

    AAAAUXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADEIARIQLi Drmq+jPvWlJ5w5lIEurRoNd2lkZXZpbmVfdGVzdCIKQ0gzMzJO RGFzaDIA

    init.m4f file successfully deleted.
    Extracted or generated PSSH: None
    Next.
    1. Paste your cURL of license request.
    2. Press Ctrl-D (Linux) or Ctrl-Z (Windows) to save it.
    cURL?



    After using allhell3.py, after entering curl, the entire script will freeze.
    Have you followed instructions to press ctrl +D OR ctrl+Z on windows at item 2
    It happens to me that both the GUI and CLI versions give me this error: Request URL is missing an 'http://' or 'https://' protocol.
    Quote Quote  
  18. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    Originally Posted by shy0o View Post
    It seems that it cannot be obtained, but the terminal will display it.

    Image
    [Attachment 81481 - Click to enlarge]
    Are you using an Apple computer? Never been tested on Macs,

    Anyway use the keys and download by hand.... would be my approach.

    EDIT:
    Alter the code at line 212 and following to look like this highlighted:
    Image
    [Attachment 81486 - Click to enlarge]


    Code:
                    try:
                        pssh = self.get_pssh_from_mpd(self.mpd_url_entry.text())  # init.m4f method
                        if pssh:
                            return pssh
                        else:
                            return None
                    except:
                        return None
    Last edited by A_n_g_e_l_a; 15th Aug 2024 at 14:17.
    Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
    https://files.videohelp.com/u/301890/hellyes6.zip
    Quote Quote  
  19. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    Originally Posted by solheh View Post
    It happens to me that both the GUI and CLI versions give me this error: Request URL is missing an 'http://' or 'https://' protocol.
    There are more than 2000 downloads and the few errors reporting http missing are all USER errors from people who did not know what they were doing. Could that be you?

    I see you've just joined. You probably are unsure ... so read the guides in the Starter Kit and try again. First try with a simple site; and don't expect it to work on vdocipher.

    I support faults in my code - nothing else.
    Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
    https://files.videohelp.com/u/301890/hellyes6.zip
    Quote Quote  
  20. Originally Posted by A_n_g_e_l_a View Post
    Originally Posted by shy0o View Post
    It seems that it cannot be obtained, but the terminal will display it.

    Image
    [Attachment 81481 - Click to enlarge]
    Are you using an Apple computer? Never been tested on Macs,

    Anyway use the keys and download by hand.... would be my approach.

    EDIT:
    Alter the code at line 212 and following to look like this highlighted:
    Image
    [Attachment 81486 - Click to enlarge]


    Code:
                    try:
                        pssh = self.get_pssh_from_mpd(self.mpd_url_entry.text())  # init.m4f method
                        if pssh:
                            return pssh
                        else:
                            return None
                    except:
                        return None
    After this modification, there is no problem. You can extract the required content, but such an error occurs? Do you know how to solve it? If it is not important, you don’t need to reply to me. I’m sorry to bother you.

    I tried using context.set_ciphers("DEFAULT:@SECLEVEL=1") but it was not successful. Is there any other way? If so.

    [SSL: DH_KEY_TOO_SMALL]
    dh key too small (_ssl.c:1000)
    Quote Quote  
  21. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    Originally Posted by shy0o View Post

    I tried using context.set_ciphers("DEFAULT:@SECLEVEL=1") but it was not successful. Is there any other way? If so.

    [SSL: DH_KEY_TOO_SMALL]
    dh key too small (_ssl.c:1000)
    The error message [SSL: DH_KEY_TOO_SMALL] indicates that the server you are connecting to is using a Diffie-Hellman (DH) key that is too small, and your system's SSL/TLS library is rejecting it for security reasons.

    A solution could be to set up a lower DH default, as you I think have tried, but I am unsure of what you did. So try the script modification below.

    Image
    [Attachment 81493 - Click to enlarge]


    First create a copy of allhell3gui.py and call it something else. We will only use this for the one site in question. Lowering security permanently is never a good idea.
    We need to modify one def and add a new one - to match the image above. So find def fetch_mpd_content(mpd_url) and modify it and add the new 'def create_ssl_context():' as in the image. Then add import ssl at the top.

    Code:
    import httpx
    import ssl
    
    def create_ssl_context():
        context = ssl.create_default_context()
        context.set_ciphers("DEFAULT:@SECLEVEL=1")
        return context
    
    def fetch_mpd_content(mpd_url):
        ssl_context = create_ssl_context()
        response = httpx.get(mpd_url, verify=ssl_context)
        response.raise_for_status()
        return response.text
    This approach modifies the SSL context to allow smaller DH keys. The SSL context is now customised in your script when making HTTP requests using httpx. The set_ciphers("DEFAULT:@SECLEVEL=1") command hopefully lowers the security level to allow smaller DH keys.

    Let me know how you get on.
    Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
    https://files.videohelp.com/u/301890/hellyes6.zip
    Quote Quote  
  22. I have this error when I click on get keys

    Image
    [Attachment 81520 - Click to enlarge]
    Image Attached Thumbnails Click image for larger version

Name:	Captura de pantalla 2024-08-17 a las 20.18.16.png
Views:	23
Size:	155.6 KB
ID:	81519  

    Quote Quote  
  23. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    Looks like you have tried to edit allhell3gui.py. Put it back to how it was or re-download.
    Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
    https://files.videohelp.com/u/301890/hellyes6.zip
    Quote Quote  
  24. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    I've added a new file specifically to try to deal with the error @ shy0o was reporting - [SSL: DH_KEY_TOO_SMALL].

    This arises when a users system rejects talking to a server as their security keys are small enough to be brute-force cracked. A potential solution is to ask the user's system to temporarily lower the security level. I have patched allhell3gui_lowerDH.py to do this. It is the same as allhell3gui apart from the lowered security level. If you meet a [SSL: DH_KEY_TOO_SMALL] error then use the patched file. I've also cleaned up the collecting of init.m4f to warn of missing yt-dlp - if not installed - rather than trying to download it.

    The errors here corrected are for very unusual sites; most users will never meet them.

    https://files.videohelp.com/u/301890/hellyes5.zip
    Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
    https://files.videohelp.com/u/301890/hellyes6.zip
    Quote Quote  
  25. First, thank you so much for this! I got it to work perfectly for a few videos I tested and your instructions were easy to understand. Thank you for all your work on it!

    Second, while I got it to work great with one video source the next video source didn't work quite as well. I tried different approaches based on your instructions and some ideas from the forum, but I think I'm out of my depth.

    Following your instructions everything went smoothly without any errors, but when I went to play the video all I got was sound; no video. I tried the non-gui approach and got a video, but it looked like a burned film reel. Not matter how many times I try I always get the same keys and for some reason it's only the video that doesn't seem to decrypt/save properly.

    I don't want to run afoul of the forums rules so I'm also not sure how to ask for specific help for a specific site. Hence, the vagueness.

    Any idea what I might be doing wrong?
    Quote Quote  
  26. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    Originally Posted by nobodyhome View Post
    First, thank you so much for this! I got it to work perfectly for a few videos I tested and your instructions were easy to understand. Thank you for all your work on it!

    Second, while I got it to work great with one video source the next video source didn't work quite as well. I tried different approaches based on your instructions and some ideas from the forum, but I think I'm out of my depth.

    Following your instructions everything went smoothly without any errors, but when I went to play the video all I got was sound; no video. I tried the non-gui approach and got a video, but it looked like a burned film reel. Not matter how many times I try I always get the same keys and for some reason it's only the video that doesn't seem to decrypt/save properly.

    I don't want to run afoul of the forums rules so I'm also not sure how to ask for specific help for a specific site. Hence, the vagueness.

    Any idea what I might be doing wrong?
    My guess is that you are attempting to go after a site that restricts some/all of its output to Level 1 CDMs such as Netflix or Amazon. Or some sites insist on real-device CDMs for L3.

    The software is doing its job and providing keys. Clearly the keys you are given do not work on the resolution you download.

    There is potential for mismatch; the browser - Chrome for example - will have negotiated content assuming a Chrome CDM. Then my software takes the agreed licensing arrangement, with its matched mpd, but adds an Android-emulated CDM in place of the Chrome CDM. The license server may baulk at this and provide lower resolution keys in line with the lower CDM status. Only guessing here; I can't speak from experience.... but I believe Amazon do this.

    1. Try setting a lower resolution in the download option (480p for Amazon!)
    2. Try using Firefox browser - less chance for mismatch
    3. Upgrade the included L3 emulator CDM for a real-device CDM
    4. Try another site for the same video.
    Last edited by A_n_g_e_l_a; 21st Aug 2024 at 06:21.
    Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
    https://files.videohelp.com/u/301890/hellyes6.zip
    Quote Quote  
  27. I used this program to download from one service. And it worked great. The last time I downloaded it was a week ago, but today I encountered the following problem: when I enter a cURL license, I get: "Client error '403 forbidden' for URL." Does this mean that the video service I download from has changed something in its settings?
    Quote Quote  
  28. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    Originally Posted by Robert_Sobra View Post
    I used this program to download from one service. And it worked great. The last time I downloaded it was a week ago, but today I encountered the following problem: when I enter a cURL license, I get: "Client error '403 forbidden' for URL." Does this mean that the video service I download from has changed something in its settings?
    More likely a user error. Are you sure you are pasting what you should be pasting? Is everything you are pasting freshly gathered?
    Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
    https://files.videohelp.com/u/301890/hellyes6.zip
    Quote Quote  
  29. Originally Posted by A_n_g_e_l_a View Post
    More likely a user error. Are you sure you are pasting what you should be pasting? Is everything you are pasting freshly gathered?
    I also think that this a user error but I can't understand what is wrong. Everything is correct: .mpd URL and cURL of license. I grab the fresh data but it still doesn't work. Сould this be due to some kind of ban on the servers or something similar? But the video works fine in the browser. Anyway, thanks for the answer, I'll try to figure out what I'm doing wrong.
    Quote Quote  
  30. Try blocking the license URL?
    https://github.com/DevLARLEY
    Keys from just the License URL: WidevineFetch
    Quote Quote  



Similar Threads

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