Today, for network usage optimization purposes, a lot of videos are streamed and sent to the users as fragmented packets instead of one file. According to Adobe, F4F file is Flash MP4 Video Fragment created and used by Adobe Media Server for HTTP Dynamic streaming like CloudFront, Akamai, … If you want to download this video, you will have to download the script file KSV (download this script on Github) and execute it on a system with php enabled (install PHP on Windows).
Once you’re on the page where video is loading, you have to look for manifest file in source code or network exchanges. This file has F4M extension, correspondig to manifest, which is the file containing the inventory of all the video fragments. It will be necessary for the script execution.
Here is an example of how the command-line should look like (you can modify the quality parameter, and you have to specify the path for manifest file, and output file):
php ksv.php --quality high --delete --manifest 'LINK_TO_MANIFEST.f4m' --outfile 'OUTPUT_FILE.flv'
Here are the different options you can use to customize command-line:
--help displays this help --debug show debug output --delete delete fragments after processing --fproxy force proxy for downloading of fragments --play dump stream to stdout for piping to media player --rename rename fragments sequentially before processing --update update the script to current git version --auth [param] authentication string for fragment requests --duration [param] stop recording after specified number of seconds --filesize [param] split output file in chunks of specified size (MB) --fragments [param] base filename for fragments --fixwindow [param] timestamp gap between frames to consider as timeshift --manifest [param] manifest file for downloading of fragments --maxspeed [param] maximum bandwidth consumption (KB) for fragment downloading --outdir [param] destination folder for output file --outfile [param] filename to use for output file --parallel [param] number of fragments to download simultaneously --proxy [param] proxy for downloading of manifest --quality [param] selected quality level (low|medium|high) or exact bitrate --referrer [param] Referer to use for emulation of browser requests --start [param] start from specified fragment --useragent [param] User-Agent to use for emulation of browser requests
All the original sources are available on GitHub : https://github.com/K-S-V/