HLS Video Download v1.1.0
HLS Video Download is a tool for downloading video files from websites and saving them on your local device. Notice: The unregistered version limits the size of the files that it downloads to 20MB (full version can be activated for $1.99 on the extension's options page).
This is not a general purpose download tool but it specializes on certain scenarios that do not seem to be supported by other existing 'video download' extensions. It does not aim to replicate features that are already nicely covered by other more complete video download extensions. It handles some HLS based and single file stream formats and it can be used for websites that use respective technology (e.g. ARD mediathek, arte.tv, Youtube, Putlocker, HlsPlay, 123Movies, Tinklepad, SolarMovie, etc).
Known limitation: This plugin is not 100% HLS feature complete, i.e. there are features like "HLS media encryption" that are not currently fully implemented. Before buying the full version, make sure to use the demo version to specifically verify that the plugin actually downloads playable versions of the streams that you are specifically interested in! Feel free to drop me a feature request in case you are interested in some page that isn't currently supported.
LEGAL DISCLAIMER: The extension is provided 'as is', without warranty of any kind, express or implied, including but not limited to the warranty of fitness for a particular purpose. There may be country specific laws regarding what videos can be legally downloaded from the Internet. The fact that it is technically possible to download a video does not automatically make it legal and it is your responsibility to comply with the laws and regulations that apply to whatever country you might be living in.
Usage: Click on the extension's toolbar icon and use the 'Turn on' / 'Turn off' button in the respective dropdown menu to make sure the extension is active (The "turned off" plugin will still complete downloads already in progress but it will stop to look to new media streams.). Use the video website's regular functionality to the point where the streamed video is playing (you can pause it now) or where it has already accessed the respective video stream data. Then click HLS Video Download's toolbar icon. Wait until the resulting dropdown menu is properly filled (depending on the website this may take some seconds). Any videos that can be downloaded will show as buttons in the dropdown. (If a video isn't detected it may help to reload the page.) The menu will also show the status of the previous downloads. Files are downloaded to the browser's regular download-folder. Note: Completely closing the browser will discard any downloads that have not been completed.
The plugin sets some default name for each download which will be used to name the file once the download is complete. This name can be easily changed in the tool-menu by clicking the respective name while a download is still in progress. The 'X' icon shown for respective downloads can be used to cancel the download and remove it from the tool-menu's list.
Some pages use separate streams for audio/video data, and these streams can be downloaded separately. However this plugin does not include the potentially bulky and computationally expensive logic to merge (mux) the audio/video files into one. Rather than including a slow (since web-browser based) muxing-implementation or a separate native "companion" application (which might be perceived as an untrustworthy security risk) this plugin relies on the user's ability to manually mux respective audio/video files using some standard native tool of his choice. Example: the "ffmpeg" command line tool performs such merging via the below command (there are other tools like mkvtoolnix that also get the job done):
ffmpeg -i "in.mp4" -i "in.m4a" -c copy "out.mp4"
While activated, HLS Video Download tries to detect video streams by monitoring all the files loaded by the browser: To avoid this overhead it may be a good idea to use the extension's 'Turn off' button while not downloading video streams (this will not stop downloads that are already in progress).
Postprocessing: The downloaded videos might still use original MPEG-transport-stream packets - which may lead to audio-stuttering in a regular video player and cause glitches while seeking. To easily fix these type of issues the affected files should be post-processed using a separate tool like ffmpeg -i "concat:in.mp4" -c copy "out.mp4".
YouTube: As for the media streams on other pages, the plugin just replays the requests performed by the original player (in this case the youtube player). This means that the exact same stream/quality setting is selected that was used by the youtube player. Sometimes respective higher quality streams use separate files for video and audio and these are downloaded unchanged (see above comments on "muxing"). For separate audio/video streams HLS Video Download here will generate/download a separate ".bat" script (same name as the stream) for each affected stream: That script then contains the "ffmpeg" based one-line command which can be easily verified by opening it in an arbitrary text editor. As long as "ffmpeg" is installed on your machine (and the excutable is on your search path) you can just double click on the respective .bat files in your download-folder to "merge" the separated audio/video files into one file that contains both. (Caution: Duplicate file names may be causing the browser to add "(1)", "(2)", etc add-ons to the file name originally selected by the extension. The generated ".bat" script will no longer work in this case since it isn't aware of the changed name and is still using the original names.)
Regional locks: Some sites limit access to users within a specific country (e.g. ARD mediathek, etc) and you may need to use a VPN plugin to fake your respective location. (After a respective unsuccessful attempt the site may remember that it had denied access before - so make sure to get rid of respective cookies before retrying with VPN.)
Known limitation: The plugin does not work in Firefox's "private windows". This is due to Firefox's silly design decision to not allow background page access from a "private window" (unlike Chrome and other browsers that take a much more sensible approach in this scenario).
Hints: Some video pages make extensive use of "ads" and the respective file loading may render these pages very slow. Some pages then deliberately use "anti debugging" techniques that might interfere with the "HLS video download" extension. This may result in the extension's toolbar menu not opening or opening with a considerable delay (e.g. 10secs). To deal with these kind of unusually "difficult" pages the below approach may be helpful:
- First make sure that the original video actually plays (with the "HLS video download" still turned off). This makes sure that the page's files are already loaded and may later be fetched much more quickly directly from the browser's cache. It also avoids any risk of "HLS video download" interfering with the respective page loading logic and whatever expectations the respective page logic might have. (Some of these pages may play a video but become otherwise so unresponsive that it becomes difficult to use the player controls or even reload the browser tab.)
- Copy the video tab's URL and close the browser tab.
- Open a new browser tab and turn the "HLS video download" extension on.
- Paste the URL copied in step 2 into the new tab to again load the previous video page. As soon as the video is playing (again), pause it and click on the "HLS video download" toolbar icon to check if the video has been detected. If so, click on the respective button to start the download. Close the original video page to stop it from slowing down your browser.
Some simple video streams use a redirection scheme that no longer works as soon as "HLS video download" is turned on. However "HLS video download" may actually still detect these streams and download them. You will have to "Turn off" the extension if you want to watch those videos directly within the browser. But even if those videos are not playing when the extension is on you may still want to open the toolbar menu to check if the stream is available for download.
If a video stream is incomplete (e.g. individual segments referenced in the playlist are not available) "HLS video download" will usually skip those problem segments and download those segments that are available. This may lead to segments "missing" in the downloaded stream.
Transient server issues may sometimes cause a download to fail and the same download may succeed when tried again later.