VideoHelp Forum




+ Reply to Thread
Results 1 to 6 of 6
  1. Jessica Fuentes
    Join Date
    Sep 2022
    Location
    USA
    Search Comp PM
    Hey, I am not going to ask how to download AES 128 encrypted videos because I already know how to do that after checking multiple posts in video help forums.

    My question is that I use the following command to download an encrypted AES 128 video:

    hlsdl -K "65125DA49032A3B9AD74C6E9FDF02D98" -o "abc.ts" "https://d2a5xnk4s7n8a6.cloudfront.net/spees/w/o/5e356a710cf24531c92ac49f/v/608c2d510cf274502bebb091/u/62b17baa0cf2995efd8b74c3/t/aeade224671194a69668077a98310f36/p/assets/videos/5e356a710cf24531c92ac49f/2021/04/30/608c2d510cf274502bebb091/hls_1M_.m3u8"

    How do I use this command in ffmpeg? Can someone modify it? I have the decryption key in the above command and the URL.

    So that I can write a Python script to automate these downloads in Python.
    Discord : quantumqueenxox
    Telegram: EighthJourney27
    Quote Quote  
  2. Member
    Join Date
    Jan 2026
    Location
    india
    Search Comp PM
    Use N_m3u8DL-RE tool for download

    Installation Guide:
    https://forum.videohelp.com/threads/420000-N_m3u8DL-RE-Installation-Guide-for-Mac-Linu...ows-10-11-2026

    N_m3u8DL-RE "https://d2a5xnk4s7n8a6.cloudfront.net/spees/w/o/5e356a710cf24531c92ac49f/v/608c2d510cf274502bebb091/u/62b17baa0cf2995efd8b74c3/t/aeade224671194a69668077a98310f36/p/assets/videos/5e356a710cf24531c92ac49f/2021/04/30/608c2d510cf274502bebb091/index.m3u8" --custom-hls-key "65125DA49032A3B9AD74C6E9FDF02D98" -M "format=mp4" --tmp-dir "Dow" --save-dir "Download/MyFolder11" --save-name "TWS-1"

    What’s Happening Here
    ✔ --custom-hls-method AES-128 — Explicitly tells N_m3u8DL-RE that the stream uses AES-128 encryption.
    ✔ --custom-hls-key — Supplies the raw AES-128 key in hex format. You often need the prefix hex: so the tool knows it’s hex-encoded.
    ✔ -M format=mp4 — Instructs N_m3u8DL-RE to merge (mux) audio and video into a single MP4 after download.
    ✔ --tmp-dir — Folder for temporary files during download.
    ✔ --save-dir / --save-name — Where and what the final file is called.
    Last edited by premajee; 1st Feb 2026 at 14:37. Reason: better explain
    Quote Quote  
  3. Hi, are you active, by any chance? I wanted to know how you got the key? I have the timestamp data
    Quote Quote  
  4. This key "65125DA49032A3B9AD74C6E9FDF02D98" is the apkId by any chance?

    also an update, i managed to decrypt myself using apkId itself.
    python code:

    Code:
    from Crypto.Cipher import AES
    import base64
    
    # ---- inputs ----
    
    apkId = "apkid"
    
    with open("timestamp", "rb") as f:
        data = f.read()
    
    # ---- step 1: slice bytes ----
    
    f = data
    v = f[0:16]   
    g = f[48:64]   
    
    # ---- step 2: derive stage-1 AES key from apkId ----
    
    apk_key_hex = apkId[:8] + apkId[40:]
    apk_key = bytes.fromhex(apk_key_hex)
    
    cipher1 = AES.new(apk_key, AES.MODE_ECB)
    intermediate_key = cipher1.decrypt(g)
    
    # ---- step 3: derive final HLS AES key ----
    
    cipher2 = AES.new(intermediate_key, AES.MODE_ECB)
    final_aes_key = cipher2.decrypt(v)
    
    # ---- result ----
    
    print(final_aes_key.hex())
    Quote Quote  
  5. Member
    Join Date
    Jan 2026
    Location
    india
    Search Comp PM
    what you want to know, can u explain, and also share the images/screeshot and also share timestamp data
    Quote Quote  
  6. Member
    Join Date
    Jan 2026
    Location
    india
    Search Comp PM
    Originally Posted by bxxxy View Post
    This key "65125DA49032A3B9AD74C6E9FDF02D98" is the apkId by any chance?

    also an update, i managed to decrypt myself using apkId itself.
    python code:

    Code:
    from Crypto.Cipher import AES
    import base64
    
    # ---- inputs ----
    
    apkId = "apkid"
    
    with open("timestamp", "rb") as f:
        data = f.read()
    
    # ---- step 1: slice bytes ----
    
    f = data
    v = f[0:16]   
    g = f[48:64]   
    
    # ---- step 2: derive stage-1 AES key from apkId ----
    
    apk_key_hex = apkId[:8] + apkId[40:]
    apk_key = bytes.fromhex(apk_key_hex)
    
    cipher1 = AES.new(apk_key, AES.MODE_ECB)
    intermediate_key = cipher1.decrypt(g)
    
    # ---- step 3: derive final HLS AES key ----
    
    cipher2 = AES.new(intermediate_key, AES.MODE_ECB)
    final_aes_key = cipher2.decrypt(v)
    
    # ---- result ----
    
    print(final_aes_key.hex())
    How to download/play this video?

    Code:
    {
        "props": {
            "pageProps": {
                "token": "072511538325f89a3a18a423e6550127",
                "watermark": "532",
                "urls": [
                    {
                        "bitrate": "360p",
                        "quality": "360p",
                        "path": "https://appx-static.appx.co.in/testing/ck-master.m3u8?quality=360p",
                        "backup_url": "",
                        "backup_url2": "",
                        "videoId": "NTQ1NjY0LTE3NjE5OTA0MzctLTM2MHAtLW1hc3Rlci03MjAwNjc5LjM3MjU1MjgwMQ",
                        "kstr": "kSQXHtOclUfuCCuyn0BicQo5eLEYTMd+sImz8wMjrV8=",
                        "jstr": "41IhEjgArMuaXDzJfdVPdMrUeBw0oxCxr8jgu1fKSx3vMgEKiaNXrqR0QLayaDAYuUVhbwzpgmvLi/h7kcfYO2G3PdgeA9oylkks............."
                    }
                ],
                "isMobile": false,
                "isIos": false,
                "isLive": false,
                "quality": "360p",
                "isPremier": "0",
                "startDate": "",
                "gcp_cookie": "",
                "datetime": "1781250014266",
                "ivb6": "CJv6KjrmsZg9HEH4OLjihA==",
                "enable_adaptivebitrate": 0,
                "uhs_version": 3,
                "isAdmin": false,
                "debug": false
            },
            "appConfig": "U2FsdGVkX195QQZt9Vyt/+t6Qyk59eNwIruJ/+zNwYk=",
            "hasSession": false,
            "query": {
                "token": "072511538325f89a3a18a423e6550127",
                "watermark": "xyz@gmail.com%0A9082610090"
            },
            "tenant": null,
            "__N_SSP": true
        },
        "page": "/secure-player-v3",
        "query": {
            "token": "072511538325f89a3a18a423e6550127",
            "watermark": "xyz@gmail.com%0A9082610090"
        },
        "buildId": "hF7_6AQSqlg0cRsOUF7pL",
        "isFallback": false,
        "gssp": true,
        "appGip": true,
        "scriptLoader": []
    }
    Quote Quote  



Similar Threads

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