https://github.com/alfystar/listdownload
Python script to download multiple file in parallel thread, like anime episode, or series of files
https://github.com/alfystar/listdownload
anime-download anime-downloader bash-script cross-platform download file-download file-downloader linux-shell open-source-project opensource parallel terminal windows-powershell wls2
Last synced: 7 months ago
JSON representation
Python script to download multiple file in parallel thread, like anime episode, or series of files
- Host: GitHub
- URL: https://github.com/alfystar/listdownload
- Owner: Alfystar
- License: gpl-3.0
- Created: 2020-09-14T08:33:00.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2022-05-17T16:35:54.000Z (about 4 years ago)
- Last Synced: 2025-02-01T20:11:24.224Z (over 1 year ago)
- Topics: anime-download, anime-downloader, bash-script, cross-platform, download, file-download, file-downloader, linux-shell, open-source-project, opensource, parallel, terminal, windows-powershell, wls2
- Language: Python
- Homepage:
- Size: 3.56 MB
- Stars: 5
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# List Download
This is a Python script to download multiple different file with same PREFIX and SUFFIX, but different number inside the file (very common in serial files)
For example:
```
https://www.eyesonanime.org/DDL/ANIME/BlackClover/BlackClover_Ep_01_SUB_ITA.mp4
https://www.eyesonanime.org/DDL/ANIME/BlackClover/BlackClover_Ep_02_SUB_ITA.mp4
...
https://www.eyesonanime.org/DDL/ANIME/BlackClover/BlackClover_Ep_10_SUB_ITA.mp4
... and so on
```
### Script Install:
To install this script and use from terminal every where you are following this guide:
```bash
cd ~/Documents/ # or any where you want download
git clone https://github.com/Alfystar/listDownload.git
cd listDownload
source install.sh
source ~/.profile # to add path on current terminal
```
After reboot, the path will be add on all path in all environment, until the rebooting you have to execute in any new terminal `source ~/.profile`.
### Script usage:
Possible example to use the command do download list of anime are:
```bash
listDownload.py https://www.eyesonanime.org/DDL/ANIME/BlackClover/BlackClover_Ep_ _SUB_ITA.mp4 1 20 -p 100 -d 1 -q
```
For case with big number of tiny file where the digit aren't always 2:
```bash
listDownload.py https://www.egr.msu.edu/~khalil/NonlinearSystems/Sample/Lect_ .pdf 1 41 -p 100 -d 1 -q
```
More over, if you have to download form different site and with different macro url, it's possible create list in a file, and next use the software to parallelize the download in efficient manner:
Create file named, for example, `test.txt`:
```
https://www.egr.msu.edu/~khalil/NonlinearSystems/Sample/Lect_ .pdf 1 5 -p 100 -d 1 -o test1 # Save in a directory named "test1"
https://www.egr.msu.edu/~khalil/NonlinearSystems/Sample/Lect_ .pdf 10 15 -p 100 -d 1 -o "test 2" # Save in a directory named with a space
https://www.egr.msu.edu/~khalil/NonlinearSystems/Sample/Lect_ .pdf 20 25 -p 100 -d 1 # Save on the default name
```
and next call the software (remember, `test.txt` is the path where the file is saved):
```bash
listDownload.py -i test.txt -o testDir
```
with this output
```
.
├── testDir
│ ├── Lect_20.pdf
│ ├── Lect_21.pdf
│ ├── Lect_22.pdf
│ ├── Lect_23.pdf
│ ├── Lect_24.pdf
│ └── Lect_25.pdf
├── test1
│ ├── Lect_1.pdf
│ ├── Lect_2.pdf
│ ├── Lect_3.pdf
│ ├── Lect_4.pdf
│ └── Lect_5.pdf
├── test_2
│ ├── Lect_10.pdf
│ ├── Lect_11.pdf
│ ├── Lect_12.pdf
│ ├── Lect_13.pdf
│ ├── Lect_14.pdf
│ └── Lect_15.pdf
└── test.txt
```
### Script man
```
listDownload.py [Options]
baseUrl:= First part of the url (until XX number)
endUrl:= Second part of the url (after XX number)
startNum:= First index included
endNum:= Last index (included)
[Options]:
-p --parallelDownload Number of concurrency downdload (default = 5)
-o --outSave Saving directory Path (default = ./listDowndload)
-d --digit Number of digit (default = 2)
--quiet no show all data
Is also possible setup multiple download in a File:
./parallelDownload.py -i [Options All]
[Options All]:
-p --parallelDownload Number of concurrency downdload (default = 5)
--quiet no show all data
[File List syntax]:
For EVERY LINE the syntax MUST be is:
[Options file]
[Options file] (in case of missing, the global option will be used:
-o --outSave Saving directory Path (default = see global)
-d --digit Number of digit (default = see global)
```
### Capability
- Cross Platform, boot Linux and Windows
- Real parallel download customizable
- Parametric Digit of the number
- Output direcory choosable and recursivly create
- File Setup for multiple download in multiple sub directory
- Debug info
#### Linux dependace
- wget (default)
- xterm (default)
#### Windows dependace
- Invoke-WebRequest(default)
### Future Work
- Multiple terminal for Windows
-Gui