james-berkheimer / media_conveyor

Provide the owner of any media library with the ability to safely and easily open up that library to outside users to access and download files.
MIT License
0 stars 0 forks source link
aws boto3 django ec2 elasticache plex python redis

media_conveyor

By: James Berkheimer

End goal full automation!!!

Project Overview: 1) The primary goal of this project is to serve as display project to showcase my development and engineering skills. A coding demo reel in a sense.

2) The secondary goal is to learn new skills and techniques.

3) The final goal of this project is to provide the owner of any file repository the ability to safely and easily open up that repository to outside users to access and download files from that repo. This will be done by leveraging the following:

Technologies:

Goals and Non-Goals:

Steps for use:

  1. Install & launch application
  2. EC2 instance is generated
  3. Redis instance is created and populated with data from Plex
  4. Public facing web app so users can select which files they want to download
  5. Download directly from the local server.

First Steps:

  1. Grab metadata from Plex and create a Redis DB to store it.
    • Learn Plex API to get metadata.
  2. Create an AWS EC2 instance and migrate that Redis DB to it.
    • Create an AWS EC2 instance.
    • Setup and configure Redis.
    • Process for updating the data cache.
  3. Create a Django web app that can display the data from the Redis DB following the REST model.
    • Learn how to build a Django app.
    • Leverage AWS to host the react web app.
    • User logins and authentication.
  4. Add functionality for downloading each video.
    • ?

Milestones:

  1. Establish code to interface with Plex and gather metadata from its database.
    1. This code should gather local authentication credentials to use for connecting to the local Plex server.
  2. Create a Redis database using the metadata from Plex
    1. Learn how to upload that database to an AWS EC2 instance
  3. Establish code to automate the creation of an EC2 instance
  4. Develop a web app using Django that can display Metadata from the Redis database.
  5. Learn how to safely allow a user to download files via links.