VideoHelp Forum




+ Reply to Thread
Results 1 to 6 of 6
  1. Hi everyone.
    I would like to save this documentary. I thought it would be easy, but when i have downloaded it, i cannot see, because is encrypted. L3 guesser extension is not working for me, and i dont know how to find the key.

    I would appreciate if someone can tell me what is the key.

    The documentary is from FC Barcelona web, and you can see it for free and without registering on the site:

    https://one.fcbarcelona.com/es/videos/detail/88580-el-numero-9-romario-el-dulce-despertar-del-sueno

    Thank you so much in advance.
    Quote Quote  
  2. Code:
    --key 1cab3e65bd4f6ec102f1a15ed24a558c:cfac93633836cd172efe1bbbd945eab6
    Quote Quote  
  3. Originally Posted by shellcmd View Post
    Code:
    --key 1cab3e65bd4f6ec102f1a15ed24a558c:cfac93633836cd172efe1bbbd945eab6
    Thank you so much!
    Quote Quote  
  4. Member aqzs's Avatar
    Join Date
    Mar 2024
    Location
    Paris
    Search Comp PM
    I have made a quick script to get download command based on video url :

    HTML Code:
    from pywidevine.cdm import Cdm
    from pywidevine.device import Device
    from pywidevine.pssh import PSSH
    import requests
    from bs4 import BeautifulSoup
    import re
    
    def getkeys(drm_token, lic_url, mpd_url):
        pssh = PSSH(BeautifulSoup(requests.get(mpd_url).text, 'xml').findAll('cenc:pssh')[1].text)
        print('pssh: ', pssh)
        lic_url = f'{lic_url}&drm_token={drm_token}'
        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, data=challenge)
        licence.raise_for_status()
        cdm.parse_license(session_id, licence.content)
        keys = [f"{key.kid.hex}:{key.key.hex()}" for key in cdm.get_keys(session_id) if key.type != 'SIGNING']
        cdm.close(session_id)
        return keys
    
    def getcmd(vidurl):
        id = vidurl.split('/')[-1]
        id = id.split('-')[0]
        print('id: ', 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',}
        response = requests.get(vidurl, headers=headers)
        match = re.search(r'accessToken\s*:\s*"([^"]*)"', response.text)
        if match:
            access_token = match.group(1)
            headers['authorization'] = f'jwtok {access_token}'
            params = (('optional_fields', 'type,videotype,media_url,is_initial,assets,drm_token,test,plain,url_app_web'),)
            data = requests.get('https://api-fcb.interactvty.com/api/2.0/contents/content_resources/88580/', headers=headers, params=params).json()
            for r in data['results']:
                for asset in r['assets']:
                    if asset['drm_type'] == "WID":
                        mpd_url = asset['url']
                        lic_url = asset['drm_license_serv_url']
                drmtoken = r['drm_token']
                NAME = r['name']
                keys = getkeys(drmtoken, lic_url, mpd_url)
                print('mpd_url: ', mpd_url)
                print('keys: ', keys)
                print()
                print(f"""N_m3u8DL-RE "{mpd_url}" --save-name "{NAME}" -sv best -sa all -ss all -mt -M format=mkv --log-level OFF --key """ + ' --key '.join(keys))
        else:
            print("Access Token not found.")
    
    DEVICEPATH = "device.wvd"
    vidurl = 'https://one.fcbarcelona.com/es/videos/88580-el-numero-9-romario-el-dulce-despertar-del-sueno'
    vidurl = input("Enter video URL: ")
    getcmd(vidurl)
    HTML Code:
    Enter video URL: https://one.fcbarcelona.com/es/videos/detail/88580-el-numero-9-romario-el-dulce-despertar-del-sueno
    id:  88580
    pssh:  AAAA7HBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAMwSEByrPmW9T27BAvGhXtJKVYwSEByrPmW9T27BAvGhXtJKVYwSEByrPmW9T27BAvGhXtJKVYwSEByrPmW9T27BAvGhXtJKVYwSEByrPmW9T27BAvGhXtJKVYwSEByrPmW9T27BAvGhXtJKVYwSEByrPmW9T27BAvGhXtJKVYwSEByrPmW9T27BAvGhXtJKVYwSEByrPmW9T27BAvGhXtJKVYwSEByrPmW9T27BAvGhXtJKVYwSEByrPmW9T27BAvGhXtJKVYxI49yVmwY=
    mpd_url:  https://fcb-cdn-global.interactvty.net/drm/121404/f89169f7dcee84ca1ea0e4f9cb4aa2f9d9321f847dd6661a157ab24a8845c252ssh5/I062T1408111/resultados/playready_and_widevine/h264.mpd
    keys:  ['1cab3e65bd4f6ec102f1a15ed24a558c:cfac93633836cd172efe1bbbd945eab6']
    
    N_m3u8DL-RE "https://fcb-cdn-global.interactvty.net/drm/121404/f89169f7dcee84ca1ea0e4f9cb4aa2f9d9321f847dd6661a157ab24a8845c252ssh5/I062T1408111/resultados/playready_and_widevine/h264.mpd" --save-name "El número 9: Romario, el dolç despertar del somni" -sv best -sa all -ss all -mt -M format=mkv --log-level OFF --key 1cab3e65bd4f6ec102f1a15ed24a558c:cfac93633836cd172efe1bbbd945eab6
    Have fun !
    Quote Quote  
  5. Originally Posted by aqzs View Post
    I have made a quick script to get download command based on video url :

    HTML Code:
    from pywidevine.cdm import Cdm
    from pywidevine.device import Device
    from pywidevine.pssh import PSSH
    import requests
    from bs4 import BeautifulSoup
    import re
    
    def getkeys(drm_token, lic_url, mpd_url):
        pssh = PSSH(BeautifulSoup(requests.get(mpd_url).text, 'xml').findAll('cenc:pssh')[1].text)
        print('pssh: ', pssh)
        lic_url = f'{lic_url}&drm_token={drm_token}'
        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, data=challenge)
        licence.raise_for_status()
        cdm.parse_license(session_id, licence.content)
        keys = [f"{key.kid.hex}:{key.key.hex()}" for key in cdm.get_keys(session_id) if key.type != 'SIGNING']
        cdm.close(session_id)
        return keys
    
    def getcmd(vidurl):
        id = vidurl.split('/')[-1]
        id = id.split('-')[0]
        print('id: ', 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',}
        response = requests.get(vidurl, headers=headers)
        match = re.search(r'accessToken\s*:\s*"([^"]*)"', response.text)
        if match:
            access_token = match.group(1)
            headers['authorization'] = f'jwtok {access_token}'
            params = (('optional_fields', 'type,videotype,media_url,is_initial,assets,drm_token,test,plain,url_app_web'),)
            data = requests.get('https://api-fcb.interactvty.com/api/2.0/contents/content_resources/88580/', headers=headers, params=params).json()
            for r in data['results']:
                for asset in r['assets']:
                    if asset['drm_type'] == "WID":
                        mpd_url = asset['url']
                        lic_url = asset['drm_license_serv_url']
                drmtoken = r['drm_token']
                NAME = r['name']
                keys = getkeys(drmtoken, lic_url, mpd_url)
                print('mpd_url: ', mpd_url)
                print('keys: ', keys)
                print()
                print(f"""N_m3u8DL-RE "{mpd_url}" --save-name "{NAME}" -sv best -sa all -ss all -mt -M format=mkv --log-level OFF --key """ + ' --key '.join(keys))
        else:
            print("Access Token not found.")
    
    DEVICEPATH = "device.wvd"
    vidurl = 'https://one.fcbarcelona.com/es/videos/88580-el-numero-9-romario-el-dulce-despertar-del-sueno'
    vidurl = input("Enter video URL: ")
    getcmd(vidurl)
    HTML Code:
    Enter video URL: https://one.fcbarcelona.com/es/videos/detail/88580-el-numero-9-romario-el-dulce-despertar-del-sueno
    id:  88580
    pssh:  AAAA7HBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAMwSEByrPmW9T27BAvGhXtJKVYwSEByrPmW9T27BAvGhXtJKVYwSEByrPmW9T27BAvGhXtJKVYwSEByrPmW9T27BAvGhXtJKVYwSEByrPmW9T27BAvGhXtJKVYwSEByrPmW9T27BAvGhXtJKVYwSEByrPmW9T27BAvGhXtJKVYwSEByrPmW9T27BAvGhXtJKVYwSEByrPmW9T27BAvGhXtJKVYwSEByrPmW9T27BAvGhXtJKVYwSEByrPmW9T27BAvGhXtJKVYxI49yVmwY=
    mpd_url:  https://fcb-cdn-global.interactvty.net/drm/121404/f89169f7dcee84ca1ea0e4f9cb4aa2f9d9321f847dd6661a157ab24a8845c252ssh5/I062T1408111/resultados/playready_and_widevine/h264.mpd
    keys:  ['1cab3e65bd4f6ec102f1a15ed24a558c:cfac93633836cd172efe1bbbd945eab6']
    
    N_m3u8DL-RE "https://fcb-cdn-global.interactvty.net/drm/121404/f89169f7dcee84ca1ea0e4f9cb4aa2f9d9321f847dd6661a157ab24a8845c252ssh5/I062T1408111/resultados/playready_and_widevine/h264.mpd" --save-name "El número 9: Romario, el dolç despertar del somni" -sv best -sa all -ss all -mt -M format=mkv --log-level OFF --key 1cab3e65bd4f6ec102f1a15ed24a558c:cfac93633836cd172efe1bbbd945eab6
    Have fun !

    Thanks!!
    Quote Quote  
  6. Member aqzs's Avatar
    Join Date
    Mar 2024
    Location
    Paris
    Search Comp PM
    Originally Posted by Asdfgf View Post
    Thanks!!
    No problem ! Happy it helped someone !
    Quote Quote  



Similar Threads

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