VideoHelp Forum




+ Reply to Thread
Page 1 of 2
1 2 LastLast
Results 1 to 30 of 32
  1. Member
    Join Date
    Nov 2023
    Location
    USA
    Search Comp PM
    Good evening,
    I have a video :https://www.france.tv/enfants/six-huit-ans/tortues-ninja-les-chevaliers-d-ecaille/sais...chnodrome.html

    le mpd:https://cloudingest.ftven.fr/3c05cd49b9666/269ac3a6-efcc-4b89-8ed4-64810da8aa29-171820...m/manifest.mpd


    the ppsh:AAAAYXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAEEIA RIQJprDpu/MS4mO1GSBDaiqKRoFTmFncmEiJDI2OWFjM2E2LWVmY2MtNGI4O S04ZWQ0LTY0ODEwZGE4YWEyOQ==

    I can't find the license (and maybe the headers) to use http://108.181.133.95:8080/
    Thank you for your help to explain me where to find license

    Translated with DeepL.com (free version)
    Quote Quote  
  2. Member aqzs's Avatar
    Join Date
    Mar 2024
    Location
    Paris
    Search Comp PM
    First time seeing DRM on francetv content. Here is the key :
    Code:
    269ac3a6efcc4b898ed464810da8aa29:c9fd40e2225059bf1c172ad56e7927bd
    Download command :
    Code:
    N_m3u8DL-RE "https://cloudingest.ftven.fr/3c05cd49b9666/269ac3a6-efcc-4b89-8ed4-64810da8aa29-1718205635_france-domtom_DRM.ism/manifest.mpd" --key 269ac3a6efcc4b898ed464810da8aa29:c9fd40e2225059bf1c172ad56e7927bd -M mkv --save-name "tortues.ninja.les.chevaliers.decaille.S01E61.1080p.WEB"
    Download link : https://www.swisstransfer.com/d/c9e7af25-174f-4152-9495-91fdc01e521c
    The license url :
    Code:
    https://api-drm.ftven.fr/v1/wvls/contentlicenseservice/v1/licenses
    You have to add nv-authorizations in the header. Getting keys with CDRM or others projects like those one might not work due to geo restrictions.
    Last edited by aqzs; 24th Jun 2024 at 17:24.
    Quote Quote  
  3. Member
    Join Date
    Nov 2023
    Location
    USA
    Search Comp PM
    I find the nv-authorizations but I have an error :ERROR
    Wrong headers: while scanning a simple key in "<unicode string>", line 2, column 1: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1 ... ^ could not find expected ':' in "<unicode string>", line 2, column 412: ... Eaz3rpGJmrfFFE14a_ciG4ayA1ZEUodM ^
    Quote Quote  
  4. Member aqzs's Avatar
    Join Date
    Mar 2024
    Location
    Paris
    Search Comp PM
    You are using http://108.181.133.95:8080/ to get keys ? I never used that sorry
    Quote Quote  
  5. Member
    Join Date
    Nov 2023
    Location
    USA
    Search Comp PM
    what tools do you use?
    Quote Quote  
  6. Member aqzs's Avatar
    Join Date
    Mar 2024
    Location
    Paris
    Search Comp PM
    I use pywidevine.

    Here is a small script that wll give you download command based on the video url (with or without DRM) :
    HTML Code:
    from pywidevine.cdm import Cdm
    from pywidevine.device import Device
    from pywidevine.pssh import PSSH
    import requests
    from slugify import slugify
    import xml.etree.ElementTree as ET
    import re
    
    def getpssh(url_mpd):
        psshs = []
        response = requests.get(url_mpd)
        root = ET.fromstring(response.content)
        for i in range(20):
            for j in range(20):
                for k in range(20):
                    for l in range(20):
                        try:
                            if root[i][j][k][l].text not in psshs and len(root[i][j][k][l].text) > 70 and len(root[i][j][k][l].text) < 190:
                                psshs.append(root[i][j][k][l].text)
                        except:
                            pass
        for pssh in psshs:
            return pssh
    
    def getkey(pssh, lic_token):
        headers = {'nv-authorizations': lic_token}
        pssh = PSSH(pssh)
        lic_url = 'https://api-drm.ftven.fr/v1/wvls/contentlicenseservice/v1/licenses'
        device = Device.load(DEVICEPATH)
        cdm = Cdm.from_device(device)
        session_id = cdm.open()
        challenge = cdm.get_license_challenge(session_id, pssh)
        licence = requests.post(lic_url, headers = headers, data=challenge)
        licence.raise_for_status()
        cdm.parse_license(session_id, licence.content)
        keys = []
        for key in cdm.get_keys(session_id):
            if key.type=='CONTENT':
                keys.append(f"{key.kid.hex}:{key.key.hex()}")
        cdm.close(session_id)
        return keys
    
    
    def getvideo(ID):
        headers = {'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36',}
        params = (('country_code', 'FR'),('w', '1084'),('h', '610'),('screen_w', '1774'),('screen_h', '1033'),('player_version', '5.113.5'),('domain', 'www.france.tv'),('device_type', 'desktop'),('browser', 'chrome'),('browser_version', '126'),('os', 'macos'),('os_version', '10_15_7'),('diffusion_mode', 'tunnel_first'),('gmt', '+0200'),('video_product_id', '6137147'),('capabilities', 'drm'),)
        data = requests.get(f'https://k7.ftven.fr/videos/{ID}', headers=headers, params=params).json()
        mpd_url = data['video']['url']
        name = slugify(data['meta']['title'] + '.' + data['meta']['pre_title'], separator='.', lowercase=False)
        if 'drm' in mpd_url:
            pssh = getpssh(mpd_url)
            TOKEN = requests.post('https://k7.ftven.fr/drm-token', headers=headers, params=(('v', '2'),), json={"id":ID,"drm_type":"widevine","license_type":"online"}).json()['token']
            key = getkey(pssh, TOKEN)
            print(f"""N_m3u8DL-RE "{mpd_url}" --save-name "{name}" --select-video best --select-audio all --select-subtitle all -mt -M format=mkv  --log-level OFF --key """ + ' --key '.join(key))
        else:
            print(f"""N_m3u8DL-RE "{mpd_url}" --save-name "{name}" --select-video best --select-audio all --select-subtitle all -mt -M format=mkv  --log-level OFF""")
    
    # urlvid = 'https://www.france.tv/enfants/six-huit-ans/tortues-ninja-les-chevaliers-d-ecaille/saison-1/6137147-irma-se-fait-remarquer.html'
    DEVICEPATH = "device.wvd"
    urlvid = input('Video url: ')
    r = requests.get(urlvid)
    matches = re.findall(r'"videoId":\s*"(.*?)"', r.text)
    if matches:
        videoid = matches[0]
        getvideo(videoid)
    Quote Quote  
  7. Member aqzs's Avatar
    Join Date
    Mar 2024
    Location
    Paris
    Search Comp PM
    You can use this much simpler script if you just want the keys :
    HTML Code:
    from pywidevine.cdm import Cdm
    from pywidevine.device import Device
    from pywidevine.pssh import PSSH
    import requests
    lic_token = input('token: ')
    headers = {'nv-authorizations': lic_token}
    pssh = input("PSSH? ")
    pssh = PSSH(pssh)
    lic_url = 'https://api-drm.ftven.fr/v1/wvls/contentlicenseservice/v1/licenses'
    device = Device.load("device.wvd")
    cdm = Cdm.from_device(device)
    session_id = cdm.open()
    challenge = cdm.get_license_challenge(session_id, pssh)
    licence = requests.post(lic_url, headers = headers, data=challenge)
    licence.raise_for_status()
    cdm.parse_license(session_id, licence.content)
    for key in cdm.get_keys(session_id):
        if key.type=='CONTENT':
            print(f"\n--key {key.kid.hex}:{key.key.hex()}")
    cdm.close(session_id)
    Quote Quote  
  8. Member
    Join Date
    Nov 2023
    Location
    USA
    Search Comp PM
    the script not work : python3.10 pywidevine.py
    Traceback (most recent call last):
    File "/home/Bureau/N_m3u8DL-RE_Beta_linux-x64/pywidevine.py", line 1, in <module>
    from pywidevine.cdm import Cdm
    File "/home/Bureau/N_m3u8DL-RE_Beta_linux-x64/pywidevine.py", line 1, in <module>
    from pywidevine.cdm import Cdm
    ModuleNotFoundError: No module named 'pywidevine.cdm'; 'pywidevine' is not a package
    Quote Quote  
  9. Member aqzs's Avatar
    Join Date
    Mar 2024
    Location
    Paris
    Search Comp PM
    The script works for sure. Rename it other than pywidevine, it's the name of the library you are using, you shouldn't name a file the same as a lib, it's confusing for python. Since you never used pywidevine before install it using :
    Code:
    pip install pywidevine
    In the code I provided you also have to change the path of device.wvd with your own one. You can get a CDM following this thread : https://forum.videohelp.com/threads/408031-Dumping-Your-own-L3-CDM-with-Android-Studio or grabbing one from here : https://forum.videohelp.com/threads/413719-Ready-to-use-CDMs-available-here%21
    Quote Quote  
  10. Member
    Join Date
    Nov 2023
    Location
    USA
    Search Comp PM
    I use second link I download private key client id
    the script :import sys

    from pywidevine import Device

    if len(sys.argv) < 2:
    print(f'usage: {sys.argv[0]} <private-key-file> <client-id-blob> or {sys.argv[0]} <file.wvd>')
    sys.exit(1)

    if len(sys.argv) >= 3:

    with open(sys.argv[1], 'rb') as f:
    private_key = f.read()
    with open(sys.argv[2], 'rb') as f:
    client_id = f.read()

    device = Device(
    private_key=private_key,
    client_id=client_id,
    type_=Device.Types['ANDROID'],
    security_level=3,
    flags=None)

    else:
    device = Device.load(sys.argv[1])

    print(device)

    I have an error: python3.10 device private_key.pem client_id.bin
    Traceback (most recent call last):
    File "/home/Bureau/N_m3u8DL-RE_Beta_linux-x64/device", line 19, in <module>
    type_=Device.Types['ANDROID'],
    AttributeError: type object 'Device' has no attribute 'Types'
    Quote Quote  
  11. Member
    Join Date
    Nov 2023
    Location
    USA
    Search Comp PM
    I use your script :
    python3 pywidevine.py
    token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImtpZCI6IjkxNT YyMCJ9.eyJ0eXAiOiJDb250ZW50QXV0aFoiLCJ2ZXIiOiIxLjA iLCJleHAiOjE3MTkyNjgxOTIsImNvbnRlbnRSaWdodHMiOlt7I mNvbnRlbnRJZCI6IjI2OWFjM2E2LWVmY2MtNGI4OS04ZWQ0LTY 0ODEwZGE4YWEyOSIsInN0YXJ0IjoiMjAyNC0wNi0xM1QyMjowM DowMFoiLCJlbmQiOiIyMDI0LTA2LTI1VDA0OjE5OjUyWiIsInV zYWdlUnVsZXNQcm9maWxlSWQiOiJIRF9IRENQMCIsInN0b3JhY mxlIjpmYWxzZX1dfQ.Zee7SRH20-NEaz3rpGJmrfFFE14a_ciG4ayA1ZEUodM
    PSSH? AAAAYXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAEEIARIQJp rDpu/MS4mO1GSBDaiqKRoFTmFncmEiJDI2OWFjM2E2LWVmY2MtNGI4O S04ZWQ0LTY0ODEwZGE4YWEyOQ==
    Traceback (most recent call last):
    File "/home/ludo/Bureau/N_m3u8DL-RE_Beta_linux-x64/widevine.py", line 15, in <module>
    licence.raise_for_status()
    File "/home/ludo/.local/lib/python3.10/site-packages/requests/models.py", line 1021, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
    requests.exceptions.HTTPError: 400 Client Error: Bad Request for url: https://api-drm.ftven.fr/v1/wvls/contentlicenseservice/v1/licenses
    Quote Quote  
  12. Probably token expired (decoded):
    Code:
    {
        "typ": "ContentAuthZ",
        "ver": "1.0",
        "exp": 1719268192,
        "contentRights": [
            {
                "contentId": "269ac3a6-efcc-4b89-8ed4-64810da8aa29",
                "start": "2024-06-13T22:00:00Z",
                "end": "2024-06-25T04:19:52Z",
                "usageRulesProfileId": "HD_HDCP0",
                "storable": false
            }
        ]
    }
    The "exp" timestamp resolves to Tue, 2024-06-25 00:29:52, and "end" is over as well.
    Quote Quote  
  13. Member
    Join Date
    Nov 2023
    Location
    USA
    Search Comp PM
    yes it's work.
    thanks
    Quote Quote  
  14. Originally Posted by aqzs View Post
    I use pywidevine.

    Here is a small script that wll give you download command based on the video url (with or without DRM) :
    HTML Code:
    from pywidevine.cdm import Cdm
    from pywidevine.device import Device
    from pywidevine.pssh import PSSH
    import requests
    from slugify import slugify
    import xml.etree.ElementTree as ET
    import re
    
    def getpssh(url_mpd):
        psshs = []
        response = requests.get(url_mpd)
        root = ET.fromstring(response.content)
        for i in range(20):
            for j in range(20):
                for k in range(20):
                    for l in range(20):
                        try:
                            if root[i][j][k][l].text not in psshs and len(root[i][j][k][l].text) > 70 and len(root[i][j][k][l].text) < 190:
                                psshs.append(root[i][j][k][l].text)
                        except:
                            pass
        for pssh in psshs:
            return pssh
    
    def getkey(pssh, lic_token):
        headers = {'nv-authorizations': lic_token}
        pssh = PSSH(pssh)
        lic_url = 'https://api-drm.ftven.fr/v1/wvls/contentlicenseservice/v1/licenses'
        device = Device.load(DEVICEPATH)
        cdm = Cdm.from_device(device)
        session_id = cdm.open()
        challenge = cdm.get_license_challenge(session_id, pssh)
        licence = requests.post(lic_url, headers = headers, data=challenge)
        licence.raise_for_status()
        cdm.parse_license(session_id, licence.content)
        keys = []
        for key in cdm.get_keys(session_id):
            if key.type=='CONTENT':
                keys.append(f"{key.kid.hex}:{key.key.hex()}")
        cdm.close(session_id)
        return keys
    
    
    def getvideo(ID):
        headers = {'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36',}
        params = (('country_code', 'FR'),('w', '1084'),('h', '610'),('screen_w', '1774'),('screen_h', '1033'),('player_version', '5.113.5'),('domain', 'www.france.tv'),('device_type', 'desktop'),('browser', 'chrome'),('browser_version', '126'),('os', 'macos'),('os_version', '10_15_7'),('diffusion_mode', 'tunnel_first'),('gmt', '+0200'),('video_product_id', '6137147'),('capabilities', 'drm'),)
        data = requests.get(f'https://k7.ftven.fr/videos/{ID}', headers=headers, params=params).json()
        mpd_url = data['video']['url']
        name = slugify(data['meta']['title'] + '.' + data['meta']['pre_title'], separator='.', lowercase=False)
        if 'drm' in mpd_url:
            pssh = getpssh(mpd_url)
            TOKEN = requests.post('https://k7.ftven.fr/drm-token', headers=headers, params=(('v', '2'),), json={"id":ID,"drm_type":"widevine","license_type":"online"}).json()['token']
            key = getkey(pssh, TOKEN)
            print(f"""N_m3u8DL-RE "{mpd_url}" --save-name "{name}" --select-video best --select-audio all --select-subtitle all -mt -M format=mkv  --log-level OFF --key """ + ' --key '.join(key))
        else:
            print(f"""N_m3u8DL-RE "{mpd_url}" --save-name "{name}" --select-video best --select-audio all --select-subtitle all -mt -M format=mkv  --log-level OFF""")
    
    # urlvid = 'https://www.france.tv/enfants/six-huit-ans/tortues-ninja-les-chevaliers-d-ecaille/saison-1/6137147-irma-se-fait-remarquer.html'
    DEVICEPATH = "device.wvd"
    urlvid = input('Video url: ')
    r = requests.get(urlvid)
    matches = re.findall(r'"videoId":\s*"(.*?)"', r.text)
    if matches:
        videoid = matches[0]
        getvideo(videoid)

    Well done aqzs, a very, very helpful post
    Now trying to do the same for TF1..
    Last edited by YoBruce45; 2nd Dec 2024 at 09:07.
    Quote Quote  
  15. Member
    Join Date
    Jun 2025
    Location
    France
    Search Comp PM
    Hi is there any update to this script seems the France TV format has changed
    For instance www.france.tv/france-4/goldorak/goldorak-saison-1/6795535-les-freres-de-l-espace.html
    Last edited by Prefus; 8th Jun 2025 at 11:48.
    Quote Quote  
  16. Member
    Join Date
    Jun 2025
    Location
    France
    Search Comp PM
    thanks dunno how i managed to have it work but it seems to process flawessly
    a huge thanks for everyone so helpful here on this forum !
    Quote Quote  
  17. Originally Posted by amarok94 View Post
    How do I download drm content with yt-dlp ?
    review
    yt-dlp --allow-u -F "https://cloudingest.ftven.fr/ftv/4/5f/45f4c383f1286/75e61b92-49ed-4dbd-ad07-f1febd5003a3-1747055946_france-domtom_DRM-SEC1.ism/manifest.mpd"

    download
    yt-dlp --allow-u -f video=4993000 -N 20 -o video.mp4 "https://cloudingest.ftven.fr/ftv/4/5f/45f4c383f1286/75e61b92-49ed-4dbd-ad07-f1febd5003a3-1747055946_france-domtom_DRM-SEC1.ism/manifest.mpd"
    yt-dlp --allow-u -f audio_fre=96000 -N 20 -o audio.mp4 "https://cloudingest.ftven.fr/ftv/4/5f/45f4c383f1286/75e61b92-49ed-4dbd-ad07-f1febd5003a3-1747055946_france-domtom_DRM-SEC1.ism/manifest.mpd"


    But why use yt-dlp when you can download and decode directly using N_m3u8DL-RE?
    Code:
    N_m3u8DL-RE "https://cloudingest.ftven.fr/ftv/4/5f/45f4c383f1286/75e61b92-49ed-4dbd-ad07-f1febd5003a3-1747055946_france-domtom_DRM-SEC1.ism/manifest.mpd" -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:142.0) Gecko/20100101 Firefox/142.0" -H "Accept: */*" -H "Origin: https://www.france.tv" -H "Referer: https://www.france.tv/" --key 75e61b9249ed4dbdad07f1febd5003a3:c9b60714dd7932575e67aef9a1b0f179 --use-shaka-packager -M format=mkv
    Image Attached Thumbnails Click image for larger version

Name:	Screenshot_682.jpg
Views:	23
Size:	118.6 KB
ID:	88672  

    Last edited by ListyDoM; 11th Sep 2025 at 08:50.
    Quote Quote  
  18. Thanks everyone for all the info shared above.

    I am new to the subject and no matter what I try it seems impossible to download this episode:
    https://www.france.tv/france-5/echappees-belles/saison-18/7268561-corse-l-ile-aux-tresors.html

    Anyone able to help please ?

    Thanks
    Quote Quote  
  19. Code:
    https://cloudingest.ftven.fr/ftv/c/59/c5930576cf486/5b834e1f-7c8f-488b-9a56-13f1c0ae46f0-1750060207_france-domtom_DRM-SEC1.ism/manifest.mpd
    5b834e1f7c8f488b9a5613f1c0ae46f0:54384d3d45b33fb8a2156f43a8c0b2ce
    Bypass HMACs, One-time-tokens and Lic.Wrapping: https://github.com/DevLARLEY/WidevineProxy2
    Quote Quote  
  20. Originally Posted by ListyDoM View Post
    Originally Posted by amarok94 View Post
    How do I download drm content with yt-dlp ?
    review
    yt-dlp --allow-u -F "https://cloudingest.ftven.fr/ftv/4/5f/45f4c383f1286/75e61b92-49ed-4dbd-ad07-f1febd5003a3-1747055946_france-domtom_DRM-SEC1.ism/manifest.mpd"

    download
    yt-dlp --allow-u -f video=4993000 -N 20 -o video.mp4 "https://cloudingest.ftven.fr/ftv/4/5f/45f4c383f1286/75e61b92-49ed-4dbd-ad07-f1febd5003a3-1747055946_france-domtom_DRM-SEC1.ism/manifest.mpd"
    yt-dlp --allow-u -f audio_fre=96000 -N 20 -o audio.mp4 "https://cloudingest.ftven.fr/ftv/4/5f/45f4c383f1286/75e61b92-49ed-4dbd-ad07-f1febd5003a3-1747055946_france-domtom_DRM-SEC1.ism/manifest.mpd"


    But why use yt-dlp when you can download and decode directly using N_m3u8DL-RE?
    Code:
    N_m3u8DL-RE "https://cloudingest.ftven.fr/ftv/4/5f/45f4c383f1286/75e61b92-49ed-4dbd-ad07-f1febd5003a3-1747055946_france-domtom_DRM-SEC1.ism/manifest.mpd" -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:142.0) Gecko/20100101 Firefox/142.0" -H "Accept: */*" -H "Origin: https://www.france.tv" -H "Referer: https://www.france.tv/" --key 75e61b9249ed4dbdad07f1febd5003a3:c9b60714dd7932575e67aef9a1b0f179 --use-shaka-packager -M format=mkv
    Hi! Yes this seems like the simplest solution. I've just never heard of N_m3u8DL-RE, and have only used yt-dlp until now. I think I've figured out how to use it correctly but how do you find the key and manifest.mpd?
    Quote Quote  
  21. Also can someone recommend a good VPN to use? I'm in the United States so I'm geo blocked. Preferably one that uses openvpn. I don't wanna install any sus apps onto my computer. I use Linux also so I can't do anything that involves a exe. file anyways. I was using vpnbook for a bit but it suddenly stop working for me.

    Edit: Nvm! I found a vpn that works. The only thing I'm still stuck on is getting the keys. Seems like people using pywidevine? I looked it up, and my brain is melting trying to figure it out.
    Last edited by amarok94; 12th Sep 2025 at 21:58.
    Quote Quote  
  22. Originally Posted by larley View Post
    Code:
    https://cloudingest.ftven.fr/ftv/c/59/c5930576cf486/5b834e1f-7c8f-488b-9a56-13f1c0ae46f0-1750060207_france-domtom_DRM-SEC1.ism/manifest.mpd
    5b834e1f7c8f488b9a5613f1c0ae46f0:54384d3d45b33fb8a2156f43a8c0b2ce
    Thank you very Much!

    I've used N_m3u8DL-RE for the first time ever, it downloads and decrypts as expected but still having issues merging audio + video + subs... :
    Quote Quote  
  23. Don't forget that ffmpeg must be in the N_m3u8DL-RE's folder.
    Quote Quote  
  24. Thanks once again!

    All issues sorted with the help of sticky and a little search n the forum + trial and error.
    I can now extract manifest + kid:key and archive the required file on my Pc.

    Many thanks to the forum and everyone's help!
    Quote Quote  
  25. Can you use the Widevineproxy2 plugin to download drm content from youtube for free movies?
    Last edited by amarok94; 15th Sep 2025 at 01:14.
    Quote Quote  
  26. Originally Posted by ListyDoM View Post
    Originally Posted by amarok94 View Post
    How do I download drm content with yt-dlp ?
    review
    yt-dlp --allow-u -F "https://cloudingest.ftven.fr/ftv/4/5f/45f4c383f1286/75e61b92-49ed-4dbd-ad07-f1febd5003a3-1747055946_france-domtom_DRM-SEC1.ism/manifest.mpd"

    download
    yt-dlp --allow-u -f video=4993000 -N 20 -o video.mp4 "https://cloudingest.ftven.fr/ftv/4/5f/45f4c383f1286/75e61b92-49ed-4dbd-ad07-f1febd5003a3-1747055946_france-domtom_DRM-SEC1.ism/manifest.mpd"
    yt-dlp --allow-u -f audio_fre=96000 -N 20 -o audio.mp4 "https://cloudingest.ftven.fr/ftv/4/5f/45f4c383f1286/75e61b92-49ed-4dbd-ad07-f1febd5003a3-1747055946_france-domtom_DRM-SEC1.ism/manifest.mpd"


    But why use yt-dlp when you can download and decode directly using N_m3u8DL-RE?
    Code:
    N_m3u8DL-RE "https://cloudingest.ftven.fr/ftv/4/5f/45f4c383f1286/75e61b92-49ed-4dbd-ad07-f1febd5003a3-1747055946_france-domtom_DRM-SEC1.ism/manifest.mpd" -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:142.0) Gecko/20100101 Firefox/142.0" -H "Accept: */*" -H "Origin: https://www.france.tv" -H "Referer: https://www.france.tv/" --key 75e61b9249ed4dbdad07f1febd5003a3:c9b60714dd7932575e67aef9a1b0f179 --use-shaka-packager -M format=mkv
    If I can't use N_m3u8DL-ER and have to download the video and audio as two files, how do I go around decrypting them?
    Quote Quote  
  27. Originally Posted by amarok94 View Post
    If I can't use N_m3u8DL-ER and have to download the video and audio as two files, how do I go around decrypting them?
    mp4decrypt --key KID:KEY encrypted_video.mp4 decrypted_video.mp4
    https://www.bento4.com/documentation/mp4decrypt/
    or
    shaka-packager
    https://shaka-project.github.io/shaka-packager/html/documentation.html#encryption-decryption-options
    Quote Quote  



Similar Threads

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