ffmpeg m3u8 playlist file downloader and merger. Short and concise.
I watch a lot of youtube & netflix when I use my PC.
However some of the sites I occationally visit is very slow and laggy but offer a movie or a show I'd really like to see. Thats when I noticed that some websites were loading the stream with a m3u8 file. This file can be played using ffmpeg and if it can be played with that, it can be stored. So I started doing a little investigating... (m3u8 file is basicly a playlist with a lot of urls for the segmented video you wanted to watch. It can request the files from multiple servers or even cross-domain.)
Later that day I had used ffmpeg to catch a few videos I wanted to see and they worked like a charm. No problem with either video or sound but it was very annoying getting in to the Developer Console->Network->Copy m3u8 link. Paste in a .bat file and manually write / edit the line for each video I wanted.
So, while watching one of the downloaded videos I started creating this software. Which takes a bunch of links to m3u8 files and I put them in a list.
.NET 4.7.2 (Manual installation may be required.)Requirements to run DownloadMerger
ffmpeg (Download and Install feature implemented)
Any problems? There is a contact email provided with the software in the about section (?)
What features does DownloadMerger have?
DownloadMerger has a lot of features.
Install FFMPEG button will appear if reference to the (ffmpeg)software is not set or found.
By pressing this button DownloadMerger will start the download and setup the references automatically. This process cannot be aborted. (Made so purposly. I was experimenting.)
The location of ffmpeg is stored in a folder called "ffmpeg" within the root folder of DownloadMerger. You can view or change the location reference of ffmpeg in the settings window.
DownloadMerger will always download the newest version of ffmpeg from https://ffmpeg.zeranoe.com/builds/ <- No longer working..
What are collections and how do they work?
It can store multiple collections and multiple items within the collections.
You can of course edit the collections name and output folder at any time.
For example, I can create a collection called "Supernatural Season 1" and enter the links for each episode in this first season. I can then create a new collection and call this "Supernatural Season 2", add even more links for the season 2 episodes and save them seperately. Switching between the collections using a simple dropdown list.
Each collection is capable of storing their own output folder so you can output the downloads in the correct folder directly, without having to manually move them later.
However, there is no way of getting the name of the movie/video/episode itself and so it will set the name of the item as the name of the .m3u8 file.
This may result in multiple items being called thesame, which then results in overwriting or corrupt save/download. Make sure you change!
Why are there two download buttons?
The two download buttons do diffrent things.
The button "Download" will download all items in the currently selected collection.
The button "Download All" will download all items in ALL of the collections.
Settings Window and features?
"FFMPEG.exe location" does just what it say. It keeps the reference to the ffmpeg software so that DownloadMerger can successfully download all the files within its collections.
This has two buttons; First button is the manual location input. Second is another install and reference button.(Auto-button)
"Default output folder" stores the default output folder of all the collections. If you create a new collection, the location path will automaticly be filled with this information.
"Add pause command" will tell DownloadMerger to add a pause command to all download processes in the end. This will result in the window staying open untill any key is pressed. This is good for getting a chance to see if the download was successful or not. DownloadMerger has no way of knowing.
"Sequential Download" / "Parallel Download" is two diffrent types of download types. Sequential download type downloads each item in the collection(s) in a queue system. Parallel download will download ALL items in the collection(s) simultaneously. This may result in problems.
Clear All Data button does clear ALL collections and its items. It clears references and settings. It will then restart itself.
Usefull for debugging for me and for you if something goes wrong or you just want to start over.
I think that is about it. There are of course underlying features for security and crash prevention implemented but I dont see those as "features". Thats just something that should go with every program.
How do I work with the items?
You can Edit by double clicking the colum you want to change and edit the values.
You can Delete a row by selecting the very first column of the row and hitting Del button on your keyboard.
NOTE: This project can absolutely be fine-tuned and polished some more.