VideoHelp Forum
+ Reply to Thread
Results 1 to 12 of 12
Thread
  1. I'm trying to download a video from:

    Code:
    https://3dcollective.es/cursosonline/leccion/5-1-que-significa-pbr-y-porque-es-importante/
    And I have been able to find the m3u8 and the key with the debugger ( see img01.png )
    When I try to use the url with N_m3u8DL I get that error.

    I also tried using hlsdl giving the key that comes with the m3u8:

    Code:
    #EXTM3U
    #EXT-X-VERSION:3
    #EXT-X-MEDIA-SEQUENCE:0
    #EXT-X-ALLOW-CACHE:YES
    #EXT-X-TARGETDURATION:13
    #EXT-X-KEY:METHOD=AES-128,URI="https://3dcollective.es/cursosonline/?fv_player_hls_key=vray_next/5.01_MaterialesPBR/index",IV=0x095ccc59d4b6d3fe7f74de0fe6346f93
    #EXTINF:12.066667,
    hls_1080_00000.ts
    And the one that gives as response on the next network request:
    Code:
    https://3dcollective.es/cursosonline/?fv_player_hls_key=vray_next/5.01_MaterialesPBR/index
    Code:
    jXusx8sl2Y2wvrW3H5wAZA==
    Image Attached Thumbnails Click image for larger version

Name:	img01.png
Views:	20
Size:	77.5 KB
ID:	80203  

    Click image for larger version

Name:	img02.png
Views:	22
Size:	36.1 KB
ID:	80204  

    Quote Quote  
  2. Have you tried to convert the key returned (it's base64 format) into hex? If I didn't make a mistake, it should be "8d7bacc7cb25d98db0beb5b71f9c0064"

    Try if it works with that key.
    Quote Quote  
  3. Member aqzs's Avatar
    Join Date
    Mar 2024
    Location
    Paris
    Search Comp PM
    I tried getting the key from the m3u8 link :
    Code:
    https://d1eicwxibczqbg.cloudfront.net/vray_next/8.01_Post+Base/index.m3u8
    But I got a blank response from the request. I probably have to add headers to the command. Right clic in the devtools on the request and copy as curl. Paste that somewhere else and only keep -H .... Add the to the download command.

    I can play the link you send :
    Image
    [Attachment 80205 - Click to enlarge]


    I'm able to play the introduction (https://3dcollective.es/cursosonline/leccion/1-1-presentacion-del-curso/)
    Code:
    N_m3u8DL-RE "https://d1eicwxibczqbg.cloudfront.net/vray_next/1.01_Intro/index.m3u8" --custom-hls-key c919b04f419e2db0754f79d2e3eaeef1 --save-name "1.1. PRESENTACIÓN DEL CURSO, OBJETIVOS Y TEMARIO (VISTA PREVIA GRATUITA)"
    Image
    [Attachment 80206 - Click to enlarge]
    Quote Quote  
  4. Originally Posted by Obo View Post
    Have you tried to convert the key returned (it's base64 format) into hex? If I didn't make a mistake, it should be "8d7bacc7cb25d98db0beb5b71f9c0064"

    Try if it works with that key.
    Yes, I did that but I still get the error.
    I'll get the curl response that you asked on the other message.
    Image Attached Thumbnails Click image for larger version

Name:	Screenshot_1.png
Views:	10
Size:	5.3 KB
ID:	80207  

    Quote Quote  
  5. Member aqzs's Avatar
    Join Date
    Mar 2024
    Location
    Paris
    Search Comp PM
    To get the key and not a blank response you have to make an api call to 'https://3dcollective.es/cursosonline/wp-admin/admin-ajax.php' :
    HTML Code:
    import requests
    
    # activate the key
    data = {'action': 'fv_fp_secure_hls_cookie','url': 'https://d1eicwxibczqbg.cloudfront.net/vray_next/1.01_Intro/index.m3u8'}
    response = requests.post('https://3dcollective.es/cursosonline/wp-admin/admin-ajax.php', data=data)
    
    # get the key
    params = (('fv_player_hls_key', 'vray_next/1.01_Intro/index'),)
    response = requests.get('https://3dcollective.es/cursosonline/', params=params)
    
    print(response.content.hex())
    Quote Quote  
  6. I'm able to play the introduction (https://3dcollective.es/cursosonline/leccion/1-1-presentacion-del-curso/)
    Code:
    N_m3u8DL-RE "https://d1eicwxibczqbg.cloudfront.net/vray_next/1.01_Intro/index.m3u8" --custom-hls-key c919b04f419e2db0754f79d2e3eaeef1 --save-name "1.1. PRESENTACIÓN DEL CURSO, OBJETIVOS Y TEMARIO (VISTA PREVIA GRATUITA)"

    I'm able to get that one too, but is because is the only one not paywalled.
    Quote Quote  
  7. Member aqzs's Avatar
    Join Date
    Mar 2024
    Location
    Paris
    Search Comp PM
    Paywall doesn't change anything, I got the m3u8 for the video you want :
    Code:
    N_m3u8DL-RE "https://d1eicwxibczqbg.cloudfront.net/vray_next/8.01_Post+Base/index.m3u8" --custom-hls-key 29c6ac59adb988eb71eae25c439d2e3d --save-name "5.1. ¿QUÉ SIGNIFICA PBR Y POR QUÉ ES IMPORTANTE?"
    Image
    [Attachment 80208 - Click to enlarge]

    https://www.swisstransfer.com/d/73a2c99d-50be-428c-850f-e01311048af9
    Quote Quote  
  8. Originally Posted by aqzs View Post
    Paywall doesn't change anything, I got the m3u8 for the video you want :
    Code:
    N_m3u8DL-RE "https://d1eicwxibczqbg.cloudfront.net/vray_next/8.01_Post+Base/index.m3u8" --custom-hls-key 29c6ac59adb988eb71eae25c439d2e3d --save-name "5.1. ¿QUÉ SIGNIFICA PBR Y POR QUÉ ES IMPORTANTE?"
    Image
    [Attachment 80208 - Click to enlarge]

    https://www.swisstransfer.com/d/73a2c99d-50be-428c-850f-e01311048af9
    I'm also able to download the json and m3u8 but I'm still getting the error with no valid key if I try to download the video itself:
    Image Attached Thumbnails Click image for larger version

Name:	Screenshot_2.png
Views:	17
Size:	97.4 KB
ID:	80209  

    Quote Quote  
  9. Member aqzs's Avatar
    Join Date
    Mar 2024
    Location
    Paris
    Search Comp PM
    For :
    Code:
    https://d1eicwxibczqbg.cloudfront.net/vray_next/5.02_LookDevMateriales/index.m3u8
    Code:
    N_m3u8DL-RE "https://d1eicwxibczqbg.cloudfront.net/vray_next/5.02_LookDevMateriales/index.m3u8" --custom-hls-key "577397b6ee551a522a1477f46e80effc" --save-name "name"
    Image
    [Attachment 80210 - Click to enlarge]

    Working fine on my side
    Quote Quote  
  10. Member aqzs's Avatar
    Join Date
    Mar 2024
    Location
    Paris
    Search Comp PM
    Here is a script that based on the page url will return the download command :
    HTML Code:
    import re
    import json
    import requests
    
    pageurl = 'https://3dcollective.es/cursosonline/leccion/1-1-presentacion-del-curso/'
    pageurl = input('pageurl: ')
    
    cookies = {
    }
    
    headers = {
    }
    
    response = requests.get(pageurl, headers=headers, cookies=cookies)
    pattern = r'data-item="(.*?)"'
    match = re.search(pattern, response.text)
    if match:
        data_item_content = match.group(1)
        data_item_content = data_item_content.replace('"', '"')
        data_item_json = json.loads(data_item_content)
        m3u8_url = data_item_json['sources'][0]['src']
    
        # activate the key
        data = {'action': 'fv_fp_secure_hls_cookie','url': m3u8_url}
        response = requests.post('https://3dcollective.es/cursosonline/wp-admin/admin-ajax.php', data=data)
    
        # get the key
        params = (('fv_player_hls_key', m3u8_url.split('cloudfront.net/')[1].replace('.m3u8', '')),)
        response = requests.get('https://3dcollective.es/cursosonline/', params=params)
        key = response.content.hex()
    
        name = 'name'
    
        print(f"""N_m3u8DL-RE "{m3u8_url}" --custom-hls-key "{key}" --save-name "{name}" """)
    else:
        print("data-item attribute not found")
    You have to edit cookies and headers, I could't test with others course than the free one..
    Quote Quote  
  11. Originally Posted by aqzs View Post
    For :
    Code:
    https://d1eicwxibczqbg.cloudfront.net/vray_next/5.02_LookDevMateriales/index.m3u8
    Code:
    N_m3u8DL-RE "https://d1eicwxibczqbg.cloudfront.net/vray_next/5.02_LookDevMateriales/index.m3u8" --custom-hls-key "577397b6ee551a522a1477f46e80effc" --save-name "name"
    Image
    [Attachment 80210 - Click to enlarge]

    Working fine on my side
    Thank you!!!

    Sh**!, I spent the whole morning banging my head on this. It was the console I was using ( git-bash ), I changed to a powershell console and now works perfectly.

    Again, thanl you very much for your help.
    Image Attached Thumbnails Click image for larger version

Name:	Screenshot_3.png
Views:	21
Size:	77.5 KB
ID:	80211  

    Quote Quote  
  12. Originally Posted by aqzs View Post
    Here is a script that based on the page url will return the download command :
    HTML Code:
    import re
    import json
    import requests
    
    pageurl = 'https://3dcollective.es/cursosonline/leccion/1-1-presentacion-del-curso/'
    pageurl = input('pageurl: ')
    
    cookies = {
    }
    
    headers = {
    }
    
    response = requests.get(pageurl, headers=headers, cookies=cookies)
    pattern = r'data-item="(.*?)"'
    match = re.search(pattern, response.text)
    if match:
        data_item_content = match.group(1)
        data_item_content = data_item_content.replace('"', '"')
        data_item_json = json.loads(data_item_content)
        m3u8_url = data_item_json['sources'][0]['src']
    
        # activate the key
        data = {'action': 'fv_fp_secure_hls_cookie','url': m3u8_url}
        response = requests.post('https://3dcollective.es/cursosonline/wp-admin/admin-ajax.php', data=data)
    
        # get the key
        params = (('fv_player_hls_key', m3u8_url.split('cloudfront.net/')[1].replace('.m3u8', '')),)
        response = requests.get('https://3dcollective.es/cursosonline/', params=params)
        key = response.content.hex()
    
        name = 'name'
    
        print(f"""N_m3u8DL-RE "{m3u8_url}" --custom-hls-key "{key}" --save-name "{name}" """)
    else:
        print("data-item attribute not found")
    You have to edit cookies and headers, I could't test with others course than the free one..
    Thanks, I'll use it.
    Quote Quote  



Similar Threads

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