Local File Transfer

Make your own Netflix like server with an easy to use and modify library where you can share files and videos as well as stream them in seconds.

Generic badge

Inspiration:

Anand's uncle told him how tedious it was to share files and videos in his office by clients (he runs a firm which solves problems and bugs in websites and apps and hence gets demo videos and screenshots). They used to use Google Drive and Dropbox but in the end it took a lot of time and had memory restrictions too. This is when we decided to make Local File Transfer.

Also- Who doesn't want to make their own YouTube or Netflix?

Features

  • [x] Data Transfer.
  • [x] Streaming via local RTC (Videos).
  • [x] Audio Streaming.
  • [x] Frame Compression (different qualities).
  • [x] UI for streaming / File Transfer.
  • [x] Integration of all independent modules.
  • [x] Customisable DIY server.
  • [x] Send PDFs, CSVs, Excel, Word Docs and PPTs.

Requirements

The source code of this project is written in HTML/CSS/JS, and runs on a Flask server with ffmpeg as a dependency so you will need to install Flask through the requirements file and ffmpeg from the package-lock.json file.

Instructions to Run

$ git clone https://github.com/AnandSure/local_ft
$ cd local_ft
$ npm install
$ cd streaming && pip3 install -r requirements.txt
$ cd static && mkdir media && cd ..
$ python3 run.py

Accomplishments we are proud of

We were able to actually make the project work within such a small time frame.

What we learnt and Challenges we faced

We learnt how YouTube works with the m3u8 stream format. It sends video in parts and loads only part by part. A whole video never loads. We stream it in packets.

It took us a while to figure this out.

What next?

Improve the UI and add any features we are suggested.

Made with love by

Anand Suresh, Akshat Gupta and Sai Sandeep.




 _____ _                 _     __   __            
|_   _| |               | |    \ \ / /            
  | | | |__   __ _ _ __ | | __  \ V /___  _   _   
  | | | '_ \ / _` | '_ \| |/ /   \ // _ \| | | |  
  | | | | | | (_| | | | |   <    | | (_) | |_| |  
  \_/ |_| |_|\__,_|_| |_|_|\_\   \_/\___/ \__,_|  


______                                            
|  ___|                                           
| |_ ___  _ __                                    
|  _/ _ \| '__|                                   
| || (_) | |                                      
\_| \___/|_|                                      


______      _               _   _               _ 
| ___ \    (_)             | | | |             | |
| |_/ / ___ _ _ __   __ _  | |_| | ___ _ __ ___| |
| ___ \/ _ \ | '_ \ / _` | |  _  |/ _ \ '__/ _ \ |
| |_/ /  __/ | | | | (_| | | | | |  __/ | |  __/_|
\____/ \___|_|_| |_|\__, | \_| |_/\___|_|  \___(_)
                     __/ |                        
                    |___/                         




License

MIT © Anand Suresh

GitHub license



if (youEnjoyed) {
    starOurRepository();
}


Share this project:

Updates