GithubHelp home page GithubHelp logo

rahulyhg / homehost Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ridhwaans/homehost

0.0 0.0 0.0 91.21 MB

self-hosted, Netflix-like app made for streaming

Home Page: https://homehost-demo.herokuapp.com

License: MIT License

HTML 0.71% JavaScript 89.14% CSS 10.15%

homehost's Introduction

homehost logo

contributions release tag commits-since license

homehost is made for streaming your media collection over the home network

Features: ๐ŸŽฅ Movies, ๐ŸŽต Music, ๐Ÿ“บ TV Shows, ๐Ÿ“š Books, ๐Ÿ“’ Comics, ๐ŸŽ™๏ธ Podcasts

๐ŸŽฅ Movies

movies

movies-gif

๐ŸŽต Music

music

music-gif

Setup

Run npm install under the client and server directories
In ./config.yml, set the media paths, and specify a working API key for TMDb API and Spotify Web API

# Server-side configs
movies:
  path  : '/path/to/movies/directory'
  api   : 'api.themoviedb.org/3'
  key   : '<api_key>'
music:
  path  : '/path/to/music/directory'
  api   : 'api.spotify.com/v1'
  key   : '<access_token>'
tv:
  path  : '/path/to/tv/directory'
  api   : 'api.themoviedb.org/3'
  key   : '<api_key>'

If you dont have keys, you can request API authorization from Spotify at https://developer.spotify.com/documentation/web-api/, and TMDb at https://developers.themoviedb.org/3/getting-started/introduction

Naming conventions

Your media must appear in the path set by config.yml
๐ŸŽฅ Movies

<movies_path>  
 - (subdirectory)?  
   - (movie_file_name <TMDb-movie-ID>) (.mp4|.mkv)

๐ŸŽต Music

<music_path>  
 - (album_directory_name <Spotify-album-ID>)  
   - ((<disc_number>-)?<track_number> track_file_name) (.mp3|.flac)

Tracks not found on Spotify can be put in a directory titled Unknown Album sans disc/ track number

<music_path>  
 - Unknown Album  
   - (track_file_name) (.mp3|.flac)

๐Ÿ“บ TV

<tv_path>  
 - (tv_show_directory_name <TMDb-tv-ID>)  
   - (S<season_number>E<episode_number> episode_file_name) (.mp4|.mkv)

Generating metadata

Server requires <media>.json file data at startup. Initial json state should be empty

./movies.json, ./music.json, ./tv.json
{
  "movies": [], "music": [], "tv": []
}

From the base directory, run yarn start-dev to start homehost at http://localhost:5000/
By default, express port is 5000, webpack-dev-server is on 3000
On the server, call /api/generate once. Wait for the async call to finish and save
There is no 'watch' or 'hot reload' for server media. Adding or changing media files requires a json reset and rerunning /api/generate
NOTE nodemon will restart to file changes and interrupt async. Use node server instead for generating metadata.

Run

From the base directory, run yarn start

Routes

Server-side

GET /api/hello
GET /api/generate
GET /api/movies
GET /api/movies/:id
GET /movies/:id
GET /api/music/
GET /api/music/albums/:id
GET /music/:album_id/:disc_number/:track_number
GET /api/tv/seasons/:id
GET /tv/:show_id/:season_number/:episode_number

Client-side

/movies, /music, /tv are accessible. /books, /comics, /podcasts are TODO

Development

Works best in Chrome. Coming to Desktop, iOS, Android.

Powered by

โ€ƒ

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Disclaimer

All pictures copyright to their respective owner(s). This project does not claim ownership of any of the pictures displayed on this site unless stated otherwise. This project does not knowingly intend or attempt to offend or violate any copyright or intellectual property rights of any entity. Some images used on this project are taken from the web and believed to be in the public domain. In addition, to the best of this project's knowledge, all content, images, photos, etc., if any, are being used in compliance with the Fair Use Doctrine (Copyright Act of 1976, 17 U.S.C. ยง 107.) The pictures are provided for comment/criticism/news reporting/educational purposes only.

Where every care has been taken to ensure the accuracy of the contents of this project, we do not warrant its completeness, quality and accuracy, nor can we guarantee that it is up-to-date. We will not be liable for any consequences arising from the use of, or reliance on, the contents of this project. The respective owners are exclusively responsible for external websites. This project accepts no liability of the content of external links.

Our project follows the safe harbor provisions of 17 U.S.C. ยง512, otherwise known as Digital Millennium Copyright Act (โ€œDMCAโ€).

If any images posted here are in violation of copyright law, please contact us and we will gladly remove the offending images immediately upon receipt of valid proof of copyright infringement.

General Copyright Statement

Most of the sourced material is posted according to the โ€œfair useโ€ doctrine of copyright law for non-commercial news reporting, education and discussion purposes. We comply with all takedown requests.

You may not use the Service for any illegal or unauthorized purpose. You must not, in the use of the Service, violate any laws in your jurisdiction (including but not limited to copyright or trademark laws).

homehost's People

Contributors

ridhwaans avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.