A simple web app to help you download files on server, it's like a proxyed downloader, useful when certain sites are blocked or you just want download files at home or wherever you are. Built with as little dependecies as possible.
Optionally supports downloading video or audio from Youtube/Openload and sending notification via PushBullet.
It is protected by Basic Auth
and each user can be notified individually.
-
Clone this repo
git clone https://github.com/P1-Ro/mini-remote-downloader.git
-
Install minimal requirements
pip install -r requirements.txt
-
Replace placeholders in
config.yml
path: PATH username: USERNAME password: PASSWORD
-
Start python app
python app.py
You can use downloader with included web interface or via POST
request.
Navigate your browser to http://{SERVER_ADDRESS}:9000
, browser will ask you for username and password. After login you can start downloading.
Here is screenshot:
To start downloading simply make POST
request on http://{SERVER_ADDRESS}:9000/download/
with JSON body which looks like this:
{
"url": "http://example.com", // url to be downloaded
"name": "example" [optional], // new name of downloaded file
"category": "example" [optional] // subfolder in downloads folder
"audioOnly": true [optional] // if you want to download only audio from Youtube
}
And also use Authorization
header with same USERNAME
and PASSWORD
you set in config.yml
, otherwise you will get 401 Unathorized
response (Unless it is on local network with local_network_without_login
set to True
)
If dowloading started successfully Status code 200
will be returned, otherwise Status code will be 500
with actual error message in JSON
.
If you want to be able download videos from youtube you need to perform these steps.
- Install youtube-dl
pip install youtube-dl
-
[Optional] Install PhantomJs if you want to download from Openload:
-
[Optional] Install FFmpeg if you want to download mp3 from Youtube
If you want also get notification on your mobile phone or PC after download is complete perform these steps.
- Install pushbullet.py
pip install pushbullet.py
- Set flag
notify_via_pushbullet
inconfig.yml
toTrue
- Set
pushbullet_token
inconfig.yml
to your Access Token, which you can get here - Repeat steps 2 and 3 for every user you want to get notified.
-
Add progress/download screen similar to what browser use - Make pages responsive
- Make one click executable for Windows