ridhwaans / homehost Goto Github PK
View Code? Open in Web Editor NEWself-hosted, Netflix-like app made for streaming
License: MIT License
self-hosted, Netflix-like app made for streaming
License: MIT License
It shows this error message on starting the server. How to fix this
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 | })
Modify this line in the client to render just not null data
if (containerRef.current && containerRef.current.firstChild && data) {
Completely useless, but a HUGE improvement in demo
(Love this project)
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?
Are there any plans to provide a dockerized version of the excellent software?
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'
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
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.
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) ?
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
[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.
Hey. I would love seeing this app as a docker image? Do you think it's possible?
How complicated would be to load videos from external storage services (aws, azure, gcp, etc) instead of the local storage?
Thanks
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?
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
Essentially what it says in the title. Add support for signing in with Oauth2,
Hi, Adding admin panel with upload feature like https://streamaserver.org will be helpful.
If u can help me to understand how to use it pls.;;
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?
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.
it would be nice if you add google drive integration so all the movies and tv shows are grabbed from gdrive
Hi, there has been no commits for a few months, is the project still maintained ?
only audio stream plays if we play an HEVC encoded movie, if the movie is encoded with AVC then it plays fine.
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..
Hi,
Have you considered supporting IPFS as the file-system? (IPFS supports a POSIX filesystem interface)
Thanks,
Timos
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...
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.