GithubHelp home page GithubHelp logo

ridhwaans / homehost Goto Github PK

View Code? Open in Web Editor NEW
1.0K 35.0 117.0 187.85 MB

self-hosted, Netflix-like app made for streaming

License: MIT License

HTML 0.12% CSS 24.18% JavaScript 75.05% Shell 0.20% Dockerfile 0.46%
react netflix streaming movies music tv books comics podcasts media

homehost's People

Contributors

ridhwaans avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

homehost's Issues

Cannot get tv/

All works fine for movie but when I try to load movie series like anime it don't find the media..

tv.json file path is: http://192.168.1.107:5000/tv/90215/1/1
error in browser: Cannot GET /tv/90215/1/1

Directory name: Isekai_Cheat_Magician 90215
File name: S1E1 Isekai Cheat Magician
File extension: .mp4

Terminal output:
[0] Generating data for TV...
[0] GET: F:\contenuti\SerieTV\Isekai_Cheat_Magician 90215
[0] url: https://api.themoviedb.org/3/tv/90215?api_key=MY_API_KEY
[0] GET: F:\contenuti\SerieTV\Isekai_Cheat_Magician 90215\S1E1 Isekai Cheat Magician.mp4
[TV] File saved

I don't find errors..

TypeError: containerRef.current.firstChild is null

If I mapping just the videos and tv shows I get this error when I try to access to the portal:

TypeError: containerRef.current.firstChild is null
useSlider/<
src/hooks/useSlide.js:25

  22 | if (containerRef.current && data) {
  23 | 
  24 |     const containerWidth = containerRef.current.clientWidth;
> 25 |     const itemWidth = containerRef.current.firstChild.clientWidth
     | ^  26 |     const totalInViewport = Math.ceil(containerWidth / itemWidth)
  27 | 
  28 |     setSlider(containerRef.current.children)

Movies/</<
src/components/Movies/index.js:43

  40 |     setRecentlyAddedMovies(response.recentlyAddedMovies)
  41 |     setPopularMovies(response.popularMovies)
  42 |     setAnimationMovies(response.animationMovies)
> 43 |     setHighestRatedMovies(response.highestRatedMovies)
     | ^  44 |     setWarMovies(response.warMovies)
  45 | 
  46 | })

Temp fix

Modify this line in the client to render just not null data

if (containerRef.current && containerRef.current.firstChild && data) {

support IPFS backend

Hi,

Have you considered supporting IPFS as the file-system? (IPFS supports a POSIX filesystem interface)

Thanks,
Timos

G

My title is messed up but I don’t know how to go apon calling /api/generate after running yarn start-dev.
I know this is a very simple issue but please help me fix it.

Unable to access this over lan

Hello Ridhwaans,

Great initiative by the way, I tried to set this up works good locally on the machine where I set this up but unable to access it on my lan using different machine. Is there any additional configuration required to get this working on lan. Please advise.

The issue I am facing is the app loads up fine, shows all the movies in the catalog but when I open any of it, the player becomes inactive (as if all the controls greys out and I cannot do anything with that). Appreciate your time and thanks in advance.

Regards,
Mohammed Wajee

Are API keys required?

Hello. It is unclear what the API's are being used for... so, if it is not critical to the functionality, can they be made optional?

Logo design

Hi,
I have read your work so I decided to creat a logo for you. I hope you like it and you want to use it. I can give you all the formats of the design free. If you want to make changes please specify.

I used the colours of your website.

Greetings

home

Outdated

This seems a bit outdated. Can not get it working at all due to a lot of outdated dependencies where most of them are deprecated.

npm WARN deprecated [email protected]: See https://github.com/lydell/source-map-url#deprecated
npm WARN deprecated [email protected]: flatten is deprecated in favor of utility frameworks such as lodash.
npm WARN deprecated @hapi/[email protected]: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated @hapi/[email protected]: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated [email protected]: request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142
npm WARN deprecated [email protected]: this library is no longer supported
npm WARN deprecated [email protected]: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated [email protected]: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated [email protected]: use String.prototype.padStart()
npm WARN deprecated [email protected]: See https://github.com/lydell/source-map-resolve#deprecated
npm WARN deprecated [email protected]: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added
npm WARN deprecated [email protected]: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
npm WARN deprecated [email protected]: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
npm WARN deprecated [email protected]: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
npm WARN deprecated @hapi/[email protected]: Moved to 'npm install @sideway/address'
npm WARN deprecated [email protected]: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated @hapi/[email protected]: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated @types/[email protected]: This is a stub types definition. testing-library__dom provides its own type definitions, so you do not need this installed.
npm WARN deprecated [email protected]: This loader has been deprecated. Please use eslint-webpack-plugin
npm WARN deprecated [email protected]: babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.
npm WARN deprecated [email protected]: please switch to a stable version
npm WARN deprecated @hapi/[email protected]: Switch to 'npm install joi'
npm WARN deprecated [email protected]: This SVGO version is no longer supported. Upgrade to v2.x.x.

Support more audio formats

From the readme it looks like only .mp3 streaming is supported. My collection is in FLAC, and I would like to stream in Opus ideally. It would be nice to be able to use something that is not MP3...

Make Docker Image

Hey. I would love seeing this app as a docker image? Do you think it's possible?

Feature - Read from nfo and tags

Hi,
is it possible to make your app able to read infos from .nfo file (for movies and tv shows), and from id3 tags (for music) ?

Docker?

Are there any plans to provide a dockerized version of the excellent software?

Update

When are you going to update this project and make it mobile friendly? It's wacky on mobile devices, a lot of dependencies are outdated too

Oauth2 Support

Essentially what it says in the title. Add support for signing in with Oauth2,

Allow for more flexible folder structure

Pitch

As of right now, your folder structure is hard coded and not dynamic.

What if a user wants to store tv episodes by season, in season folders?
What if user wants to store collection of movies within a "collection" sub dir within the "movies" folder?

Motivation

Somewhat self-explanatory why it's needed. Folder structure is not an easy thing to maintain to an exact specification, especially when the media library is even moderately large or you collect media from different providers with different specifications on their own structure.

Server: Missing MOVIES_API and MOVIES_KEY

I tried to start the server using the readme: npx prisma migrate dev

I got this error:

Generating data for Movies...
GET: /foo/bar/like-netflix/movies/kate 597891.mkv
url: https://undefined/movie/597891?api_key=undefined&append_to_response=images,credits,similar
There was a problem adding this movie TypeError: Cannot read property 'status' of undefined
    at getMovieMetaData (/tmp/workspace/homehost/server/models/index.js:16:13)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
    at async upsertManyMovies (/tmp/workspace/homehost/server/jobs/index.js:80:20)
    at async sync (/tmp/workspace/homehost/server/jobs/index.js:55:27)

My server env is:

TMDB_KEY = '47422a2813d47422a2813d'
SPOTIFY_CLIENT_ID = '<client_id>'
SPOTIFY_CLIENT_SECRET = '<client_secret>'

MOVIES_PATH = '/var/tmp/lisu/like-netflix/movies'
TV_PATH = '/opt/tv/directory'
MUSIC_PATH = '/opt/music/directory'

DATABASE_URL = 'file:./data/media.db'
CLIENT_BASE_URL = 'http://192.168.A.B:3000'

Research

I found that the error is trowed in this file:

homehost/server/services/metadata.js

if (item.type == Type.Movie){
    request_url = `https://${process.env.MOVIES_API}/movie/${item.id}?api_key=${process.env.MOVIES_KEY}&append_to_response=images,credits,similar`
}

So my question is, what are the expected values for MOVIES_API and MOVIES_KEY?

Thanks

Movie metadata could not be generated

Hello,
I just installed this on a fresh installation of Ubuntu 17.10.
The Music is imported just fine, but I can't get the movies to work. (maybe I just don't understand how to name them right).
I named them like "603-the-matrix.mp4" or "604-the-matrix-reloaded.mp4".
Do I have to name them something different?

Local disk storage

How complicated would be to load videos from external storage services (aws, azure, gcp, etc) instead of the local storage?

Thanks

Babel error on starting homehost by running yarn homehost

[1] ERROR in ./src/index.js
[1] Module build failed (from ./node_modules/babel-loader/lib/index.js):
[1] Error: [BABEL] /home/arihant/Downloads/homehost-master/client/src/index.js: 
[1] As of v7.0.0-beta.55, we've removed Babel's Stage presets.
[1] Please consider reading our blog post on this decision at
[1] https://babeljs.io/blog/2018/07/27/removing-babels-stage-presets
[1] for more details. TL;DR is that it's more beneficial in the
[1]   long run to explicitly add which proposals to use.
[1] 
[1] For a more automatic migration, we have updated babel-upgrade,
[1] https://github.com/babel/babel-upgrade to do this for you with
[1] "npx babel-upgrade".
[1] 
[1] If you want the same configuration as before:
[1] 
[1] {
[1]   "plugins": [
[1]     // Stage 2
[1]     ["@babel/plugin-proposal-decorators", { "legacy": true }],
[1]     "@babel/plugin-proposal-function-sent",
[1]     "@babel/plugin-proposal-export-namespace-from",
[1]     "@babel/plugin-proposal-numeric-separator",
[1]     "@babel/plugin-proposal-throw-expressions",
[1] 
[1]     // Stage 3
[1]     "@babel/plugin-syntax-dynamic-import",
[1]     "@babel/plugin-syntax-import-meta",
[1]     ["@babel/plugin-proposal-class-properties", { "loose": false }],
[1]     "@babel/plugin-proposal-json-strings"
[1]   ]
[1] }
[1] 
[1] If you're using the same configuration across many separate projects,
[1] keep in mind that you can also create your own custom presets with
[1] whichever plugins and presets you're looking to use.
[1] 
[1] module.exports = function() {
[1]   return {
[1]     plugins: [
[1]       require("@babel/plugin-syntax-dynamic-import"),
[1]       [require("@babel/plugin-proposal-decorators"), { "legacy": true }],
[1]       [require("@babel/plugin-proposal-class-properties"), { "loose": false }],
[1]     ],
[1]     presets: [
[1]       // ...
[1]     ],
[1]   };
[1] };
[1]  (While processing: "/home/arihant/Downloads/homehost-master/client/node_modules/@babel/preset-stage-2/lib/index.js")
[1]     at _default (/home/arihant/Downloads/homehost-master/client/node_modules/@babel/preset-stage-2/lib/index.js:9:9)
[1]     at loadDescriptor (/home/arihant/Downloads/homehost-master/client/node_modules/@babel/core/lib/config/full.js:165:14)
[1]     at cachedFunction (/home/arihant/Downloads/homehost-master/client/node_modules/@babel/core/lib/config/caching.js:33:19)
[1]     at loadPresetDescriptor (/home/arihant/Downloads/homehost-master/client/node_modules/@babel/core/lib/config/full.js:235:63)
[1]     at config.presets.reduce (/home/arihant/Downloads/homehost-master/client/node_modules/@babel/core/lib/config/full.js:77:21)
[1]     at Array.reduce (<anonymous>)
[1]     at recurseDescriptors (/home/arihant/Downloads/homehost-master/client/node_modules/@babel/core/lib/config/full.js:74:38)
[1]     at loadFullConfig (/home/arihant/Downloads/homehost-master/client/node_modules/@babel/core/lib/config/full.js:108:6)
[1]     at process.nextTick (/home/arihant/Downloads/homehost-master/client/node_modules/@babel/core/lib/transform.js:28:33)
[1]     at processTicksAndRejections (internal/process/next_tick.js:74:9)
[1]  @ multi (webpack)-dev-server/client?http://localhost:3000 (webpack)/hot/dev-server.js babel-polyfill ./src/index.js app[3]
[1] ℹ 「wdm」: Failed to compile.

Still active ?

Hi, there has been no commits for a few months, is the project still maintained ?

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.