VideoHelp Forum




+ Reply to Thread
Results 1 to 14 of 14
  1. Hi there,
    does anyone see a way to download these two videos, please ?

    free account and Accessible from the world
    also not encrypted and then would be simple to do.
    Code:
    https://ondamedia.cl/show/lo-habitado
    free account and apparently geoblocked for Chile
    this one seems to be encrypted
    Code:
    https://ondamedia.cl/show/fragmentos-de-lucia
    some command with yt-dlp or N_m3u8DL-RE would be percfect.
    thanks a lot in advance.
    Quote Quote  
  2. N_m3u8DL-RE -M format=mp4 "https://mdstrm.com/video/63c84a6b9f7b9708626fbbdd.m3u8?uid=kKrAJaM8lNG2lFfU B7yvsbEV5wJRQvgQ&sid=rXrIdeldmdUp2nFPXwrOO4M5zhsMo iJh&pid=fEJSmRLRBVG5ytstj1kZLDcY9CmtJOLo&an=screen &at=web-app&av=v5.2.358&c=64c935f191436a3a903b49c8&ref=htt ps%3A%2F%2Fondamedia.cl%2F&res=768x432&without_coo kies=false&listenerid=&dnt=true&access_token=jPGD2 6qRnA9tdlRQuGvRfwxR7nnduISgLv9fuxld7CqWQbvSrx5238B 47vPbLCOIgCjK2gLAPrY" --save-name lohabitado.mp4
    Quote Quote  
  3. @swappyison

    to avoid spaces in your command...

    use balise [Code]

    like this

    Image
    [Attachment 72822 - Click to enlarge]
    Last edited by cedric8528; 1st Aug 2023 at 14:32.
    Quote Quote  
  4. for your second video, you can use also N_m3u8DL-RE

    Code:
    N_m3u8DL-RE "https://cl-a3-p-e-br5.cdn.mdstrm.com/video/h/573f76742a1b8a2b09aace7d/631775a3fea7c108225a5e32_631775a3fea7c108225a5e3b.mp4/index-v1-a1.m3u8?cP=2616000&pid=NWbopVMBTkx56Aa7gKPGL4YjmQ2Rj3gx&sid=BtoYckBtiGfiXruSaNdZFKJQBxM1jhxg&uid=qpoUfF8VPyXOcI6tmBC0rSuzPbeaRXaK&aid=573f76742a1b8a2b09aace7d&c=64c9428f7053ed0899ddf3f7&ref=https%3A%2F%2Fondamedia.cl%2F&without_cookies=false&listenerid=&dnt=true&access_token=m2xehwOpYvE0jXtSEu43UZGqEvzcMeArKMvf6g9OPNlFLIJwoz2GfvtTtMTtGTE0G8L9TukDlCS&es=cl-a3-p-e-br5.cdn.mdstrm.com&proto=https&ote=1691005340348&ot=XXm87_nieMcgk9E_L1FGUg" --header "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0" --header "Referer: https://mdstrm.com/" --save-name "video"

    your video 1080p

    https://www.transfernow.net/dl/20230801bDXvARFr
    Quote Quote  
  5. Originally Posted by swappyison View Post
    N_m3u8DL-RE -M format=mp4 "https://mdstrm.com/video/63c84a6b9f7b9708626fbbdd.m3u8?uid=kKrAJaM8lNG2lFfU B7yvsbEV5wJRQvgQ&sid=rXrIdeldmdUp2nFPXwrOO4M5zhsMo iJh&pid=fEJSmRLRBVG5ytstj1kZLDcY9CmtJOLo&an=screen &at=web-app&av=v5.2.358&c=64c935f191436a3a903b49c8&ref=htt ps%3A%2F%2Fondamedia.cl%2F&res=768x432&without_coo kies=false&listenerid=&dnt=true&access_token=jPGD2 6qRnA9tdlRQuGvRfwxR7nnduISgLv9fuxld7CqWQbvSrx5238B 47vPbLCOIgCjK2gLAPrY" --save-name lohabitado.mp4
    thanks !
    Quote Quote  
  6. Originally Posted by cedric8528 View Post
    for your second video, you can use also N_m3u8DL-RE
    thanks !!!
    Quote Quote  
  7. Originally Posted by cedric8528 View Post
    for your second video, you can use also N_m3u8DL-RE
    and how about this one ?
    still free account and apparently geoblocked for Chile
    Code:
    https://ondamedia.cl/show/calle-santa-fe
    am i doing something wrong because the last command doesn't work with it ?!
    Code:
    N_m3u8DL-RE "https://cl-v2-i-e-dd2.cdn.mdstrm.com/video/h/573f76742a1b8a2b09aace7d/64b1962226873f4052f03df1_64b1962226873f4052f03e01.mp4/index-v1-a1.m3u8?cP=249000&pid=u9cIful22sXDx4PbIJgH7oofNq1NwBWN&sid=VrNEkILprECtLmD8cXejSl8BOgp69bRd&uid=8kNT0i7wGz1tVVky0lh7yQ8peRWrUUir&aid=573f76742a1b8a2b09aace7d&c=5f9801cd72485407cddbf0d2&ref=https%3A%2F%2Fondamedia.cl%2F&without_cookies=false&listenerid=&dnt=true&access_token=RzgaIN90IGky3N1iJXVCEywhvnExfPHz047kJeIEcb548qUAFmvdZMXiexy9Ok0oTQ7DzvrBi4Z&es=cl-v2-i-e-dd2.cdn.mdstrm.com&proto=https&ote=1692014975849&ot=6VRs30Nj-J58Z1c49JerKg" --header "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/116.0" --header "Referer: https://mdstrm.com/" --save-name "video"
    Last edited by abacaxi; 13th Aug 2023 at 08:28.
    Quote Quote  
  8. authorization token is needed and this module:

    Code:
    pip install pyjwt
    Code:
    from pathlib import Path
    import subprocess
    import requests
    import jwt
    import re
    
    m3u8DL_RE = 'N_m3u8DL-RE.exe'
    
    auth = '< authorization Bearer here just eyJ.... >'
    
    decoded_jwt = jwt.decode(auth, options={"verify_signature": False})
    customer_id = decoded_jwt['data']['customer']['_id']
    profile_id = decoded_jwt['data']['customer']['profileId']
    
    headers = {
        'authority': 'next.platform.mediastre.am',
        'authorization': f'Bearer {auth}',
        'content-type': 'application/json',
        'origin': 'https://ondamedia.cl',
        'referer': 'https://ondamedia.cl/',
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36',
        'x-client-id': 'yqq7vtQ43MMOAp0iap8GeQU9pHVh3BROU2oFp9JRKrkTmYN4tf',
        'x-ott-language': 'es',
        'x-profile-id': profile_id,
    }
    
    print('\ntest link: https://ondamedia.cl/show/calle-santa-fe\ntest link: https://ondamedia.cl/show/la-casa\ntest link: https://ondamedia.cl/show/mar-de-juan-fernandez-relatos-y-leyendas-del-archipielago\n')
    
    link = input('link: ')
    link_id = re.findall(r'.*/(.*)', link)[0].strip()
    
    json_data1 = {
        'operationName': 'getShowInfo',
        'variables': {
            'id': link_id,
        },
        'query': 'query getShowInfo($id: String!) {\n  getShow(_id: $id) {\n    _id\n    title\n    description\n    genres\n    type\n    slug\n    favorite\n    rate\n    customJson\n    profileRate\n    details {\n      shortDescription\n      highlightDescription\n      rating\n      yearRelease\n      images {\n        background\n        cover\n        customBackground\n        logo\n        __typename\n      }\n      colors {\n        cover\n        background\n        __typename\n      }\n      __typename\n    }\n    hosts {\n      _id\n      name\n      images\n      __typename\n    }\n    producers {\n      _id\n      name\n      images\n      __typename\n    }\n    directors {\n      _id\n      name\n      images\n      __typename\n    }\n    featuring {\n      _id\n      name\n      images\n      __typename\n    }\n    first_emision\n    schedules {\n      _id\n      name\n      description\n      date_start\n      date_end\n      type\n      current\n      purchased\n      scheduled\n      dvr\n      customJson\n      sellable\n      live {\n        _id\n        name\n        purchased\n        customJson\n        logo\n        thumbnail\n        dvr\n        __typename\n      }\n      __typename\n    }\n    trailer {\n      _id\n      purchased\n      __typename\n    }\n    media {\n      _id\n      purchased\n      duration\n      keep_watching {\n        progress\n        time\n        __typename\n      }\n      __typename\n    }\n    extras {\n      _id\n      title\n      description\n      order\n      images\n      content {\n        ... on Media {\n          _id\n          purchased\n          duration\n          keep_watching {\n            progress\n            time\n            __typename\n          }\n          __typename\n        }\n        __typename\n      }\n      next {\n        _id\n        __typename\n      }\n      __typename\n    }\n    totals {\n      seasons\n      episodes\n      catchups\n      schedules\n      __typename\n    }\n    __typename\n  }\n}\n',
    }
    
    response1 = requests.post('https://next.platform.mediastre.am/graphql', headers=headers, json=json_data1).json()
    title = response1['data']['getShow']['title']
    media_id = response1['data']['getShow']['media']['_id']
    
    ##############
    
    json_data2 = {
        'operationName': 'getMedia',
        'variables': {
            'id': media_id,
        },
        'query': 'query getMedia($id: String!) {\n  getMedia(_id: $id) {\n    _id\n    accessToken\n    keep_watching {\n      progress\n      time\n      __typename\n    }\n    __typename\n  }\n}\n',
    }
    
    response2 = requests.post('https://next.platform.mediastre.am/graphql', headers=headers, json=json_data2).json()
    accessToken = response2['data']['getMedia']['accessToken']
    
    ##############
    
    import requests
    
    headers3 = {
        'authority': 'mdstrm.com',
        'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
        'referer': 'https://ondamedia.cl/',
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36',
    }
    
    params3 = {
        'access_token': accessToken,
    }
    
    response3 = requests.get('https://mdstrm.com/embed/'+media_id+'', headers=headers3, params=params3).text
    uid = re.findall(r"MDSTRMUID = '(.*?)'", response3)[0].strip()
    sid = re.findall(r"MDSTRMSID = '(.*?)'", response3)[0].strip()
    pid = re.findall(r"MDSTRMPID = '(.*?)'", response3)[0].strip()
    
    
    m3u8 = f'https://mdstrm.com/video/{media_id}.m3u8?uid={uid}&sid={sid}&pid={pid}&an=screen&at=web-app&av=v5.2.358&c={customer_id}&ref=https%3A%2F%2Fondamedia.cl%2F&res=512x289&without_cookies=false&listenerid=&dnt=true&access_token={accessToken}'
    
    print(f'title:\n{title}\n')
    
    subprocess.run([m3u8DL_RE,
                    '-H', 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0',
                    '-H', 'Referer: https://mdstrm.com/', '-M', 'format=mp4:muxer=ffmpeg', '--concurrent-download',
                    '--check-segments-count', 'false', '--log-level', 'INFO', '--save-name', 'video', m3u8])
    
    try:
        Path('video.mp4').rename(''+title+'.mp4')
        print(f'{title}.mp4 \nall done!\n')
    except FileNotFoundError:
        print("[ERROR] no mp4 file")
    Quote Quote  
  9. thanks sk8... i installed the module, but for the rest unfortunetly I don't have the skills to understand/manage it...
    Quote Quote  
  10. Originally Posted by abacaxi View Post
    thanks sk8... i installed the module, but for the rest unfortunetly I don't have the skills to understand/manage it...
    just play something in a browser and you can find the authorization token
    Image
    [Attachment 73180 - Click to enlarge]


    that what you see, need to write it to the script
    here:
    Code:
    auth = '< authorization Bearer here just eyJ.... >'
    to
    Code:
    auth = 'eyJ.....'
    for the script
    just copy all what i post > create a new text file > paste all > save as > rename to eg.: ondamedia.py
    make a dir ondamedia
    put these exe files in the dir
    N_m3u8DL-RE.exe
    ffmpeg.exe
    ondamedia.py

    double click to ondamedia.py
    Quote Quote  
  11. Originally Posted by sk8ordi3 View Post
    double click to ondamedia.py
    thanks sk8.
    but it failed, I can sse that your script works perfectly, but I get the same result that with the command line from before...
    Image
    [Attachment 73186 - Click to enlarge]


    just above, when you get the token, you choose a good example because it's a geoblocked video... and I guess this is why it's working on your side.
    but for me the geoblcked videos, i can click on them but they just keep loading with matermark and never play... and then i can't get the token from them.

    so to get the token I had to launch an unblocked videos... but of course then my try failed...
    Quote Quote  
  12. @abacaxi

    for geoblocked content of course you need chile vpn or chile ip
    geoblock is not resolved by the script...
    Quote Quote  
  13. Originally Posted by sk8ordi3 View Post
    @abacaxi

    for geoblocked content of course you need chile vpn or chile ip
    geoblock is not resolved by the script...
    sorry i misexplain myself...
    but yes, I got it and I did use vpn to have chilean IP... this is why i don't really understand...
    Quote Quote  
  14. If it is "no MPD", then it is M3U8.

    HLS = Only H264 video and AAC audio streams in TS or MP4 containers, fragmented streams, fragments listed in "m3u8" files.

    DASH = Not only H264 and AAC streams, all formats possible including "H265" and "DD+", much smaller fragments compared to HLS, fragments listed in "MPD" files.

    Hope you understood.

    Next time, remember these and know what to search.
    Quote Quote  



Similar Threads