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.
free account and apparently geoblocked for ChileCode:https://ondamedia.cl/show/lo-habitado
this one seems to be encrypted
some command with yt-dlp or N_m3u8DL-RE would be percfect.Code:https://ondamedia.cl/show/fragmentos-de-lucia
thanks a lot in advance.
+ Reply to Thread
Results 1 to 14 of 14
-
-
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
-
@swappyison
to avoid spaces in your command...
use balise [Code]
like this
[Attachment 72822 - Click to enlarge]Last edited by cedric8528; 1st Aug 2023 at 13:32.
-
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 -
and how about this one ?
still free account and apparently geoblocked for Chile
Code:https://ondamedia.cl/show/calle-santa-fe
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 07:28.
-
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")
-
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
[Attachment 73180 - Click to enlarge]
that what you see, need to write it to the script
here:
Code:auth = '< authorization Bearer here just eyJ.... >'
Code:auth = 'eyJ.....'
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 -
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...
[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... -
@abacaxi
for geoblocked content of course you need chile vpn or chile ip
geoblock is not resolved by the script... -
-
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.
Similar Threads
-
MPD L3 download
By intheory628 in forum Video Streaming DownloadingReplies: 4Last Post: 5th Jan 2023, 10:02 -
mpd download help
By Loryanam2 in forum Video Streaming DownloadingReplies: 7Last Post: 17th Jun 2022, 09:41 -
How to download mpd
By d9111 in forum Video Streaming DownloadingReplies: 10Last Post: 19th May 2022, 12:56 -
How to download from zee5 site and download mpd link
By qasem1368 in forum Video Streaming DownloadingReplies: 7Last Post: 25th Nov 2021, 21:28 -
How to download this MPD?
By jdanielw in forum Video Streaming DownloadingReplies: 2Last Post: 14th Feb 2021, 04:55