Skip to content

hello-anmol/Nephos

 
 

Repository files navigation

Project Nephos forthebadge made-with-python GPLv3 license

Google Summer Of Code 2018 (Open Source Love png3) Project under CCExtractor; Project Nephos

CodeFactor Requirements Status Build Status codecov

Abstract

Project Nephos aims at simplifying the process of moving samples from local storage to cloud for Universities by automating, almost, all the steps involved. It will be consisting of three independent modules; recording module, processing module, and uploading module.

The recording module will be responsible for managing the addition of channel lists, set up of recording jobs and saving the recorded streams. The processing module will parse saved samples, associate tags, extract subtitles and convert the video files to MP4 to reduce the file size. The uploading module will upload the processed stream files, and also share sample with other universities if required.

Nephos will be developed, using Python and few other open source projects, to accomplish all the above mentioned tasks with cent-percent reliability and zero failures (unless wrong data is input, which will get logged). Testing and logging will be an integral part of Nephos development and running cycle, respectively.

Project Link


Installation (And Setup)

  1. Nephos requires following environment dependencies:
    • Python 3
    • Pip
    • pipenv
  2. Nephos requires following third party libraries:
    • FFmpeg and FFprobe
    • Multicat
    • CCExtractor (requires tesseract-ocr-dev and leptonica-dev)
    1. Nephos uses mail client to send email notifications, please configure it before running Nephos.
    2. You'll be asked to enter the email address(es) of recipient(s) of critical mails at initialisation of Nephos. It is only asked on first launch, to edit it later:
      • Go to Nephos directory, default is $HOME/Nephos
      • Edit the hidden file ".critical_mail_addrs", multiple addresses separated by a single whitespace
      • Restart Nephos after editing the file
      • In case of any email address fails at RegEx match, it'll be listed in info logs, ignored by config handler and you can correct it in the same file

Install Using Git Clone

    1. Clone the repository, git clone https://github.com/thealphadollar/nephos.git && cd nephos
    2. On centOS 6 run the script, sudo ./install.sh
      The script will install all the aforementioned system dependencies and python libraries for Nephos.
    1. Observe and modify configurations available in $HOME/Nephos/config (especially maintenance and module configurations, and processing script)
      • Update path to various libraries, in the config file, being used; fatal error might error in case where the path to binaries (soft links work) is not appropriate.
    2. Add nephos_start.sh as a cron job to be executed at startup in root crontab.
      @restart /path/to/nephos_start.sh 2&> ~/Nephos/boot_start.log
    3. Run nephos using sudo ./nephos_start.sh. This command runs Nephos under a new screen session. Press ctrl + a and then 'd' to detach from the session while it keeps running in the background.

To Add Channels And Jobs

Please go to Nephos Config repository to modify the channels, jobs and share lists that Nephos works on.

Developer Documentation

Developers can view the documentation that is present for users since it is detailed and one needs to read it in order to understand how Nephos functions. Along with that, docstrings have been placed in HTML format in docs/DevDocs and can be accessed in a systematic manner by opening docs/DevDocs/nephos.html in a browser.

You can also go here to access it online.

More Info

For more information regarding using Nephos and how it works, visit the wiki

Reporting Bugs

Bugs should be reported in the issue tracker. Security issues must be reported at shivam.cs.iit.kgp+nephos@gmail.com to avoid exploitation.

About

Project Nephos [GSoC '18]: Automated recording, processing, and uploading of TV streams for Universities.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 96.9%
  • Shell 2.9%
  • Makefile 0.2%