I’ve been doing this with Selenium+SeleniumWire in Python. Here’s a basic script that will open a (Selenium) Firefox instance, load the URL passed in, wait for you to click through the various popups etc. and shell out to yt-dlp to download the m3u8. Requires Python, Firefox, and yt-dlp. I don’t see any reason it wouldn’t work on platforms other than Linux, but I haven’t tested at all. It could be updated to click through the play button/popups automatically but I cbf.
$ python ./getm3u.py 'https://vidsrc.me/embed/[-]'
Command line: yt-dlp --referer https://[-].com/ https://tmstr.[-].com/stream_new/d6BoyFydhIoAEakvYTGZHhYA7A9aEkwpA1SDsb1Xxd3fYFxxaPzUvIost8zBAjouTHLFNGFwRy/master.m3u8
[generic] Extracting URL: https://tmstr.[-].com/stream_new/d6BoyFydhIoAEakvYTGZHhYA7A9aEkwpA1SDsb1Xxd3fYFxxaPzUvIost8zBAjouTHLFNGFwRy/master.m3u8
[generic] master: Downloading webpage
[generic] master: Downloading m3u8 information
[info] master: Downloading 1 format(s): 2701
[hlsnative] Downloading m3u8 manifest
WARNING: Live HLS streams are not supported by the native downloader. If this is a livestream, please add "--downloader ffmpeg --hls-use-mpegts" to your command
[hlsnative] Total fragments: 955
[download] Destination: master [master].mp4
[download] 0.7% of ~ 2.35GiB at 989.83KiB/s ETA 34:15 (frag 7/955)
If code isn’t your thing OP I’d be happy to run it on your URL and send the downloaded file over Matrix or something.
I’ve been doing this with Selenium+SeleniumWire in Python. Here’s a basic script that will open a (Selenium) Firefox instance, load the URL passed in, wait for you to click through the various popups etc. and shell out to
yt-dlp
to download the m3u8. Requires Python, Firefox, and yt-dlp. I don’t see any reason it wouldn’t work on platforms other than Linux, but I haven’t tested at all. It could be updated to click through the play button/popups automatically but I cbf.Script
#!/usr/bin/env python3 import sys import threading import subprocess import selenium.webdriver from seleniumwire import webdriver firefox_opts = selenium.webdriver.FirefoxOptions() b = webdriver.Firefox(options = firefox_opts) done = threading.Event() cmdline = None def res_interceptor(req, res) -> None: global cmdline if req.url.endswith('master.m3u8'): headers = dict(req.headers) cmdline = ['yt-dlp', '--referer', headers.get('referer', ''), req.url] done.set() b.response_interceptor = res_interceptor b.get(sys.argv[1]) done.wait() b.quit() assert cmdline is not None print(f"Command line: {' '.join(cmdline)}") subprocess.run(cmdline)
Usage
Install Python packages:
$ pip install selenium selenium-wire blinker==1.7.0
Run the script (redacted example output):
$ python ./getm3u.py 'https://vidsrc.me/embed/[-]' Command line: yt-dlp --referer https://[-].com/ https://tmstr.[-].com/stream_new/d6BoyFydhIoAEakvYTGZHhYA7A9aEkwpA1SDsb1Xxd3fYFxxaPzUvIost8zBAjouTHLFNGFwRy/master.m3u8 [generic] Extracting URL: https://tmstr.[-].com/stream_new/d6BoyFydhIoAEakvYTGZHhYA7A9aEkwpA1SDsb1Xxd3fYFxxaPzUvIost8zBAjouTHLFNGFwRy/master.m3u8 [generic] master: Downloading webpage [generic] master: Downloading m3u8 information [info] master: Downloading 1 format(s): 2701 [hlsnative] Downloading m3u8 manifest WARNING: Live HLS streams are not supported by the native downloader. If this is a livestream, please add "--downloader ffmpeg --hls-use-mpegts" to your command [hlsnative] Total fragments: 955 [download] Destination: master [master].mp4 [download] 0.7% of ~ 2.35GiB at 989.83KiB/s ETA 34:15 (frag 7/955)
If code isn’t your thing OP I’d be happy to run it on your URL and send the downloaded file over Matrix or something.