The answer is
ffmpeg. The answer is
always ffmpeg. You can even
get it on your phone, so there's really no excuse. Once you've got some flavor of ffmpeg, here's what you do:
- On desktop, go to your Storyfire URL of choice, right click the page, and click
View Source
(or whatever) in the menu that pops up. On mobile
- On mobile Brave/Chrome, take your Storyfire URL, add
view-source:
to the start of it (e.g. view-source:https://storyfire.com/video-details/5f7266a6295673b297719d79
) and then hit enter.
- Once you've got the page source open, use the browser's Find feature to search the source for
m3u8
. There should only be one result, it'll be part of a URL like https://player.vimeo.com/external/462831566.m3u8?s=b630800a8f1875b52897e31878b340b6f70bb2cd\u0026oauth2_token_id=1030312126
.
- If the URL has any Unicode escapes (e.g. the
\u0026
in the above URL) then use a Unicode escape decoder to convert them back to ASCII characters. Or just memorize that \u0026
always converts to &
and decode it yourself like a true chad.
- Take the following ffmpeg command, replace the
URL_HERE
part with your decoded URL, and replace FILENAME_HERE
with whatever you want to call the video: ffmpeg -i URL_HERE -c copy -bsf:a aac_adtstoasc FILENAME_HERE.mp4
- Run that ffmpeg command in your terminal/command line/ffmpeg app/whatever the fuck your platform uses.
And that's it. It might look complicated but it's really easy once you're familiar with how it's done. It'll work on any streaming video that uses
m3u8
, which is a pretty common standard. On sites where you can't find the
m3u8
URL in the source code just open the page, right click and open Inspect Element, click the "Network" tab in the Inspect Element window, go back to the browser window and click play on the video, then go back to the Inspect Element window and look for the
m3u8
URL. Once you've got the URL the rest is the same.
Here you go. I had to split it into two parts since YouTube has a 15 minute limit on uploads unless you verify a phone number, and I'm fresh outta burners: