VideoHelp Forum



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

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



+ Reply to Thread
Page 16 of 26
FirstFirst ... 6 14 15 16 17 18 ... LastLast
Results 451 to 480 of 769
  1. [QUOTE=juan;2736892]@elbuscavidas idk what you mean . if you read this thread, people still have lot of problems even when they follow the tutorial . but like I said try to build it on your own , if you have a problem ,people on this forum are willing to help.[/Q


    I mean that the tutorial is updated. Thanks also Juan
    Quote Quote  
  2. Hi all

    Please, pretty please, refrain from hijacking this thread with any desire to extract emulated and/or real cdm. There are numerous threads discussing that and this a definitely not one of them.


    Let's keep this thread on topic.

    Regards
    Quote Quote  
  3. Member
    Join Date
    Aug 2023
    Location
    Turkey
    Search Comp PM
    it is posible to add manuel the pssh on the box ?
    Quote Quote  
  4. it is posible to add manuel the pssh on the box ?
    It is possible, by modifying the popup.html. But what about the the license server and the headers?


    Try creating a new scheme and add the desired pssh as part of the call to pyodide
    Quote Quote  
  5. Member
    Join Date
    Aug 2023
    Location
    Turkey
    Search Comp PM
    Originally Posted by jack_666 View Post
    it is posible to add manuel the pssh on the box ?
    It is possible, by modifying the popup.html. But what about the the license server and the headers?


    Try creating a new scheme and add the desired pssh as part of the call to pyodide

    thank you for your answer ..

    the lisance server selckted coreckt bud i make from popup.htm and enabel to import the pssh manuel bud thad not work from popup.htm

    the new scheme ist to match for me i cant i not have so match knowles with it
    Quote Quote  
  6. cdrm-project.com
    Join Date
    Jun 2022
    Location
    USA
    Search PM
    Hey @FoxRefire, great work -- I see you didn't like my original API for Zanes extension, so I made an API for yours as well!

    https://cdm-project.com/TPD94/CDRM-Extension-API/src/branch/wvg

    I'd actually like to work with you to implement more features on the back end, as I don't want to have to dig through line by line of your code, but if not I get it!

    Yours is now the default I'm recommending though, as it's not obfuscated.

    For anyone who wants to check out the extension without a wvd file you can get my modified version that works with the API I wrote
    https://cdrm-project.com/extension
    Quote Quote  
  7. Hi FoxRefire,

    Kindly and please reply to this post.


    I am studying and comparing the background.js legacy code and the present code. There are two different lines of code that are really challenging and I am soliciting you help with respect to a solution. Thanks


    code ... wvg-next line 13


    Code:
    line 13
        return JSON.stringify(Object.fromEntries(obj.map(header => [header.name, header.value])))
    
    
    line 34
    
    
    
                    chrome.webRequest.onBeforeSendHeaders.addListener(
        function(details) {
            if (details.method === "POST") {
                window.requests.push({
                    url:details.url,
                    headers:convertHeaders(details.requestHeaders),
                    body:window.bodys.find((b) => b.id == details.requestId).body
                });
                if(testBlock(details.url)){
                    return {cancel:true}
                }
            }
        },
        {urls: ["<all_urls>"]},
        ["requestHeaders", "blocking"]
    );
    wvg_legacy


    Code:
    line 4
                    return Object.fromEntries(obj.map(header => [header.name, header.value]))
    
    line 11
    chrome.webRequest.onBeforeSendHeaders.addListener(
     function(details) {
        if (details.method === "POST") {
          requests.push({
              url:details.url,
              headers:convertHeaders(details.requestHeaders)
              xxxxxxxxxxxxx no such line of code xxxxxxxxxxxxx
          });
        }
     },
     {urls: ["<all_urls>"]},
     ["requestHeaders"]
    );


    return Object.fromEntries(obj.map(header => [header.name, header.value])) // ... legacy code
    // return JSON.stringify(Object.fromEntries(obj.map(header => [header.name, header.value]))) // ... next code



    These seem to be equivalent .... but the next code seems to work only with pyodide not with legacy


    the biggest challenge comes with this bad boy ... located in next code only
    body:window.bodys.find((b) => b.id == details.requestId).body


    with this code the legacy system ... the extension will not start


    and without this code there is no body element/section in the response json of the legacy extension.


    Please kindly advise as to the correct code because there is a necessary requirement to having the body section included in the response.


    Regards







    Quote Quote  
  8. Originally Posted by jack_666 View Post
    Hi FoxRefire,

    Kindly and please reply to this post.


    I am studying and comparing the background.js legacy code and the present code. There are two different lines of code that are really challenging and I am soliciting you help with respect to a solution. Thanks


    code ... wvg-next line 13


    Code:
    line 13
        return JSON.stringify(Object.fromEntries(obj.map(header => [header.name, header.value])))
    
    
    line 34
    
    
    
                    chrome.webRequest.onBeforeSendHeaders.addListener(
        function(details) {
            if (details.method === "POST") {
                window.requests.push({
                    url:details.url,
                    headers:convertHeaders(details.requestHeaders),
                    body:window.bodys.find((b) => b.id == details.requestId).body
                });
                if(testBlock(details.url)){
                    return {cancel:true}
                }
            }
        },
        {urls: ["<all_urls>"]},
        ["requestHeaders", "blocking"]
    );
    wvg_legacy


    Code:
    line 4
                    return Object.fromEntries(obj.map(header => [header.name, header.value]))
    
    line 11
    chrome.webRequest.onBeforeSendHeaders.addListener(
     function(details) {
        if (details.method === "POST") {
          requests.push({
              url:details.url,
              headers:convertHeaders(details.requestHeaders)
              xxxxxxxxxxxxx no such line of code xxxxxxxxxxxxx
          });
        }
     },
     {urls: ["<all_urls>"]},
     ["requestHeaders"]
    );


    return Object.fromEntries(obj.map(header => [header.name, header.value])) // ... legacy code
    // return JSON.stringify(Object.fromEntries(obj.map(header => [header.name, header.value]))) // ... next code



    These seems to be equivalent .... but the next code seems to work only with pyodide not with legacy


    the biggest challenge comes with this bad boy ... located in next code onle
    body:window.bodys.find((b) => b.id == details.requestId).body


    with this code the legacy system ... the extension will not start


    and without this code there is no body element/section in the response json of the legacy extension.


    Please kindly advise as to the correct code because there is a necessary requirement to having the body section included in the response.


    Regards









    First, the purpose of the convertHeaders() function is to convert HAR format headers to generic format as described below:

    Headers in HAR format:
    Code:
    "headers": [
        {
            "name": "NAME-OF-HEADER1",
            "value": "VALUE-OF-HEADER1"
        },
        {
            "name": "NAME-OF-HEADER2",
            "value": "VALUE-OF-HEADER2"
        }
    ]
    Headers in generic format:
    Code:
    {
        "NAME-OF-HEADER1": "VALUE-OF-HEADER1",
        "NAME-OF-HEADER2": "VALUE-OF-HEADER2"
    }
    In the Next version, this converted object is further converted once into a string using JSON.stringify() to avoid problems when passing values from Javascript to Python by Pyodide.

    Pyodide automatically converts data of string and numeric types and can pass values between Javascript<==>Python, but object types and Bytes(ArrayBuffer) cannot be passed as is.

    Therefore, it is necessary to convert the data once into a string before passing these data.



    The request body cannot be retrieved at the same time as the headers and must be retrieved using separate methods, onBeforeRequest and onBeforeSendHeaders, respectively.

    Therefore, when the request is related by comparing the requestId attribute, and the request body and headers are stored at the same time.
    Don't be stupid.Use your brain and Google.
    Read the rules and documentation before asking for support about my extension.
    Quote Quote  
  9. Originally Posted by TPD94 View Post
    Hey @FoxRefire, great work -- I see you didn't like my original API for Zanes extension, so I made an API for yours as well!

    https://cdm-project.com/TPD94/CDRM-Extension-API/src/branch/wvg

    I'd actually like to work with you to implement more features on the back end, as I don't want to have to dig through line by line of your code, but if not I get it!

    Yours is now the default I'm recommending though, as it's not obfuscated.

    For anyone who wants to check out the extension without a wvd file you can get my modified version that works with the API I wrote
    https://cdrm-project.com/extension
    * If you use an external API, you don't need Pyodide, it just bloats the file size of the extension.

    * The background.png (8.3MB) in the website's new UI is too bloated.
    Background colors should be described by CSS and image size should be kept under 1 MB at most.

    * An option should be added to the extensions to not include cookies as long as the request to the license server is also made by an external API.
    Even if this is not the case in practice, there is no way for users to verify that these information is not being misused injustice by the operator of the external API.
    Don't be stupid.Use your brain and Google.
    Read the rules and documentation before asking for support about my extension.
    Quote Quote  
  10. Member
    Join Date
    Aug 2023
    Location
    Turkey
    Search Comp PM
    Originally Posted by TPD94 View Post
    Hey @FoxRefire, great work -- I see you didn't like my original API for Zanes extension, so I made an API for yours as well!

    https://cdm-project.com/TPD94/CDRM-Extension-API/src/branch/wvg

    I'd actually like to work with you to implement more features on the back end, as I don't want to have to dig through line by line of your code, but if not I get it!

    Yours is now the default I'm recommending though, as it's not obfuscated.

    For anyone who wants to check out the extension without a wvd file you can get my modified version that works with the API I wrote
    https://cdrm-project.com/extension

    May God and FoxRefire protect us from you
    Quote Quote  
  11. @FoxRefire


    Thanks for your reply and patience. Appreciated.
    Quote Quote  
  12. cdrm-project.com
    Join Date
    Jun 2022
    Location
    USA
    Search PM
    Originally Posted by FoxRefire View Post
    Originally Posted by TPD94 View Post
    Hey @FoxRefire, great work -- I see you didn't like my original API for Zanes extension, so I made an API for yours as well!

    https://cdm-project.com/TPD94/CDRM-Extension-API/src/branch/wvg

    I'd actually like to work with you to implement more features on the back end, as I don't want to have to dig through line by line of your code, but if not I get it!

    Yours is now the default I'm recommending though, as it's not obfuscated.

    For anyone who wants to check out the extension without a wvd file you can get my modified version that works with the API I wrote
    https://cdrm-project.com/extension
    * If you use an external API, you don't need Pyodide, it just bloats the file size of the extension.

    * The background.png (8.3MB) in the website's new UI is too bloated.
    Background colors should be described by CSS and image size should be kept under 1 MB at most.

    * An option should be added to the extensions to not include cookies as long as the request to the license server is also made by an external API.
    Even if this is not the case in practice, there is no way for users to verify that these information is not being misused injustice by the operator of the external API.
    Appreciate the feedback. I’m still just a novice so a lot of it I’m sure still looks like spaghetti and is ugly no doubt about it.

    I’ll try and brush up on the things you suggested, thanks !
    Quote Quote  
  13. @FoxRefire I tested the nextgen version on many of the demos and except 2 I can say its working. Vdocipher by default isn't working which is to be expected on account of my emu cdm.

    1. https://www.visualon.com/index.php/html5demo/?demo=drm

    On this demo there is a problem generating the KID.

    Image
    [Attachment 79424 - Click to enlarge]



    This issue doesn't exist on wks l3.py

    Image
    [Attachment 79425 - Click to enlarge]





    2. Tried on Clearkey demo https://reference.dashif.org/dash.js/latest/samples/drm/clearkey.html

    It doesnt allow data input. Given the media file is same as other drm demos, is this supposed to happen? (The key generated is from one of the earlier commonwv demo (https://reference.dashif.org/dash.js/latest/samples/drm/widevine.html) but it works with the clearkey mpd as well)

    Image
    [Attachment 79426 - Click to enlarge]
    Quote Quote  
  14. https://www.visualon.com/index.php/html5demo/?demo=drm



    The next version gives the keys as per image/picture whilst the legacy version gives the keys as per wks l3.py

    another curiosity is the url
    Code:
    https://www.zee5.com/global/tv-shows/details/kaise-mujhe-tum-mil-gaye/0-6-4z5461626/virat-and-amruta-share-an-emotional-moment/0-1-6z5565798
    the scheme is CommonWV


    the next version accomplishes the challenge whilst the legacy fails.


    Very interesting
    Quote Quote  
  15. @Karn
    1.
    This is not an extension issue, but a Pywidevine (or WKS) issue, so submit the issue to the appropriate Github repository.
    Also, since this is only a non-generic KID for demo page, so the same problem will not occur outside of the demo.

    2.
    Clearkey is not Widevine, but a another protection method where the decryption key is directly in the source code.
    Thus, encoded keys can be retrieved directly from the EME Logger.
    This can be in KID:KEY hex format with only simple string manipulation; no CDM key pair is required.
    The Clearkey key acquisition process itself is completed entirely within inject.js.
    Don't be stupid.Use your brain and Google.
    Read the rules and documentation before asking for support about my extension.
    Quote Quote  
  16. Member
    Join Date
    Aug 2023
    Location
    Turkey
    Search Comp PM
    Originally Posted by jack_666 View Post
    https://www.visualon.com/index.php/html5demo/?demo=drm



    The next version gives the keys as per image/picture whilst the legacy version gives the keys as per wks l3.py

    another curiosity is the url
    Code:
    https://www.zee5.com/global/tv-shows/details/kaise-mujhe-tum-mil-gaye/0-6-4z5461626/virat-and-amruta-share-an-emotional-moment/0-1-6z5565798
    the scheme is CommonWV


    the next version accomplishes the challenge whilst the legacy fails.


    Very interesting

    i try with legency and next no way get keys ,

    as i see its need special header ?!
    Quote Quote  
  17. [Announcement]
    WVG now supports Remote CDM.
    Usage: https://github.com/FoxRefire/wvg/wiki/Using-with-Remote-CDM
    Don't be stupid.Use your brain and Google.
    Read the rules and documentation before asking for support about my extension.
    Quote Quote  
  18. @FoxRefire

    Thanks for the update.
    Quote Quote  
  19. I was studying this code

    Code:
    https://github.com/FoxRefire/wvg/blob/legacy/schemes/DRMToday.js

    in particular lines 9 and 46


    Code:
    9
    if (isValidJson(String.fromCharCode(...new Uint8Array(certBuffer)))) {
    46
    if (isValidJson(String.fromCharCode(...new Uint8Array(licBuffer)))) {

    Everything is great except the routine isValidJson is missing
    Quote Quote  
  20. Originally Posted by jack_666 View Post
    I was studying this code

    Code:
    https://github.com/FoxRefire/wvg/blob/legacy/schemes/DRMToday.js

    in particular lines 9 and 46


    Code:
    9
    if (isValidJson(String.fromCharCode(...new Uint8Array(certBuffer)))) {
    46
    if (isValidJson(String.fromCharCode(...new Uint8Array(licBuffer)))) {

    Everything is great except the routine isValidJson is missing
    This is simply my error.

    The DRMToday scheme in the legacy code was not written by me, but was submitted by @Karoolus in #39 and PM.

    At this time I attempted to split each process for license servers into separate files to avoid bloating popup.js when trying to accommodate multiple license servers, then I simply forgot to bring the isValidJson() function. (09c6468 and 078268b)

    However, after the problem was discovered, I just focused on developing a new version of extension and the problem wasn't corrected.
    Don't be stupid.Use your brain and Google.
    Read the rules and documentation before asking for support about my extension.
    Quote Quote  
  21. Thanks.

    Please continue with your great work. Appreciated.


    DRMToday is working great within the legacy framework.
    Quote Quote  
  22. Hey,

    Legacy version(Uses WVCore.Server)

    I need help. How should I complete this step? How exactly to install it?

    Quote Quote  
  23. Originally Posted by Kadio View Post
    Hey,

    Legacy version(Uses WVCore.Server)

    I need help. How should I complete this step? How exactly to install it?

    Just follow Guide.

    Anyway, is there any reason why you dare to use the legacy version?

    There is a new version that has more features and also has careful documentation.
    Don't be stupid.Use your brain and Google.
    Read the rules and documentation before asking for support about my extension.
    Quote Quote  
  24. Originally Posted by FoxRefire View Post
    Originally Posted by Kadio View Post
    Hey,

    Legacy version(Uses WVCore.Server)

    I need help. How should I complete this step? How exactly to install it?

    Just follow Guide.

    Anyway, is there any reason why you dare to use the legacy version?

    There is a new version that has more features and also has careful documentation.
    I've already managed it, the extension works properly.

    Anyway, is there any reason why you dare to use the legacy version?

    There is a new version that has more features and also has careful documentation.
    Do you mean: the NextGen version (uses Pyodide + Pywidevine) ?

    Pywidevine conflicts with my other scripts.
    Quote Quote  
  25. Originally Posted by Kadio View Post
    Anyway, is there any reason why you dare to use the legacy version?

    There is a new version that has more features and also has careful documentation.
    Do you mean: the NextGen version (uses Pyodide + Pywidevine) ?

    Pywidevine conflicts with my other scripts.
    It runs in a sandbox within the browser, so it will not make conflict.
    Just use the newer version unless there is a special reason not to.
    Don't be stupid.Use your brain and Google.
    Read the rules and documentation before asking for support about my extension.
    Quote Quote  
  26. Originally Posted by FoxRefire View Post
    Originally Posted by Kadio View Post
    Anyway, is there any reason why you dare to use the legacy version?

    There is a new version that has more features and also has careful documentation.
    Do you mean: the NextGen version (uses Pyodide + Pywidevine) ?

    Pywidevine conflicts with my other scripts.
    It runs in a sandbox within the browser, so it will not make conflict.
    Just use the newer version unless there is a special reason not to.
    Do you mean Virtualbox?
    Quote Quote  
  27. No, Python runs in the browser, so it does not affect the locally installed Python environment.
    Don't be stupid.Use your brain and Google.
    Read the rules and documentation before asking for support about my extension.
    Quote Quote  
  28. sch3m3n0t6upp0rt:y0ucanr3qu3st0rsu6mit

    [MPD?]
    https://gist.github.com/FoxRefire/fd606ec29a9bfa1f1bef897e0dc3a231

    -----------
    PSSH
    AAAASHBzc2gBAAAA7e+LqXnWSs6jyCfc1R0h7QAAAAF84rl36r dHx5HdXaN7isRsAAAAFAgBEhB84rl36rdHx5HdXaN7isRs

    License URL
    https://shield-drm.imggaming.com/api/v2/license

    Challenge scheme
    CommonWV

    video link:
    https://fightclubfree.w3spaces.com/live.html
    Quote Quote  
  29. Originally Posted by Kadio View Post
    Originally Posted by FoxRefire View Post
    Originally Posted by Kadio View Post
    Anyway, is there any reason why you dare to use the legacy version?

    There is a new version that has more features and also has careful documentation.
    Do you mean: the NextGen version (uses Pyodide + Pywidevine) ?

    Pywidevine conflicts with my other scripts.
    It runs in a sandbox within the browser, so it will not make conflict.
    Just use the newer version unless there is a special reason not to.
    Do you mean Virtualbox?
    Brother I don't mean to be rude but you are getting yourself confused here - you really should just use the new version of the extension, and stop messing about with the much more complex old version.
    Quote Quote  
  30. Member
    Join Date
    Aug 2023
    Location
    Turkey
    Search Comp PM
    can we creat one autonome shema creater with python ?

    i am on try to make one if got it i will share here
    Quote Quote  



Similar Threads

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