VideoHelp Forum

+ Reply to Thread
Results 1 to 18 of 18
Thread
  1. Hi, anybody please help me

    I try to download the streaming video: https://xemphimxua.net/phim/doan-tinh-song-tu-tvb-1991/xem-phim.html
    I found the MPD file: https://bitmovin-a.akamaihd.net/content/art-of-motion_drm/mpds/11331.mpd
    and use FFMPEG to download the audio and video files.
    However when I tried to use Developer tool of Google Chrome to find the decryption key, I failed.
    Anyone can explain me the solution to find the key? Thanks a million
    Quote Quote  
  2. Member
    Join Date
    Jan 2019
    Location
    hawai
    Search PM
    use old version of chrome (86 or above). no work with new version of chrome.
    and go to console tab.
    Quote Quote  
  3. Thanks. Besides using that in Chrome, is there anyway to use the winevine decryptor independently, out of Chrome? or is there any other tool?
    Quote Quote  
  4. Member
    Join Date
    Jan 2019
    Location
    hawai
    Search PM
    no winevine but widevine
    and no. work only extension+browser -- go on console tab
    Last edited by lomero; 16th May 2021 at 02:32.
    Quote Quote  
  5. Member
    Join Date
    Jan 2019
    Location
    hawai
    Search PM
    --
    Last edited by lomero; 14th May 2021 at 02:44.
    Quote Quote  
  6. Originally Posted by lomero View Post
    no winevine but widevine
    and no. work only extension+browser -- go on console tab. when you play video (on ur browser) you receive key to decrypt video streaming.
    then u need to use ur browser AND widevine ext to get decryption key.
    if u dont want use or search old version of chorme, just use other valide browser, link better then chrome, like slimjet or vivaldi and widevine ext work correctly with this.
    Did you actually try to use the extension with the mentioned link?
    It doesn't work for me because when you open developer tools it goes into debug mode or something, to prevent you.
    Even if you modify the extension to show the key as an alert without opening console, it doesn't work on that specific link.
    Quote Quote  
  7. Member
    Join Date
    Jan 2019
    Location
    hawai
    Search PM
    what mentioned link?
    Last edited by lomero; 16th May 2021 at 02:31.
    Quote Quote  
  8. Originally Posted by lomero View Post
    mentioned link? what link?
    https://xemphimxua.net/phim/doan-tinh-song-tu-tvb-1991/xem-phim.html
    It's in the original post up there.
    Quote Quote  
  9. Average video editor Sviests's Avatar
    Join Date
    Sep 2018
    Location
    USA,Sweden
    Search Comp PM
    The video works on MS Edge browser when opening the console tab. But it seems that plugin doesn't work on newest Edge browser,not sure to which version need to downgrade (or what modifications to extension need to make for Edge browser)
    Quote Quote  
  10. Originally Posted by Sviests View Post
    The video works on MS Edge browser when opening the console tab.
    That's weird. It doesn't load on my end, it goes to debugging and stuff.
    Quote Quote  
  11. Member
    Join Date
    Jan 2019
    Location
    hawai
    Search PM
    no, not work on this link.
    mine was a generic browser talk.
    Last edited by lomero; 16th May 2021 at 02:31.
    Quote Quote  
  12. Member
    Join Date
    Feb 2006
    Location
    United States
    Search Comp PM
    the player seems to use HYDRAX server which is hard to download from
    Quote Quote  
  13. Member
    Join Date
    Apr 2021
    Location
    Dominican Republic
    Search Comp PM
    It is stopping working in some places with the old .dll. In peac.ock it is not reproduced or in disney.
    Quote Quote  
  14. Originally Posted by Sviests View Post
    The video works on MS Edge browser when opening the console tab. But it seems that plugin doesn't work on newest Edge browser,not sure to which version need to downgrade (or what modifications to extension need to make for Edge browser)
    version81
    Quote Quote  
  15. It's not widevine encrypted. I wonder why you found a mpd link from bitmovin...

    So the video url is https://xemphimxua.net/phim/doan-tinh-song-tu-tvb-1991/xem-phim.html
    When playing the video on chrome (make sure its the actual video but not the ads), press F12 to load devtools. Once it detects devtools/debugger, it triggers "Paused in debugger".
    And you can see this function-anonymous-debugger on devtools:
    Image
    [Attachment 58922 - Click to enlarge]


    At this time if you switch to devtools' 'Elements' tab, you can find the src value of that video iframe tag is "https://playhydrax.com/?v=tvweewImr&remove=banner".
    However, I failed to download video from this link.
    And if you then close devtools, it clears the video iframe and shows 'Vid: tvweewImr' on screen. So we get the vid = "tvweewImr".

    Close devtools, refresh the page, play the video, press F12 to load devtools, and we stop on debugger pause again.
    On upper right of the 'Sources' tab of devtools, click 'Step out of current function':
    Image
    [Attachment 58923 - Click to enlarge]


    Now we are in the script that calls that debugger pause function, and this script is "https://iamcdn.net/players/playhydrax.min.js"

    On left panel part, find and click 'Overrides':
    Image
    [Attachment 58924 - Click to enlarge]


    Then under 'Overrides' tab, click '+ Select folder for overrides' and choose a folder to store files. I just created a folder 'chrome_overrides' on my desktop.
    Once you select a folder, go back to the webpage, there will be a warning on the top:
    Image
    [Attachment 58925 - Click to enlarge]

    Click 'Allow'

    Start over again. Close devtools, refresh the webpage, play the video, press F12 to load devtools, and the debugger paused again.
    This time remember to check 'Enable local overrides' under the 'Overrides' tab.
    And click 'Step out of current function':
    Image
    [Attachment 58926 - Click to enlarge]


    Now we're at the javascript file playhydrax.min.js, right click it and select 'Save for overrides':
    Image
    [Attachment 58927 - Click to enlarge]


    Then you should be able to find it under 'Overrides' tab:
    Image
    [Attachment 58928 - Click to enlarge]


    If you can locate this file on the 'Network' tab, you can also right click it and select 'Save for overrides' there.

    Now we have set up to override playhydrax.min.js.
    Find the file in the folder where you selected to be the overrides folder. In my case it's 'chrome_overrides\iamcdn.net\players\playhydrax.mi n.js'.
    Open it with notepad++, delete everything and copy and pate the content from the attached playhydrax_min_js.zip file and save it. Or simply replace the file.
    playhydrax_min_js.zip


    What I did for the script was to change the code "devtoolsOpen = !0" to "devtoolsOpen = !1" (!0 means true and !1 means false), and comment out some suspicious functions.

    Now we should be able to use devtools while watching the video.
    Leave devtools open, refresh the webpage.
    If you encounter debugger pause, on upper right, find and click 'Resume script execution' (or press F8). You might need to do it several times until the video can be played:
    Image
    [Attachment 58929 - Click to enlarge]

    Also make sure the rightmost pause symbol button is gray, and its hint should say 'Don't pause on exceptions':
    Image
    [Attachment 58930 - Click to enlarge]


    Play the video for a while, on the devtools 'Network' tab you'll see a long bar and it's getting longer and longer:
    Image
    [Attachment 58931 - Click to enlarge]

    Click on it and use mouse scroll to adjust the size of interval:
    Image
    [Attachment 58932 - Click to enlarge]


    (Usually this method does not work on m3u8 and mpd but it works in this case.)
    Only couple items left on the left panel, and I finally found brandonyoung.xyz is the one we want.
    Click on it and on the right side, check 'Headers' and 'Messages' to see:
    On 'Headers', we need to copy down some info:
    Request URL: wss://brandonyoung.xyz/ (this is websocket server)
    Request Headers -> Origin: https://geoip.redirect-ads.com (without this, the server will not respond)

    On 'Messages', you'll see a lot Binary Message receiving from the server:
    Image
    [Attachment 58933 - Click to enlarge]


    Scroll up to the top and find the very first Binary Message that we sent to the server.
    Click it and on the bottom you can copy down the message:
    First message sent to the server: "tvweewImr_sd"

    The message is basically the vid "tvweewImr" plus the video quality "sd".
    If you check the second message which is the response from the server: "sd_254620732_65536_sd"
    Here "254620732" is the total bytes of the video, and "65536" is the size of one segment.
    The rest messages would be first we send the segment starting position to the server.
    The server sends back a group of segments to us.
    Each message consists of the first couple bytes to be a segment id and the rest to be the video data.
    After 8 messages, the server sends a '0' to indicate the transfer is over.
    We then need to send new starting position of the next group of segments to the server, and receive segments back from server.
    Repeat the process until we have all the segments.
    Once we have all the segment messages, remove segment id's, merge segment data together and we get the whole video.

    Btw, since we know it's websocket transfer, we can click on 'WS' (WebSockets) right to the filter box to quickly locate it next time:
    Image
    [Attachment 58934 - Click to enlarge]


    The attached file hydrax_wsd.zip is a simple python script to download the video from this websocket server.
    If anything is wrong, you'll see weird message cause I'm too lazy to make it better.
    And it will NOT work for other websocket transfers since different websocket servers act differently.
    hydrax_wsd.zip

    It's compiled to windows executable. Download command:
    Code:
    hydrax_wsd -u "wss://brandonyoung.xyz/" -m "tvweewImr_sd" -g "https://geoip.redirect-ads.com"
    Where the argument -u is for the websocket server uri, -m for the first message to be sent to the server, and -g is for the origin url.

    Note that you will fail to download if you never play the video on the webpage. You can pause the video and then download it but if you close the webpage for too long, you will not be able to download it.

    The downloaded file name ends with ".mp4" but it might not be an mp4 file, so please check its MediaInfo and change file name if needed.
    Quote Quote  
  16. Member
    Join Date
    Jan 2019
    Location
    hawai
    Search PM
    W-O-W.... a very great wonderfull explanation. tanxs for share!
    Quote Quote  
  17. Member
    Join Date
    Jul 2021
    Location
    Turkiye
    Search PM
    Originally Posted by tamagoyaki View Post
    It's not widevine encrypted. I wonder why you found a mpd link from bitmovin...
    .
    Thanks a lot for the explanation.

    What is the current status? There is no return from the post in the Python part?
    Quote Quote  



Similar Threads