VideoHelp Forum
+ Reply to Thread
Page 1 of 2
1 2 LastLast
Results 1 to 30 of 42
Thread
  1. Good morning,
    I'm trying to learn from this wonderful forum.

    Unfortunately I don't have many basic skills, but I hope with time and your suggestions to become more experienced and no longer having to ask anyone for help.

    I have this mpd file:

    https://live3p.msf.cdn.mediaset.net/content/dash_d1_gwv_vos/live/channel(ki)/manifest.mpd

    - I opened with an editor and I have not found the pssh string;

    - I saw that there is this string::
    uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed

    - I think I figured out that you can get pssh from this tool:

    https://tools.axinom.com/generators/PsshBox

    - I generated and got this string:

    AAAAIHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAAA=

    - I pasted this string on this tool:

    https://keysdb.net/

    I didn't find the keys.

    Could someone help me?

    thanks !!!
    Quote Quote  
  2. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    Oh! The hard ones first eh?

    edef8ba9-79d6-4ace-a3c8-27dcd51d21ed identifies it as widevine encrypted.

    There is no pssh nor default KID inside the mpd

    The pssh will be inside the first audio or video segement init.m4a or init.mp4 You will need tools and more knowledge to get the pssh in this case .

    Not easy for your first attempt at decryption.

    If you insist on continuing then search the forum for 'pssh from init file'
    Quote Quote  
  3. Use the EME Logger script with Tampermonkey to obtain your PSSH easily for such videos.
    Quote Quote  
  4. Originally Posted by cristinas View Post
    Good morning,
    I'm trying to learn from this wonderful forum.

    Unfortunately I don't have many basic skills, but I hope with time and your suggestions to become more experienced and no longer having to ask anyone for help.

    I have this mpd file:

    https://live3p.msf.cdn.mediaset.net/content/dash_d1_gwv_vos/live/channel(ki)/manifest.mpd

    - I opened with an editor and I have not found the pssh string;

    - I saw that there is this string::
    uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed

    - I think I figured out that you can get pssh from this tool:

    https://tools.axinom.com/generators/PsshBox

    - I generated and got this string:

    AAAAIHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAAA=

    - I pasted this string on this tool:

    https://keysdb.net/

    I didn't find the keys.

    Could someone help me?

    thanks !!!
    Your PSSH

    Code:
    AAAAXnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAD4IARIQAPnzwHg1Nrj+6AAOL3cgahoMbWVkaWFzZXRwbGF5IhRkYXNoLXdpZGV2aW5lLW1weC1LSSoCU0QyAA==
    Quote Quote  
  5. Firefox Browser (language ITA):

    "Strumenti di sviluppo web"

    Rete > Filtra URL > you write 'mpd' (click) > Risposta (you'll find the '<cenc: pssh>AAAAU3B...')

    Rete > Filtra URL > you write 'lic' (you'll find the 'getRawWidevine', right click 'Copia valore' > Copia URL')

    Paste the PSSH and License into keysdb.net and you will get your key(s).
    Quote Quote  
  6. Thanks to everyone for the precious advices.

    I will try soon
    Quote Quote  
  7. Originally Posted by Boldest06 View Post
    Firefox Browser (language ITA):

    "Strumenti di sviluppo web"

    Rete > Filtra URL > you write 'mpd' (click) > Risposta (you'll find the '<cenc: pssh>AAAAU3B...')

    Rete > Filtra URL > you write 'lic' (you'll find the 'getRawWidevine', right click 'Copia valore' > Copia URL')

    Paste the PSSH and License into keysdb.net and you will get your key(s).

    Thanks, but what link I have to use? iris from mediasetplay?
    Quote Quote  
  8. @_stream_
    thanks for pssh.

    I use that onhttps://keysdb.net

    and I got:

    17538a0196d55adf9d8e9d8e1837a2c5:a9877500bbf4e43d1 02285743bbf029e
    6f3b30d3460456bd859cf37a36eab388:9091797efc5bb5fac 49e9a9282862b9b
    2a49b6cc622f5a28b0dd50aa661f58ab:de0127bad735d3f47 a01b2f8c17db820
    6714eac0f83b515583d057b46460ba5b:17ae7056ff7c18efc 0f8fea0bc5b365d
    dbd0acbfe6cb5d858c03cb69efc9a686:6902eae6c30b2e0db d261c11be25a1e0

    but doesn't work.

    maybe because I have not correct license url?

    (Im really begginer, I know that for you I can be boring..)
    Quote Quote  
  9. Originally Posted by cristinas View Post
    @_stream_
    thanks for pssh.

    I use that onhttps://keysdb.net

    and I got:

    17538a0196d55adf9d8e9d8e1837a2c5:a9877500bbf4e43d1 02285743bbf029e
    6f3b30d3460456bd859cf37a36eab388:9091797efc5bb5fac 49e9a9282862b9b
    2a49b6cc622f5a28b0dd50aa661f58ab:de0127bad735d3f47 a01b2f8c17db820
    6714eac0f83b515583d057b46460ba5b:17ae7056ff7c18efc 0f8fea0bc5b365d
    dbd0acbfe6cb5d858c03cb69efc9a686:6902eae6c30b2e0db d261c11be25a1e0

    but doesn't work.

    maybe because I have not correct license url?

    (Im really begginer, I know that for you I can be boring..)
    Share the video link here please (not .mpd but URL video).
    Don't worry, they're all here to help and learn.
    Quote Quote  
  10. It's not DRM


    If you need for DRM content, I have ready made with full features; DOWNLOAD up to MUX (except live)
    It's not free of course. You may DM me
    Last edited by maherz12; 23rd Jul 2023 at 15:29.
    Quote Quote  
  11. use this command to rip 50 min of your video (or edit --live-record-limit value as you need)

    Code:
    N_m3u8DL-RE "https://live3.msf.cdn.mediaset.net/content/dash_d0_clr_vos/live/channel(ki)/manifest.mpd" --live-real-time-merge --live-pipe-mux --live-record-limit 00:50:00
    Quote Quote  
  12. dev menu filter: smil link needed

    Code:
    from pathlib import Path
    import requests
    import subprocess
    import html
    import re
    import os
    
    from requests.packages.urllib3.exceptions import InsecureRequestWarning
    requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
    
    m3u8DL_RE = 'N_m3u8DL-RE.exe'
    
    files_to_delete = ["key.txt"]
    for file_name in files_to_delete:
        if os.path.exists(file_name):
            os.remove(file_name)
            print(f"{file_name} file successfully deleted.")
    
    link = input('dev menu filter: (smil) link here: ')
    
    token = re.findall(r'auth=(.*?)&', link)[0].strip()
    
    headers = {
        'Accept': 'application/json, text/plain, */*',
        'Origin': 'https://mediasetinfinity.mediaset.it',
        'Referer': 'https://mediasetinfinity.mediaset.it/',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36',
    }
    
    response = requests.get(link, headers=headers).text
    
    mpd = re.findall(r'<video src=\"(.*?)\"', response)[0].strip()
    pid = re.findall(r'\|pid=(.*?)\|', response)[0].strip()
    aid = re.findall(r'value=\"aid=(.*?)\|', response)[0].strip()
    pgid = re.findall(r'\|pgid=(.*?)\|', response)[0].strip()
    
    lic_url = f'https://widevine.entitlement.theplatform.eu/wv/web/ModularDrm/getRawWidevineLicense?releasePid={pid}&account=http%3A%2F%2Faccess.auth.theplatform.com%2Fdata%2FAccount%2F{aid}&schema=1.0&token={token}'
    
    
    def format_episode_number(number):
        number_str = str(number)
        if len(number_str) == 1:
            return '0' + number_str
        return number_str
    
    def replace_invalid_chars(title: str) -> str:
        invalid_chars = {'<': '\u02c2', '>': '\u02c3',
        ':': '\u02d0', '"': '\u02ba', '/': '\u2044',
        '\\': '\u29f9', '|': '\u01c0', '?': '\u0294',
        '*': '\u2217'}
        
        return ''.join(invalid_chars.get(c, c) for c in title)
    
    import requests
    
    headers2 = {
        'Accept': 'application/json, text/plain, */*',
        'Connection': 'keep-alive',
        'Origin': 'https://mediasetinfinity.mediaset.it',
        'Referer': 'https://mediasetinfinity.mediaset.it/',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36',
    }
    
    params2 = {
        'form': 'cjson',
        'httpError': 'true',
    }
    
    response2 = requests.get('https://feed.entertainment.tv.theplatform.eu/f/PR1GhC/mediaset-prod-all-programs-v2/guid/-/'+pgid+'', params=params2, headers=headers2).json()
    
    try:
        show_title = response2['mediasetprogram$brandTitle']
        ep_title = response2['title']
        tvSeasonNumber = response2['tvSeasonNumber']
        tvSeasonEpisodeNumber = response2['tvSeasonEpisodeNumber']
        
        zerofill_seasonNumber = format_episode_number(tvSeasonNumber)
        zerofill_episodeNumber = format_episode_number(tvSeasonEpisodeNumber)    
        
        title = f'{show_title} - S{zerofill_seasonNumber}E{zerofill_episodeNumber} - {ep_title}'
    except KeyError:
        m_title = response2['title']
        
        title = f'{m_title}'
    
    a_title = replace_invalid_chars(title)
    print(f'\n{a_title}')
    
    ####################srt
    try:
        pattern = r'(http.*?\.srt)\" lang=\"(.*?)\"'
        matches = re.findall(pattern, response)
        print('\n[find srt]')
        unique_links = set()
        srt_link_list = []
        
        for match in matches:
            srt_link, lang = match
            if srt_link not in unique_links:
                unique_links.add(srt_link)
                srt_link_list.append({"srt_link": srt_link, "lang": lang})
                
                import requests
                
                headers_srt = {
                    'authority': 'statictxt.msf.cdn.mediaset.net',
                    'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
                    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36',
                }
                
                for srt in srt_link_list:
                    srt_links = srt['srt_link']
                    langs = srt['lang']
                
                    response_srt = requests.get(srt_links, headers=headers_srt).text
                
                    with open(f"{a_title}.{langs}.srt", "w", encoding="utf-8") as file:
                        file.write(response_srt)
    except IndexError:
        print('\n[no srt]\n')
    
    ####################
    
    import requests
    
    headers03 = {
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
        'Connection': 'keep-alive',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36',
    }
    
    response03 = requests.get(mpd, headers=headers03, verify=False).text
    
    try:
        pssh = re.findall(r'<cenc:pssh>(.{20,170})</cenc:pssh>', response03)[0].strip()
        print(f'\n{pssh}')
        
        import requests
        
        headers_clone = {
            'Connection': 'keep-alive',
            'Content-Type': 'application/json',
            'Origin': 'https://wvclone.fly.dev',
            'Referer': 'https://wvclone.fly.dev/',
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36',
        }
        
        json_data_clone = {
            'password': 'password',
            'license': lic_url,
            'headers': f'Connection: keep-alive\n',
            'pssh': pssh,
            'buildInfo': '',
            'cache': True,
        }
        
        clone_resp = requests.post('https://wvclone.fly.dev/wv', headers=headers_clone, json=json_data_clone, verify=False).text
        
        from bs4 import BeautifulSoup
        
        soup = BeautifulSoup(clone_resp, 'html.parser')
        li_s = soup.find_all('li')
        keys = []
        
        for li in li_s:
            keys.append(li.text.strip())
        
        key_s = ' '.join(['--key ' + key for key in keys])
        print(f'\nkey(s):\n{key_s}')
        
        print(key_s, file=open("key.txt", "w"))
        
        with open("key.txt", "r") as fs:
         ke_ys = fs.readlines()
         ke_ys = ke_ys[0].strip().split()
        
        print()
        subprocess.run([m3u8DL_RE,
                        '-M', 'format=mkv:muxer=ffmpeg',
                        '--auto-select',
                        '--concurrent-download',
                        '--del-after-done',
                        '--log-level', 'INFO',
                        '--save-name', 'video',
                        mpd, *ke_ys])
    except IndexError:
        print('\n[INFO]drm free\n')
        subprocess.run([m3u8DL_RE,
                        '-M', 'format=mkv:muxer=ffmpeg',
                        '--auto-select',
                        '--concurrent-download',
                        '--del-after-done',
                        '--log-level', 'INFO',
                        '--save-name', 'video', mpd])
    
    try:
        Path('video.mkv').rename(''+a_title+'.mkv')
        print(f'{a_title}.mkv \nall done!\n')
    except FileNotFoundError:
        print("[ERROR] no mkv file")   
    
    for file_name in files_to_delete:
        if os.path.exists(file_name):
            os.remove(file_name)
            print(f"{file_name} file successfully deleted.")
    Quote Quote  
  13. Originally Posted by Snake View Post
    fd6d2eb864e736117c6e317d27f56423:4dbd2febf2044255f 679ec71a609587e

    https://vod06.msf.cdn.mediaset.net/farmunica/2023/07/1371426_18973e79e51f89/dashrcenc/hd_wv_mpl.mpd
    Quote Quote  
  14. sorry I'm not very expert with dev stuff, is that one under Payload?
    Quote Quote  
  15. Originally Posted by Snake View Post
    sorry I'm not very expert with dev stuff, is that one under Payload?
    video: dev menu smil
    Quote Quote  
  16. works perfectly, thank you very much for the help to both of you!
    Quote Quote  
  17. whats wrong with using the script that sk8ordi3 posted?
    Quote Quote  
  18. Search, Learn, Download! Karoolus's Avatar
    Join Date
    Oct 2022
    Location
    Belgium
    Search Comp PM
    Originally Posted by maherz12 View Post
    It's not DRM


    If you need for DRM content, I have ready made with full features; DOWNLOAD up to MUX (except live)
    It's not free of course. You may DM me
    first of all, is this even allowed?
    second, you do realize that people are just handing out scripts here, right?
    Quote Quote  
  19. Originally Posted by ElCap View Post
    whats wrong with using the script that sk8ordi3 posted?
    there is nothing wrong I guess, I just have no idea what to do with that, I'm new to DRM stuff, I know how to find MPD url, download and decrypt, that's all. Can't use the Android CMD method, my PC has too low requirements.
    Quote Quote  
  20. Member
    Join Date
    Oct 2022
    Location
    Behind You
    Search PM
    Originally Posted by Snake View Post
    Originally Posted by ElCap View Post
    whats wrong with using the script that sk8ordi3 posted?
    there is nothing wrong I guess, I just have no idea what to do with that, I'm new to DRM stuff, I know how to find MPD url, download and decrypt, that's all. Can't use the Android CMD method, my PC has too low requirements.
    Someone posted some free CDM's on here not long ago. I forgot the thread it was in tho. If i find them again I will edit this with the link

    Edit: https://forum.videohelp.com/threads/407820-Can-I-download-from-CBS-com/page2#post2700255
    Karoolus posted 4 L3 CDMs here, you can use these
    Last edited by Magicians; 8th Aug 2023 at 06:55.
    I help all that ask.
    Telegram: https://t.me/MagicianNulled
    Quote Quote  
  21. Originally Posted by Magicians View Post
    Originally Posted by Snake View Post
    Originally Posted by ElCap View Post
    whats wrong with using the script that sk8ordi3 posted?
    there is nothing wrong I guess, I just have no idea what to do with that, I'm new to DRM stuff, I know how to find MPD url, download and decrypt, that's all. Can't use the Android CMD method, my PC has too low requirements.
    Someone posted some free CDM's on here not long ago. I forgot the thread it was in tho. If i find them again I will edit this with the link

    Edit: https://forum.videohelp.com/threads/407820-Can-I-download-from-CBS-com/page2#post2700255
    Karoolus posted 4 L3 CDMs here, you can use these
    what I need to use these? I have FFmpeg, Yt-dlp, N_m3u8DL-RE, mp4decrypt
    Quote Quote  
  22. uff... do you realize that don't even need to have your own cdm
    because mediaset script use online cdm...
    Quote Quote  
  23. Hello a question, does anyone know or have the keys of these two channels?
    It does not let me enter because I do not live in Italy and with VPN also does not let me because it is in the blacklist.
    Thanks

    It`s free but geoblocked and with DRM
    Italia 1:
    https://live3p.msf.cdn.mediaset.net/content/dash_d1_gwv_vos/live/channel(i1)/manifest.mpd
    https://mediasetinfinity.mediaset.it/diretta/italia1_cI1
    Canale 5:
    https://live3p.msf.cdn.mediaset.net/content/dash_d1_gwv_vos/live/channel(c5)/manifest.mpd
    https://mediasetinfinity.mediaset.it/diretta/canale5_cC5
    Quote Quote  
  24. Code:
    00f9f3c0783536b8ee91704e23b78016:bfd04d6f544c9cc4d35cb13ab6778587
    Code:
    00f9f3c0783536b8ce4a30a01a52e082:e926f7d45af4f7d154c990eae6a2d937
    Quote Quote  
  25. Originally Posted by sk8ordi3 View Post
    dev menu filter: smil link needed

    Code:
    from pathlib import Path
    import requests
    import subprocess
    import html
    import re
    import os
    
    from requests.packages.urllib3.exceptions import InsecureRequestWarning
    requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
    
    m3u8DL_RE = 'N_m3u8DL-RE.exe'
    
    files_to_delete = ["key.txt"]
    for file_name in files_to_delete:
        if os.path.exists(file_name):
            os.remove(file_name)
            print(f"{file_name} file successfully deleted.")
    
    link = input('dev menu filter: (smil) link here: ')
    
    token = re.findall(r'auth=(.*?)&', link)[0].strip()
    
    headers = {
        'Accept': 'application/json, text/plain, */*',
        'Origin': 'https://mediasetinfinity.mediaset.it',
        'Referer': 'https://mediasetinfinity.mediaset.it/',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36',
    }
    
    response = requests.get(link, headers=headers).text
    
    mpd = re.findall(r'<video src=\"(.*?)\"', response)[0].strip()
    pid = re.findall(r'\|pid=(.*?)\|', response)[0].strip()
    aid = re.findall(r'value=\"aid=(.*?)\|', response)[0].strip()
    pgid = re.findall(r'\|pgid=(.*?)\|', response)[0].strip()
    
    lic_url = f'https://widevine.entitlement.theplatform.eu/wv/web/ModularDrm/getRawWidevineLicense?releasePid={pid}&account=http%3A%2F%2Faccess.auth.theplatform.com%2Fdata%2FAccount%2F{aid}&schema=1.0&token={token}'
    
    
    def format_episode_number(number):
        number_str = str(number)
        if len(number_str) == 1:
            return '0' + number_str
        return number_str
    
    def replace_invalid_chars(title: str) -> str:
        invalid_chars = {'<': '\u02c2', '>': '\u02c3',
        ':': '\u02d0', '"': '\u02ba', '/': '\u2044',
        '\\': '\u29f9', '|': '\u01c0', '?': '\u0294',
        '*': '\u2217'}
        
        return ''.join(invalid_chars.get(c, c) for c in title)
    
    import requests
    
    headers2 = {
        'Accept': 'application/json, text/plain, */*',
        'Connection': 'keep-alive',
        'Origin': 'https://mediasetinfinity.mediaset.it',
        'Referer': 'https://mediasetinfinity.mediaset.it/',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36',
    }
    
    params2 = {
        'form': 'cjson',
        'httpError': 'true',
    }
    
    response2 = requests.get('https://feed.entertainment.tv.theplatform.eu/f/PR1GhC/mediaset-prod-all-programs-v2/guid/-/'+pgid+'', params=params2, headers=headers2).json()
    
    try:
        show_title = response2['mediasetprogram$brandTitle']
        ep_title = response2['title']
        tvSeasonNumber = response2['tvSeasonNumber']
        tvSeasonEpisodeNumber = response2['tvSeasonEpisodeNumber']
        
        zerofill_seasonNumber = format_episode_number(tvSeasonNumber)
        zerofill_episodeNumber = format_episode_number(tvSeasonEpisodeNumber)    
        
        title = f'{show_title} - S{zerofill_seasonNumber}E{zerofill_episodeNumber} - {ep_title}'
    except KeyError:
        m_title = response2['title']
        
        title = f'{m_title}'
    
    a_title = replace_invalid_chars(title)
    print(f'\n{a_title}')
    
    ####################srt
    try:
        pattern = r'(http.*?\.srt)\" lang=\"(.*?)\"'
        matches = re.findall(pattern, response)
        print('\n[find srt]')
        unique_links = set()
        srt_link_list = []
        
        for match in matches:
            srt_link, lang = match
            if srt_link not in unique_links:
                unique_links.add(srt_link)
                srt_link_list.append({"srt_link": srt_link, "lang": lang})
                
                import requests
                
                headers_srt = {
                    'authority': 'statictxt.msf.cdn.mediaset.net',
                    'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
                    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36',
                }
                
                for srt in srt_link_list:
                    srt_links = srt['srt_link']
                    langs = srt['lang']
                
                    response_srt = requests.get(srt_links, headers=headers_srt).text
                
                    with open(f"{a_title}.{langs}.srt", "w", encoding="utf-8") as file:
                        file.write(response_srt)
    except IndexError:
        print('\n[no srt]\n')
    
    ####################
    
    import requests
    
    headers03 = {
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
        'Connection': 'keep-alive',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36',
    }
    
    response03 = requests.get(mpd, headers=headers03, verify=False).text
    
    try:
        pssh = re.findall(r'<cenc:pssh>(.{20,170})</cenc:pssh>', response03)[0].strip()
        print(f'\n{pssh}')
        
        import requests
        
        headers_clone = {
            'Connection': 'keep-alive',
            'Content-Type': 'application/json',
            'Origin': 'https://wvclone.fly.dev',
            'Referer': 'https://wvclone.fly.dev/',
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36',
        }
        
        json_data_clone = {
            'password': 'password',
            'license': lic_url,
            'headers': f'Connection: keep-alive\n',
            'pssh': pssh,
            'buildInfo': '',
            'cache': True,
        }
        
        clone_resp = requests.post('https://wvclone.fly.dev/wv', headers=headers_clone, json=json_data_clone, verify=False).text
        
        from bs4 import BeautifulSoup
        
        soup = BeautifulSoup(clone_resp, 'html.parser')
        li_s = soup.find_all('li')
        keys = []
        
        for li in li_s:
            keys.append(li.text.strip())
        
        key_s = ' '.join(['--key ' + key for key in keys])
        print(f'\nkey(s):\n{key_s}')
        
        print(key_s, file=open("key.txt", "w"))
        
        with open("key.txt", "r") as fs:
         ke_ys = fs.readlines()
         ke_ys = ke_ys[0].strip().split()
        
        print()
        subprocess.run([m3u8DL_RE,
                        '-M', 'format=mkv:muxer=ffmpeg',
                        '--auto-select',
                        '--concurrent-download',
                        '--del-after-done',
                        '--log-level', 'INFO',
                        '--save-name', 'video',
                        mpd, *ke_ys])
    except IndexError:
        print('\n[INFO]drm free\n')
        subprocess.run([m3u8DL_RE,
                        '-M', 'format=mkv:muxer=ffmpeg',
                        '--auto-select',
                        '--concurrent-download',
                        '--del-after-done',
                        '--log-level', 'INFO',
                        '--save-name', 'video', mpd])
    
    try:
        Path('video.mkv').rename(''+a_title+'.mkv')
        print(f'{a_title}.mkv \nall done!\n')
    except FileNotFoundError:
        print("[ERROR] no mkv file")   
    
    for file_name in files_to_delete:
        if os.path.exists(file_name):
            os.remove(file_name)
            print(f"{file_name} file successfully deleted.")
    Hi, can anyone tell me if this script still working? I tried lately and it doesn't work anymore, I want to figure out if it's just my problem

    https://mediasetinfinity.mediaset.it/video/ciaodarwin9/decima-puntata--ciao-darwin-gio...12805201001001
    Quote Quote  
  26. Originally Posted by Snake View Post
    Hi, can anyone tell me if this script still working? I tried lately and it doesn't work anymore, I want to figure out if it's just my problem

    https://mediasetinfinity.mediaset.it/video/ciaodarwin9/decima-puntata--ciao-darwin-gio...12805201001001
    Doesn't work because https://wvclone.fly.dev/wv is dead.

    Here's a downloading command if you need it:
    Code:
    N_m3u8DL-RE -M format=mkv --key 1214afe61f16fc88e3e38eed740ef853:cb4ba028e612f6dbd82efd0d987df4f7 "https://vod06.msf.cdn.mediaset.net/farmunica/2024/02/1523200_18dd03217bdf89/dashrcenc/hd_wv_mpl.mpd" --save-name "Decima puntata  Ciao Darwin Giovanni 8.7 vs Ciao Darwin Story"
    Quote Quote  
  27. Originally Posted by white_snake View Post
    Originally Posted by Snake View Post
    Hi, can anyone tell me if this script still working? I tried lately and it doesn't work anymore, I want to figure out if it's just my problem

    https://mediasetinfinity.mediaset.it/video/ciaodarwin9/decima-puntata--ciao-darwin-gio...12805201001001
    Doesn't work because https://wvclone.fly.dev/wv is dead.

    Here's a downloading command if you need it:
    Code:
    N_m3u8DL-RE -M format=mkv --key 1214afe61f16fc88e3e38eed740ef853:cb4ba028e612f6dbd82efd0d987df4f7 "https://vod06.msf.cdn.mediaset.net/farmunica/2024/02/1523200_18dd03217bdf89/dashrcenc/hd_wv_mpl.mpd" --save-name "Decima puntata  Ciao Darwin Giovanni 8.7 vs Ciao Darwin Story"
    works perfectly, thanks
    Quote Quote  



Similar Threads

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