VideoHelp Forum
+ Reply to Thread
Page 1 of 6
1 2 3 ... LastLast
Results 1 to 30 of 167
Thread
  1. Banned
    Join Date
    Jan 2023
    Location
    Mumbai
    Search Comp PM
    https://www.futurly.com/s/preview/courses/blender-architecture#6337f80fe4b05a534f0e3d5a

    The entire source code has now been modified. Don't suggest another thread because nothing else will work right now.

    Now, how do I obtain the key to download videos from the above URL?
    Quote Quote  
  2. more we talk about this site (there are already several threads in this forum about this site) and the more the code changes ...

    or you are developer of this site ?? ....

    i think it's better not to talk about this site anymore. if you want his videos, BUY THEM !!
    Quote Quote  
  3. Banned
    Join Date
    Oct 2022
    Location
    hhhhhhhhhhh
    Search Comp PM
    good, that shit took long to change lol, but maybe someone will again post solution soon
    Quote Quote  
  4. Education Student (Grad.) CrymanChen's Avatar
    Join Date
    Apr 2022
    Location
    Hong Kong
    Search Comp PM
    Why not use some downloaders to solve this problem quickly if you want this video?
    twitter @Cryman_Chen
    email crymanchen@gmail.com
    Quote Quote  
  5. Banned
    Join Date
    Jan 2023
    Location
    Mumbai
    Search Comp PM
    Originally Posted by CrymanChen View Post
    Why not use some downloaders to solve this problem quickly if you want this video?
    no downloader working without key. now getting hex key or base64 string is very tough.
    Quote Quote  
  6. Originally Posted by akshaysic View Post
    Originally Posted by CrymanChen View Post
    Why not use some downloaders to solve this problem quickly if you want this video?
    no downloader working without key. now getting hex key or base64 string is very tough.
    TubeDigger works the best app !!!!
    Quote Quote  
  7. Banned
    Join Date
    Jan 2023
    Location
    Mumbai
    Search Comp PM
    Originally Posted by Silv3r View Post
    Originally Posted by akshaysic View Post
    Originally Posted by CrymanChen View Post
    Why not use some downloaders to solve this problem quickly if you want this video?
    no downloader working without key. now getting hex key or base64 string is very tough.
    TubeDigger works the best app !!!!
    Will it work on aes 128 encrypeted .m3u8 file without base64 string or spka string value?

    how to use it?
    Quote Quote  
  8. you know google ?

    type tubedigger and search it instead of asking here < how to use it? >

    and stop to ask the same question also to other thread ...
    Quote Quote  
  9. Banned
    Join Date
    Jan 2023
    Location
    Mumbai
    Search Comp PM
    Originally Posted by lomero View Post
    you know google ?

    type tubedigger and search it instead of asking here < how to use it? >

    and stop to ask the same question also to other thread ...

    Because nobody is replying. if you know the method tell me
    Quote Quote  
  10. Originally Posted by akshaysic View Post
    Originally Posted by Silv3r View Post
    Originally Posted by akshaysic View Post
    Originally Posted by CrymanChen View Post
    Why not use some downloaders to solve this problem quickly if you want this video?
    no downloader working without key. now getting hex key or base64 string is very tough.
    TubeDigger works the best app !!!!
    Will it work on aes 128 encrypeted .m3u8 file without base64 string or spka string value?

    how to use it?
    you can try it Trial mode has 50% size limitation for downloading and 4 MB for recording.
    Quote Quote  
  11. psaframe
    Join Date
    Mar 2021
    Location
    Algeria
    Search PM
    deblicate threat. try to fish elsewhere you "scamer" shit.
    Quote Quote  
  12. Banned
    Join Date
    Jan 2023
    Location
    Mumbai
    Search Comp PM
    Originally Posted by Silv3r View Post
    Originally Posted by akshaysic View Post
    Originally Posted by Silv3r View Post
    Originally Posted by akshaysic View Post
    Originally Posted by CrymanChen View Post
    Why not use some downloaders to solve this problem quickly if you want this video?
    no downloader working without key. now getting hex key or base64 string is very tough.
    TubeDigger works the best app !!!!
    Will it work on aes 128 encrypeted .m3u8 file without base64 string or spka string value?

    how to use it?
    you can try it Trial mode has 50% size limitation for downloading and 4 MB for recording.

    any other option?
    Quote Quote  
  13. Originally Posted by akshaysic View Post
    Originally Posted by Silv3r View Post
    Originally Posted by akshaysic View Post
    Originally Posted by Silv3r View Post
    Originally Posted by akshaysic View Post
    Originally Posted by CrymanChen View Post
    Why not use some downloaders to solve this problem quickly if you want this video?
    no downloader working without key. now getting hex key or base64 string is very tough.
    TubeDigger works the best app !!!!
    Will it work on aes 128 encrypeted .m3u8 file without base64 string or spka string value?

    how to use it?
    you can try it Trial mode has 50% size limitation for downloading and 4 MB for recording.

    any other option?
    no
    Quote Quote  
  14. Hey any new way we can download the videos now?
    Quote Quote  
  15. hello guys. so i have made some progress but a long way to go. we can connect on telegram @srivallli_bot
    so i did a little digging to how this encryption has changed. spka no longer exists.
    1. on going through the source i have stumbled on new logics of decryption but yet to decipher to make a python script. lets do this together. if i dont reply here you know where to find me!
    Last edited by DrQaatil; 30th Apr 2023 at 09:08.
    Quote Quote  
  16. Originally Posted by unstable View Post
    Hey any new way we can download the videos now?

    try use https://chrome.google.com/webstore/detail/stream-recorder-download/iogidnfllpdhagebkblkgbfijkbkjdmm in RecMode
    Quote Quote  
  17. Originally Posted by DrQaatil View Post
    hello guys. so i have made some progress but a long way to go. we can connect on telegram @srivallli_bot
    so i did a little digging to how this encryption has changed. spka no longer exists.
    1. on going through the source i have stumbled on new logics of decryption but yet to decipher to make a python script. lets do this together. if i dont reply here you know where to find me!
    try use https://chrome.google.com/webstore/detail/stream-recorder-download/iogidnfllpdhagebkblkgbfijkbkjdmm in RecMode

    just checked TubeDigger in RecMode works fine
    Quote Quote  
  18. Member
    Join Date
    Aug 2023
    Location
    United Kingdom
    Search PM
    I've been looking into this as a JS dev and I've sucessfully figured out how to download videos from the Spayee platform - got it working in a custom python script.

    First, find the Course ID, which is in this line of script on the page:
    Code:
    coursePlayer.init("6319d189e4b0ce4578316957", "Preview", "", true, false, "normal", "", 0);
    Or, run this JS code and it should get you the course ID:
    Code:
    document.body.outerHTML.split(`coursePlayer.init("`)[1].split(`"`)[0]

    Then, find the ID of the video itself - you can either inspect element the sidebar and find the selected content page, then look at it's data-id, or you can run this line of JS code below to get the selected video's ID, or look for a URL like this in the network tab

    Code:
    https://<whatever.com>/s/preview/courses/<course ID>/videos/6337f80fe4b05a534f0e3d5a/get
    Where 6337f80fe4b05a534f0e3d5a is the video ID for this video

    Or, run this JS Code on the page to get the current video's ID:
    Code:
    document.querySelector("div.courseSubItem.enabled-true.selected").getAttribute("data-id")
    Also, from this course page you will need the apkId, which is like the new version of the spka value. You can find it by running "apkId" in the browser console, or by running this code. This value for apkId will change every time you switch login (this only matters for paid courses where you must be logged in, but this value is linked to the /t/ value below). apkId will look something like this:
    Code:
    62313734323630386634656538646135
    This is actually hex encoded version of used to be spka value - you'll use this to decrypt the m3u8 key later:
    Code:
    Hex decoded: b1742608f4ee8da5

    Now you can connect to this endpoint, which is an API that gives you the m3u8 URL (If it is a paid course, you will need to be send a request with your login cookie)

    Code:
    https://<whatever.com>/s/preview/courses/<course ID>/videos/<video ID>/get
    The result will be something like this
    Code:
    {
        "_id": "6337f80fe4b05a534f0e3d5a",
        "spayee:resource": {
            "spayee:title": "01 Introduction",
            "spayee:courseAssetType": "video",
            "spayee:type": "upload",
            "spayee:underProcess": false,
            "spayee:completed": true,
            "spayee:status": "Completed",
            "spayee:previewUrl": "assets/videos/6197321b0cf23d7cc6e572e1/2022/10/01/6337f80fe4b05a534f0e3d5a/6337f80fe4b05a534f0e3d5a",
            "spayee:coverVersion": 3,
            "isCaption": false,
            "spayee:allowWatermark": true,
            "spayee:autoplay": true,
            "spayee:availability": "always",
            "spayee:context": "",
            "spayee:description": "",
            "spayee:isContextHtml": false,
            "spayee:isDescriptionHtml": false,
            "spayee:tags": [
                ""
            ],
            "spayee:totalTime": 13.14,
            "spayee:progress": 100,
            "spayee:streamUrl": "https://d2qny97nu4rj64.cloudfront.net/spees/w/o/6197321b0cf23d7cc6e572e1/v/6337f80fe4b05a534f0e3d5a/u/pu/t/87bb35a36b01e0943ef12fa4e6f5ef7c/p/assets/videos/6197321b0cf23d7cc6e572e1/2022/10/01/6337f80fe4b05a534f0e3d5a/index.m3u8"
        },
        "drmPlayerSupport": false,
        "response": true
    }
    You can find the (encrypted) m3u8 URL in the JSON path: "spayee:resource" > "spayee:streamUrl"

    In this URL, the element after "/t" (87bb35a36b01e0943ef12fa4e6f5ef7c in this case) is the only bit that changes per video, and this is based on your session ID (this only really matters if you are trying to download a paid course, but it means that when you log in on one browser, the old /t/ value will be invalidated and a new one will be generated, along with the apkId - the apkId and the URL have to match - you can no longer use the old one as it will lead you to getting an incorrect /k/timestamp key for m3u8 decryption later on - you must make sure the cookie you send to this endpoint is of your latest login).
    Code:
    https://d2qny97nu4rj64.cloudfront.net/spees/w/o/6197321b0cf23d7cc6e572e1/v/6337f80fe4b05a534f0e3d5a/u/pu/t/87bb35a36b01e0943ef12fa4e6f5ef7c/p/assets/videos/6197321b0cf23d7cc6e572e1/2022/10/01/6337f80fe4b05a534f0e3d5a/index.m3u8
    Anyway, if you curl/download and look at this m3u8, you will see the AES-128 encryption line, with a URI of "k/timestamp", so replacing index.m3u8 in the URL with "k/timestamp" will give you the decryption key endpoint. URL will look like this:
    Code:
    https://d2qny97nu4rj64.cloudfront.net/spees/w/o/6197321b0cf23d7cc6e572e1/v/6337f80fe4b05a534f0e3d5a/u/pu/t/87bb35a36b01e0943ef12fa4e6f5ef7c/p/assets/videos/6197321b0cf23d7cc6e572e1/2022/10/01/6337f80fe4b05a534f0e3d5a/k/timestamp
    However, this key itself is also encrypted, using the apkId value. You can decrypt it with this python code, where data is the 48 bytes you get from "k/timestamp" endpoint, and apkid is apkid (like 62313734323630386634656538646135)

    Code:
    def _decrypt_key(data, apkid):
        tmp1 = data[0:16]
        tmp2 = data[32:48]
        dec1 = AES.new(bytes.fromhex(apkid),AES.MODE_ECB)
        tmp3 = dec1.decrypt(tmp1)
        dec2 = AES.new(tmp3,AES.MODE_ECB)
        return dec2.decrypt(tmp2)
    This gives you the 16 byte key that's used to encrypt both the video (and audio if it's separate) m3u8 chunks. You can write these bytes to a .bin file or something similar, then replace the URI= in the m3u8 for video (and also audio if it's separate).

    For my script, I downloaded the key file and then all the chunks (.ts), then replaced each chunk with the full disk path
    example:
    Code:
    #EXT-X-KEY:METHOD=AES-128,URI="k/timestamp",IV=0x496daa1c6914000e408c65cead91fc29
    becomes
    #EXT-X-KEY:METHOD=AES-128,URI="C:\Users\f1shy\Desktop\dltesting\key.bin",IV=0x496daa1c6914000e408c65cead91fc29
    
    
    hls_2M_003.ts
    becomes
    C:\Users\f1shy\Desktop\dltesting\video\hls_2M_003.ts
    Then, I used ffmpeg to download the video, and it works great - I made my own small python script to do this, but you could also just incorporate all of this into a script, for something like youtube-dl or streamlink - I'm not going to do that. If anyone has any more questions about this, or how to download the live courses (I've got that working too - some of the sites add an extra layer of AES encryption on the /get endpoint), feel free to ask me.
    Quote Quote  
  19. Education Student (Grad.) CrymanChen's Avatar
    Join Date
    Apr 2022
    Location
    Hong Kong
    Search Comp PM
    Wow, this is really great and huge work.

    I have to say this is really splendid. Thank you @f1shy-dev
    twitter @Cryman_Chen
    email crymanchen@gmail.com
    Quote Quote  
  20. @f1shy-dev

    wow, great detailed explanation. thanks for share that
    Quote Quote  
  21. @f1shy-dev

    Excellent work. Thanks for sharing.



    Quote Quote  
  22. i am stuck on this, However, this key itself is also encrypted, using the apkId value. You can decrypt it with this python code, where data is the 48 bytes you get from "k/timestamp" endpoint, and apkid is apkid (like 62313734323630386634656538646135)

    Code:
    def _decrypt_key(data, apkid):
        tmp1 = data[0:16]
        tmp2 = data[32:48]
        dec1 = AES.new(bytes.fromhex(apkid),AES.MODE_ECB)
        tmp3 = dec1.decrypt(tmp1)
        dec2 = AES.new(tmp3,AES.MODE_ECB)
        return dec2.decrypt(tmp2)
    This gives you the 16 byte key that's used to encrypt both the video (and audio if it's separate) m3u8 chunks. You can write these bytes to a .bin file or something similar, then replace the URI= in the m3u8 for video (and also audio if it's separate).

    I cant get the data from timestamp value, please help
    Quote Quote  
  23. Education Student (Grad.) CrymanChen's Avatar
    Join Date
    Apr 2022
    Location
    Hong Kong
    Search Comp PM
    @swappyison Use this:
    Code:
    import binascii
    from Crypto.Cipher import AES
    
    with open("timestamp", "rb") as file: 
        data = file.read()
    
    apkid = '62313734323630386634656538646135'
    
    def _decrypt_key(data, apkid):
        tmp1 = data[0:16]
        tmp2 = data[32:48]
        dec1 = AES.new(bytes.fromhex(apkid),AES.MODE_ECB)
        tmp3 = dec1.decrypt(tmp1)
        dec2 = AES.new(tmp3,AES.MODE_ECB)
        return dec2.decrypt(tmp2)
    
    result = _decrypt_key(data, apkid)
    hex_result = binascii.hexlify(result)
    print(hex_result.decode())
    To make this script run, please download the key file timestamp in advance, then put timestamp and this script in the same folder.
    Then run this script in the CMD window. In the screenshot below, I renamed it as "apkid.py", the result will be very clean, it's just the key to decrypt the video and the audio.

    Image
    [Attachment 72888 - Click to enlarge]


    Be aware that you can make this line
    Code:
    apkid = '62313734323630386634656538646135'
    into this one
    Code:
    apkid = input('\napkid: ')
    if you are trying to download other episodes.
    twitter @Cryman_Chen
    email crymanchen@gmail.com
    Quote Quote  
  24. Hi thank you so much I got the keys, however i ran into another problem, downloading from ./N_m3u8DL-RE gave me this error.
    Code:
    ./N_m3u8DL-RE -M format=mp4 --key "https://d2qny97nu4rj64.cloudfront.net/spees/w/o/6197321b0cf23d7cc6e572e1/v/6337f80fe4b05a534f0e3d5a/u/pu/t/87bb35a36b01e0943ef12fa4e6f5ef7c/p/assets/videos/6197321b0cf23d7cc6e572e1/2022/10/01/6337f80fe4b05a534f0e3d5a/index.m3u8" --save-name ge.mp4
    ERROR: Specified key is not a valid size for this algorithm.
    Quote Quote  
  25. Education Student (Grad.) CrymanChen's Avatar
    Join Date
    Apr 2022
    Location
    Hong Kong
    Search Comp PM
    Errr...
    twitter @Cryman_Chen
    email crymanchen@gmail.com
    Quote Quote  
  26. sorry i had typed this, ./N_m3u8DL-RE -M format=mp4 --key 2aac616013f1877619af8ac01abff0a6 "https://d2qny97nu4rj64.cloudfront.net/spees/w/o/6197321b0cf23d7cc6e572e1/v/6337f80fe4b05a534f0e3d5a/u/pu/t/87bb35a36b01e0943ef12fa4e6f5ef7c/p/assets/videos/6197321b0cf23d7cc6e572e1/2022/10/01/6337f80fe4b05a534f0e3d5a/index.m3u8" --save-name ge.mp4
    and the same error
    Quote Quote  
  27. Member piaohua's Avatar
    Join Date
    May 2023
    Location
    中国
    Search PM
    Originally Posted by swappyison View Post
    sorry i had typed this, ./N_m3u8DL-RE -M format=mp4 --key 2aac616013f1877619af8ac01abff0a6 "https://d2qny97nu4rj64.cloudfront.net/spees/w/o/6197321b0cf23d7cc6e572e1/v/6337f80fe4b05a534f0e3d5a/u/pu/t/87bb35a36b01e0943ef12fa4e6f5ef7c/p/assets/videos/6197321b0cf23d7cc6e572e1/2022/10/01/6337f80fe4b05a534f0e3d5a/index.m3u8" --save-name ge.mp4
    and the same error
    The secret key used by N_m3u8DL-RE is kid:key
    Quote Quote  
  28. i am so sorry, could you please suggest me the corrected command.
    thanks in advance
    Quote Quote  
  29. Member piaohua's Avatar
    Join Date
    May 2023
    Location
    中国
    Search PM
    Originally Posted by swappyison View Post
    i am so sorry, could you please suggest me the corrected command.
    thanks in advance
    --custom-hls-key 2aac616013f1877619af8ac01abff0a6
    Quote Quote  
  30. thank you so much! Have a great day ahead!
    Quote Quote  



Similar Threads

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