The Turbo _HOT_ Download
This is the third edition of the "Turbo Download Manager (TDM)" extension. It is heavily dependent on new methods that are introduced in ES6 such as the streaming fetch API and async calls. The extension is capable of downloading a single file from multiple threads. The chunked binary data is stored into the temporary internal IndexedDB storage. Theoretically, since each thread act as a separate downloader, the downloading speed increases when the number of threads increases. When the file is fully fetched from the server, the segments are merged and the file is saved in the default download directory of your browser. This extension uses the native API to move the chunked data from the internal storage to the default download directory hence the record of your download will be kept by your browser similar to a normal download that is fetched directly by the default download manager of your browser. At this point, the extension is capable of reading data from a server and writing to the internal storage at up to 80Mbytes/s. If for any reason you have access to a faster network, it is recommended to use the default download manager of your browser. Since the extension stores data in chunks, the memory fingerprint of the extension is always acceptable even if a very large file is being downloaded.
the Turbo download
This extension stores binary files in chunks, so in case of a crash, the data is still available in the internal IndexedDB storage, and the extension restores the data after a restart. In case of a network issue, the extension tries to connect to the downloading server a few times (which is configurable) and if no data is received from the neither of running threads, the downloading job goes to the interrupted state. No worries though, you can always use the retry button to manually force the extension to retry one more time. As of version 0.5.3 release, the extension does not delete fetched data unless the remove button is pressed by the user. So you can retry as many times as you would like to finish a downloading job even on a very unstable network.
This extension by default uses three threads for each downloading job, which is the recommended value and can increase the downloading speed up to three times. There are situations where a server does not support range downloading, and in these cases, it is not possible to download with multiple threads. If such a case occurs, the extension uses the built-in download manager to fetch the requested file. Note that each thread act as a separate job, and hence increasing the number of threads although increases the downloading speed, it increases the disk access too. Also, each thread allocates additional memory, which increases the total memory usage of the extension during the job fetching. On default configuration, this extension uses three threads, and each fetch method downloads up to 100MBytes of data, which means the extension uses about 300MBytes for each active downloading job. If the user requests to download a job with for instance eight threads and the file is big enough, the memory usage could be about 800MBytes. So use higher threads only if the memory allocation is not an issue for you.
When your browser restarts, this extension checks the internal storage for uncompleted jobs. If a job is detected, only its metadata is retrieved from the storage and no more (to prevent excessive disk access on startup). This is the reason why the interface cannot calculate and display the downloaded segments at this point. When the job is resumed by the user, the extension scans the internal storage and constructs the segments and the downloader only fetches the remaining segments for you.
This is a new option that is introduced on v3 edition, which uses the synced storage of your browser to keep the links that you might want to download later. You can simply add as many links as you would like into this list and download them later on any machine that is synced with the current machine. To access all the stored jobs, simply open the extension's popup interface. Note that when a job from this list is sent to the downloader, it is erased from the synced storage.
In v3 (v0.5.3 or later), when a media file is detected on a page (when a media file is about to play, it propagates an even which triggers this download manager to collect the media link), the browser's toolbar icon becomes colorful. You can see the list of collected media links by using the "Extract Media Links" context menu item on the page context. Alternatively, open the toolbar popup and press the "Add new Job(s)" button, and the extension lists all the downloadable media links on the page.
As of version 0.5.6, the "Add Jobs" view supports the parsing of M3U8 streams. When a new M3U8 link is added, the extension gets its content and parse it. If there are different playlists in the manifest file, the user will be prompt to select a playlist. If file segments are detected in the playlist, the extension displays the total number of segments that will be downloaded and marge together. Note that M3U8 parsing is only available in the "Add Jobs" view. So make sure to add your M3U8 jobs from this view and not directly.
This button considers all the links in the "Download List" as different segments of a single file. The extension downloads each link and appends its binary content to the end of the previous link until all links are fully downloaded. This is useful to get chunked data and merge them as a single file. Note that you need to only have the segmented links in the "Download List" section and the links need to be in the correct order. It is recommended to use the M3U8 feature to download a segmented stream instead of this feature.
As of version 0.5.3, this extension supports receiving jobs from other extensions in the following format:chrome.runtime.sendMessage(THS_EXTENSION_ID, method: 'add-jobs', jobs: [ link: ' ', threads: 3 ], resp => if (!resp) console.log('The TDM is not installed'); );To store links without downloading use:chrome.runtime.sendMessage(THS_EXTENSION_ID, method: 'store-links', links: [' '], resp => if (!resp) console.log('The TDM is not installed'); );
This extension has four main modules: 1. Download manager popup (to monitor downloading jobs initiated either from this extension or from the built-in download manager). 2. Download dialog window (to add multiple links and to collect images from the opener tab), 3. Multi-threading internal module (downloads.js) to handle multi-threading jobs. 4. Download observer module to monitor video and audio sources that are requested by each page.
To monitor ongoing downloading jobs from either this extension or the built-in download manager click on the toolbar button to open the popup. From this popup, you can pause and resume all downloads and see the number of segments for multi-threading jobs. Note that this is the only place you can monitor and stop multi-threading jobs. No multi-threading job appears in the default download manager of your browser until it is fully fetched.
To request new downloading jobs, you need to open the "Download dialog window" which can be accessed either from the "Download manager popup" or from the right-click menu item over the toolbar button. This window can be used to initiate multiple downloads simultaneously with a custom number of threads. Note that if a single thread is selected for a download, this extension redirects the request to the internal download manager (there is no advantage of getting a single-threaded file with the internal "downloads.js" module). So to initiate a file with the built-in download manager simply reduce the number of threads to one. You can define the default thread sizes for the image, audio, and video formats from the options page.
When a new job is requested, the extension inspects the server and ensures the multi-threading is supported by the server. If the multi-threading is not supported, your download will be handled by browser's built-in download manager. Otherwise, the total size of the file is calculated and then the file is split into different segments. Next, the extension asks your browser to allocate the same disk space locally. If this space is available on your system, then all segments are initiated one by one. When all segments are completed successfully the file is moved from the internal storage to the user's defined Downloads directory. This step is handled by your browser built-in download manager (copy the file from internal storage to user's Downloads directory). This helps the browser to track the downloads that are handled by this extension so there is no internal module to handle the user's history! Also, other extensions can access the downloads history like normal downloads. Note that in oppose to the built-in download manager, the temporary file is not being created in the Downloads directory since the extension has no access to this directory. Instead, the internal storage is used.
You can add a new job from either right-click context menu over a link, video, audio or image element or by adding the actual downloadable links to the "Download dialog window" which can be accessed from the right-click context menu over the toolbar button. When a download is added using the "Download dialog window", you can customize the number of threads for each job individually, however, when a download is initiated with the context menu items, the default threading number is used based on the mime type of the link.
First, switch to the tab that you want to grab images from. Now open the "Download dialog window" from the right-click context menu over the toolbar button. There is a button in the UI to search for images loaded in the opener tab. Click and wait until all images are grabbed. You will see the list of all images in the UI. Select those images you want to download and press the "Download" button.
You can left-click on the toolbar button to open the "Download manager popup" view. In this view, all the downloaded files or in-progress ones are listed. This is the only place you can monitor multi-threading jobs as well are the built-in ones. 350c69d7ab