VideoHelp Forum
+ Reply to Thread
Results 1 to 19 of 19
Thread
  1. Hi,

    I spent hours yesterday reading lots about downloading and decrypting encrypted m3u8 files. I didn't know anything yesterday, but I feel like I've learned lots. I feel like I'm SO close to figuring this out but still don't know how


    This is the information I can find (if I'm correct):
    1. Video Link: https://happilyfamily.cdn.spotlightr.com/watch/MTI5NTE5NQ==
    2. Key link: https://s3-spotlightr-output.b-cdn.net/99128895/63f91e989061c253564338-720-e.m3u8.key
    3. Key hex: 26c320ad3928c5f5e87e07d0fa3350e5d7bd3bdcf7e8d01141 400df30c51bd19
    4. First few lines of M3u* file (1266 ts segments):
      #EXTM3U
      #EXT-X-VERSION:3
      #EXT-X-TARGETDURATION:3
      #EXT-X-MEDIA-SEQUENCE:0
      #EXT-X-KEY:METHOD=AES-128,URI="63f91e989061c253564338-720-e.m3u8.key",IV=0x00000000000000000000000000000000
      #EXTINF:3.203200,
      63f91e989061c253564338-720-0.ts

    I've tried several different tools to try to download the m3u8 segments: wget, ffmpeg, youtube-dl, but as I said, I only just started learning this yesterday, so I'm quite noob.

    If I use this command:
    ffmpeg -protocol_whitelist file,http,https,tcp,tls,crypto -i https://s3-spotlightr-output.b-cdn.net/99128895/63f91e989061c253564338-720-e.m3u8 -c copy -bsf:a aac_adtstoasc KidsVideo1.mp4
    It gets to the 4th ts segment then says "Error when loading first segment..." "Invalid data found when processing input".


    I suspect I'm either giving the wrong link or not using the ffmpeg commands correctly...

    Any help? I'm happy to do the steps myself, I just don't know what I'm missing

    Thank you very much! I appreciate it.
    Quote Quote  
  2. Originally Posted by Silv3r View Post
    Oh my goodness. Thank you so much! That is incredible. I've been trying for ages, just don't know this stuff yet.

    Can you explain your process, so I could do it for other videos too? I would be indebted to you.

    edit: PM me if that's preferable. Thank you!
    Quote Quote  
  3. Feels Good Man 2nHxWW6GkN1l916N3ayz8HQoi's Avatar
    Join Date
    Jan 2024
    Location
    Pepe Island
    Search Comp PM
    Code:
    N_m3u8DL-RE.exe https://s3-spotlightr-output.b-cdn.net/99128895/63f91e989061c253564338-720-e.m3u8 --custom-hls-key 61646635643065356463313166333139
    Subtitles can be found here (mux them later using mkvtoolnix):
    https://s3.amazonaws.com/spotlightr-output/99128895/assets/1686921062044_Oren_Jay_Sofe...Conference.vtt
    --[----->+<]>.++++++++++++.---.--------.
    [*drm mass downloader: widefrog*]~~~[*how to make your own mass downloader: guide*]
    Quote Quote  
  4. Originally Posted by 2nHxWW6GkN1l916N3ayz8HQoi View Post
    Code:
    N_m3u8DL-RE.exe https://s3-spotlightr-output.b-cdn.net/99128895/63f91e989061c253564338-720-e.m3u8 --custom-hls-key 61646635643065356463313166333139
    Subtitles can be found here (mux them later using mkvtoolnix):
    https://s3.amazonaws.com/spotlightr-output/99128895/assets/1686921062044_Oren_Jay_Sofe...Conference.vtt
    This is super helpful! Thank you!
    I will look into N_m3u8dl-re.
    How did you get the custom hls key? Is that something specific to the video, so it would be different for different links?

    Thanks!
    Quote Quote  
  5. Feels Good Man 2nHxWW6GkN1l916N3ayz8HQoi's Avatar
    Join Date
    Jan 2024
    Location
    Pepe Island
    Search Comp PM
    Originally Posted by TickTank View Post
    This is super helpful! Thank you!
    I will look into N_m3u8dl-re.
    How did you get the custom hls key? Is that something specific to the video, so it would be different for different links?

    Thanks!
    Remove -e from key
    --[----->+<]>.++++++++++++.---.--------.
    [*drm mass downloader: widefrog*]~~~[*how to make your own mass downloader: guide*]
    Quote Quote  
  6. I ended up using Stream Recorder extension in capture mode; it suits my needs and it was easier than anything else.

    Thanks for your help!
    Quote Quote  
  7. Feels Good Man 2nHxWW6GkN1l916N3ayz8HQoi's Avatar
    Join Date
    Jan 2024
    Location
    Pepe Island
    Search Comp PM
    Apparently you don't even need to decrypt. Just remove -e from the m3u8 and it works. You ignore the other encrypted stream.
    Code:
    yt-dlp.exe https://s3-spotlightr-output.b-cdn.net/99128895/63f91e989061c253564338-720.m3u8
    --[----->+<]>.++++++++++++.---.--------.
    [*drm mass downloader: widefrog*]~~~[*how to make your own mass downloader: guide*]
    Quote Quote  
  8. Hi.

    I have a video where I set the filter to mpd. Unfortunately nothing was found. Instead I found an m3u8 address:
    https://vod-ftc-eu-north-2.media.dssott.com/dvt1=exp=1727797991~url=%2Fps01%2Fdisney%2...0,sf=h,st=v,su

    I tried it with yt-dlp. Doesn't work:
    Code:
    heiko@Worf:~/test$ yt-dlp "https://vod-ftc-eu-north-2.media.dssott.com/dvt1=exp=1727797991~url=%2Fps01%2Fdisney%2F94228b88-6cfb-44f6-98b6-d1f33e5a203e%2F~psid=a6111e47-bd79-492b-8251-8a417260b2c6~aid=b434b454-0f07-4ec3-9fa3-821605e427bb~did=93b41feb-62c3-42ab-9075-4d11e646e2b4~kid=k01~hmac=7c8d49818868547fe738d86d487cafde263c77dd54aa312c3424d902a4a28f85/ps01/disney/94228b88-6cfb-44f6-98b6-d1f33e5a203e/ctr-all-2281d0c9-03fc-4882-8691-9f9e90b83aa4-f76b495d-6942-40fa-8a2f-91cdbf630dce.m3u8?r=720&a=3&v=1&hash=089945fa14340c55b3bc2e9d0f2a78e84841220e&CMCD=bl=0,bs,dl=0,ot=m,pr=0,sf=h,st=v,su" --allow-u
    WARNING: You have asked for UNPLAYABLE formats to be listed/downloaded. This is a developer option intended for debugging. 
             If you experience any issues while using this option, DO NOT open a bug report
    [generic] Extracting URL: https://vod-ftc-eu-north-2.media.dssott.com/dvt1=exp=1727797991~url=%2Fps01%2Fdisney%2F94228b88-6...=m,pr=0,sf=h,st=v,su
    [generic] ctr-all-2281d0c9-03fc-4882-8691-9f9e90b83aa4-f76b495d-6942-40fa-8a2f-91cdbf630dce: Downloading webpage
    [generic] ctr-all-2281d0c9-03fc-4882-8691-9f9e90b83aa4-f76b495d-6942-40fa-8a2f-91cdbf630dce: Downloading m3u8 information
    [generic] ctr-all-2281d0c9-03fc-4882-8691-9f9e90b83aa4-f76b495d-6942-40fa-8a2f-91cdbf630dce: Checking m3u8 live status
    [info] ctr-all-2281d0c9-03fc-4882-8691-9f9e90b83aa4-f76b495d-6942-40fa-8a2f-91cdbf630dce: Downloading 1 format(s): 2600+eac-3-Čeština
    WARNING: You have requested merging of multiple formats while also allowing unplayable formats to be downloaded. The formats won't be merged to prevent data corruption.
    [hlsnative] Downloading m3u8 manifest
    [hlsnative] Total fragments: 401
    [download] Destination: ctr-all-2281d0c9-03fc-4882-8691-9f9e90b83aa4-f76b495d-6942-40fa-8a2f-91cdbf630dce [ctr-all-2281d0c9-03fc-4882-8691-9f9e90b83aa4-f76b495d-6942-40fa-8a2f-91cdbf630dce].f2600.mp4
    ERROR: Initialization fragment found after media fragments, unable to download
    
    [hlsnative] Downloading m3u8 manifest
    [hlsnative] Total fragments: 402
    [download] Destination: ctr-all-2281d0c9-03fc-4882-8691-9f9e90b83aa4-f76b495d-6942-40fa-8a2f-91cdbf630dce [ctr-all-2281d0c9-03fc-4882-8691-9f9e90b83aa4-f76b495d-6942-40fa-8a2f-91cdbf630dce].feac-3-Čeština.mp4
    ERROR: Initialization fragment found after media fragments, unable to download
    
    heiko@Worf:~/test$
    Do I have to do this with N_m3u8de-re too?

    Best regards
    Heiko
    Quote Quote  
  9. Feels Good Man 2nHxWW6GkN1l916N3ayz8HQoi's Avatar
    Join Date
    Jan 2024
    Location
    Pepe Island
    Search Comp PM
    Works with N_m3u8DL-RE. It downloads the encrypted video
    --[----->+<]>.++++++++++++.---.--------.
    [*drm mass downloader: widefrog*]~~~[*how to make your own mass downloader: guide*]
    Quote Quote  
  10. Thanks, it worked. Now I have 3 files.

    I tried to get the key like with mpd. Unfortunately it didn't work:
    Code:
    heiko@Worf:~$ python3 '/home/heiko/Downloads/WKS-KEYS/l3.py'
    
    PSSH: AAAAMnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABISEBEqfppz20i/mAXfCpQ5bX8=
    License URL: https://disney.playback.edge.bamgrid.com/widevine/v1/obtain-license
    unable to parse license - check protobufs
    
    heiko@Worf:~$
    Is PSSH and/or License URL wrong for me?

    Best regards
    Heiko
    Quote Quote  
  11. Do I still have to enter this in the headers.py?
    Code:
    Authorization
    	Bearer eyJ6aXAiOiJERUYiLCJraWQiOiJ0Vy10M2ZQUTJEN2Q0YlBWTU1rSkd4dkJlZ0ZXQkdXek5KcFFtOGRJMWYwIiwiY3R5IjoiSldUIiwiZW5jIjoiQzIwUCIsImFsZyI6ImRpciJ9..jhgxGdrTPURQWNsq.yiDCQ67zu71gXCY-3acVp7Lst9OtjpJeFIDcHZmd2dOk_47x1scFYuTjhfFn7P-zIBR_mE8Sff74MKo-CYfygJweQEoL3DYyouSyOq5xJ1E7YtN-2Xnlt_IlW4-HfXYoY5NEC45dECbgNxmOpfjLi2drsZByg-tQEFrSTdYwJ3YbN1bfHupHGGw36K2hQpmomrSEunPyb4fvvsez7RAyUXy2QIXEPnXg-9St9GojAJCpDtWa9BkZiChBCch0OtocdInrQcG1_QdDmih0oVuiTd_0QfLF8PCM_4wNw02EuwsjIusXFNY9LyDXkL5_zzyXZ1xF1kgCxpDI2inFqYlnR4M0P6xJmj…7JIA1aEj9kfoHfjD7TGmA5rEpG8lIzRNT_VNpcef-myIuh3AoD4me0-yQoxWTZZlHPBz6g8RZpkJEZNsI19P6MmLHtgMEOc9Up8i5ztAs91zW3NRPF3HsRLOjrrh5GvaZVHrn2QeRNCv0tS-V5c_reBnr2Z-gj1hhQWfqz1hF5bFbxG8eHuGhp_MbqaxABuU8uWKDS0fgujV0WpelXVwjQxjP0khCIGu0FqvKPG-On_rjSAC7-WeZagmGppYDLoTrdkwT_OtLcIKz45owBiS7S8jSlT-va19MRyxQrWVch-gkfZJ-1sT9HOQxNdm6ZkjsTANh-nnLKN-DrjxpM1pvYJLrRFm7fiYASOs7fo-8Kkec9XzJCFr_Ww91t-f6RpR7AAnwVKDgZa5w_UNXwi9iVFtW2lgBJ_3s92se7ClwOJ45kND__vqwFOR7A0RobxJdXKxx1EeQafpc3pZ6AoXaCQwJdosZQ7UzdiU7Ft0.2EqxsV7xCjn4n9ATkIpwzA
    Quote Quote  
  12. Feels Good Man 2nHxWW6GkN1l916N3ayz8HQoi's Avatar
    Join Date
    Jan 2024
    Location
    Pepe Island
    Search Comp PM
    --[----->+<]>.++++++++++++.---.--------.
    [*drm mass downloader: widefrog*]~~~[*how to make your own mass downloader: guide*]
    Quote Quote  
  13. Member
    Join Date
    Dec 2021
    Location
    england
    Search Comp PM
    this is pay site, its not allowed because of rule
    Code:
    --key 112a7e9a73db48bf9805df0a94396d7f:3502a39bb69660d5ef166fc38bc6756a
    Quote Quote  
  14. Thank you.

    But how did you get the key? Just for the future. Thank you

    Best regards
    Heiko
    Quote Quote  
  15. Member
    Join Date
    Dec 2021
    Location
    england
    Search Comp PM
    your wks-key header be like:
    Code:
    import requests
    
    headers = {
    
        'Authorization' 'Bearer eyJ6aXAiOiJERUYiLCJraWQiOiJ0Vy10M2ZQUTJEN2Q0YlBWTU1rSkd4dkJlZ0ZXQkdXek5KcFFtOGRJMWYwIiwiY3R5IjoiSldUIiwiZW5jIjoiQzIwUCIsImFsZyI6ImRpciJ9..jhgxGdrTPURQWNsq.yiDCQ67zu71gXCY-3acVp7Lst9OtjpJeFIDcHZmd2dOk_47x1scFYuTjhfFn7P-zIBR_mE8Sff74MKo-CYfygJweQEoL3DYyouSyOq5xJ1E7YtN-2Xnlt_IlW4-HfXYoY5NEC45dECbgNxmOpfjLi2drsZByg-tQEFrSTdYwJ3YbN1bfHupHGGw36K2hQpmomrSEunPyb4fvvsez7RAyUXy2QIXEPnXg-9St9GojAJCpDtWa9BkZiChBCch0OtocdInrQcG1_QdDmih0oVuiTd_0QfLF8PCM_4wNw02EuwsjIusXFNY9LyDXkL5_zzyXZ1xF1kgCxpDI2inFqYlnR4M0P6xJmj…7JIA1aEj9kfoHfjD7TGmA5rEpG8lIzRNT_VNpcef-myIuh3AoD4me0-yQoxWTZZlHPBz6g8RZpkJEZNsI19P6MmLHtgMEOc9Up8i5ztAs91zW3NRPF3HsRLOjrrh5GvaZVHrn2QeRNCv0tS-V5c_reBnr2Z-gj1hhQWfqz1hF5bFbxG8eHuGhp_MbqaxABuU8uWKDS0fgujV0WpelXVwjQxjP0khCIGu0FqvKPG-On_rjSAC7-WeZagmGppYDLoTrdkwT_OtLcIKz45owBiS7S8jSlT-va19MRyxQrWVch-gkfZJ-1sT9HOQxNdm6ZkjsTANh-nnLKN-DrjxpM1pvYJLrRFm7fiYASOs7fo-8Kkec9XzJCFr_Ww91t-f6RpR7AAnwVKDgZa5w_UNXwi9iVFtW2lgBJ_3s92se7ClwOJ45kND__vqwFOR7A0RobxJdXKxx1EeQafpc3pZ6AoXaCQwJdosZQ7UzdiU7Ft0.2EqxsV7xCjn4n9ATkIpwzA}',
    }
    Quote Quote  
  16. OK. Looks different for me.

    But now I have a problem with the video/image. The sound works but the video doesn't. I get this error:
    Code:
    21:50:26.099 ERROR: Failed to get KEY, ignore.: One or more errors occurred. (The 'data' scheme is not supported.)
    Is there something wrong with the key?

    Best regards
    Heiko
    Quote Quote  
  17. An other error:
    Code:
    heiko@Worf:~/test$ python3 '/home/heiko/Downloads/WKS-KEYS/l3.py'
    
    PSSH: AAAAMnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABISEFj0+zBIXEgTlrlLAePIY/Y=
    License URL: https://disney.playback.edge.bamgrid.com/widevine/v1/obtain-license
    Traceback (most recent call last):
      File "/home/heiko/Downloads/WKS-KEYS/l3.py", line 38, in <module>
        correct, keys = WV_Function(pssh, lic_url)
      File "/home/heiko/Downloads/WKS-KEYS/l3.py", line 24, in WV_Function
        widevine_license = requests.post(url=lic_url, data=wvdecrypt.get_challenge(), headers=headers.headers)
      File "/usr/lib/python3/dist-packages/requests/api.py", line 119, in post
        return request('post', url, data=data, json=json, **kwargs)
      File "/usr/lib/python3/dist-packages/requests/api.py", line 61, in request
        return session.request(method=method, url=url, **kwargs)
      File "/usr/lib/python3/dist-packages/requests/sessions.py", line 530, in request
        prep = self.prepare_request(req)
      File "/usr/lib/python3/dist-packages/requests/sessions.py", line 458, in prepare_request
        p.prepare(
      File "/usr/lib/python3/dist-packages/requests/models.py", line 317, in prepare
        self.prepare_headers(headers)
      File "/usr/lib/python3/dist-packages/requests/models.py", line 449, in prepare_headers
        for header in headers.items():
    AttributeError: 'set' object has no attribute 'items'
    heiko@Worf:~/test$
    Quote Quote  



Similar Threads

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