Torrenting this show isn’t an option. Every torrent I’ve tried has this specific episode missing, with a duplicate episode in its place. Most of the streaming sites do, too. The only stream I’ve found is on vidsrc.me, and I can’t for the life of me figure out how to download it.

I’ve searched around and found multiple recommendations for video downloader sites, and several people suggested the Firefox extension DownThemAll!, but I’ve had no luck. It’s a generic “can’t find video” message every time.

I’m guessing these apps and sites worked at some point but they updated their API. Hoping against hope that someone who’s done it recently can tell me how they did it.

  • Minera
    link
    fedilink
    arrow-up
    1
    ·
    3 months ago

    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.

    • Alice@beehaw.orgOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      3 months ago

      Oh thanks! I kinda lost track of this thread as soon as the work week started, but I’ll give this a shot soon.