mini-remote-downloader
mini-remote-downloader copied to clipboard
A simple web app to help you download files on server
Mini Remote Downloader

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.
Installation
-
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.ymlpath: PATH username: USERNAME password: PASSWORD -
Start python app
python app.py
Usage
You can use downloader with included web interface or via POST request.
Web Interface
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:

Request
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.
Optional
Enable downloading from Youtube and Openload
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
Enable notifications via PushBullet
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_pushbulletinconfig.ymltoTrue - Set
pushbullet_tokeninconfig.ymlto your Access Token, which you can get here - Repeat steps 2 and 3 for every user you want to get notified.
TODOS
- [x] ~~Add progress/download screen similar to what browser use~~
- [ ] Make pages responsive
- [ ] Make one click executable for Windows