Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/michal34512/turbodownloader

Multithreaded video downloader (designed for MP4 and MPEG) which allows you to get higher speeds than usual.
https://github.com/michal34512/turbodownloader

Last synced: 15 days ago
JSON representation

Multithreaded video downloader (designed for MP4 and MPEG) which allows you to get higher speeds than usual.

Awesome Lists containing this project

README

        

# TurboDownloader
The main idea of this project was to create a portable tool which would help download videos from different streaming platforms

TurboDownloader allows you to:
* Download regular files divided into multiple segments and then merge those segments together
* Download m3u8 videos and merging all .ts files together
* Selecting cookies, headers and user agent with which file will be downloaded

![obraz](https://github.com/michal34512/TurboDownloader/assets/136522993/e8e2d237-6735-4c11-bdaf-e570cce7080b)

# How to use it?
To download a file you need 3 things:
* URL of the video you want to download. In case of m3u8 video you need URL to whichever .ts file (ex. https://example.com/RANdoMhAsh/seg-52-v1-a1.ts)
* Header file - file containing all headers needed to download file. You should name header files such as "header-exmaple.txt". Then it will be shown in the combo box for quick access.
* Cookie file - same as header file. In most cases servers don't require cookies for downloading a file so feel free to leave it blank

you can get URL, headers and cookies using Chrome DevTools or extensions

# Header & Cookie files - example
* header file - This file contains additional information sent along with an HTTP request or response. HTTP headers provide important metadata about the request or response, such as the content type, authentication credentials, caching directives, and more
This is the example of how header.txt could look like:
```
# HTTP Header File

Accept: */*
Accept-Encoding: identity;q=1, *;q=0
Accept-Language: pl-PL,pl;q=0.8
Connection: keep-alive
Host: sl108.example.com
If-Range: "625691e3-536bf62"
Range: bytes=0-
Referer: https://www.example.com/
Sec-Ch-Ua: "Not.A/Brand";v="8", "Chromium";v="114", "Brave";v="114"
Sec-Ch-Ua-Mobile: ?0
Sec-Ch-Ua-Platform: "Windows"
Sec-Fetch-Dest: video
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-site
Sec-Gpc: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36
```
* Cookie file - This file contains all the cookies needed to make a request for the file. It is rarely needed and in most cases, just the header.txt file is sufficient.
This is the example of how cookie.txt file could look like:
```
# HTTP Cookie File

example.com FALSE / FALSE 0 session_cookie abcdef123456789
example.com FALSE / FALSE 0 user_cookie 987654321abcdef
```

# Other settings
* Single file size - size of each segment being downloaded
* Download rate - number of segments which will be downloaded simultaneously. Some video hostings have limitation on transfer count (it's usually 3) per IP address. When you surpass this number download speed drops significantly.
* Single file size - size of each segment being downloaded
* Prefix - temporary files' filename prefix
* Low speed limit - Speed below which transfer is considered as slow and has to be restarted. For more info see https://curl.se/libcurl/c/CURLOPT_LOW_SPEED_LIMIT.html
* Low speed time - Time after which slow transfer is being restarted. For more info see https://curl.se/libcurl/c/CURLOPT_LOW_SPEED_TIME.html
* Verbose - Check this to see more info