Giter Club home page Giter Club logo

robinp7720 / oblecto Goto Github PK

View Code? Open in Web Editor NEW
169.0 12.0 22.0 2.74 MB

Oblecto is a media server, which streams media you already own, and is designed to be at the heart of your entertainment experience. It runs on your home server to index and analyze your media such as Movies and TV Shows and presents them in an interface tailored for your media consupmtion needs.

License: GNU Affero General Public License v3.0

JavaScript 98.36% Dockerfile 0.10% Shell 0.08% TypeScript 1.47%
media mediacenter mediaserver rest-api movie tv-shows storage datahoarder tracking real-time

oblecto's Introduction

Hey, nice to see you!

I'm a computer science student who spends a fair amount of time making it easier for you to waste your time watching your favourite movies.

I also listen to a lot of music, so here's a live updating banner of what my MPD server is playing:

Contact:

  • Matrix: @robin:matrix.robindecker.me
  • IRC: Zeyphros on libera.chat
  • Tox: F321CE5411FEDA39B22FF927ED1EBECBB6C96B8CA6798477D7050139F9EC4157BCD021FBE288

oblecto's People

Contributors

dee-y avatar deepsourcebot avatar dependabot[bot] avatar hamptonmoore avatar lholliger avatar robinp7720 avatar zetabite 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

oblecto's Issues

Add ability to optionally use redis as the queue server

Using redis as the optional queue server. The built in queue manager should still be available to allow for standalone operation. it would allow remote servers to handle tasks such as media and possibly pre-flight transcoding in the future.

Remote playback control

Currently remote playback initiation is possible, however, full remote playback control should be available to supporting clients including:

  • pausing/resuming
  • seeking
  • "next episode" when watching an series episode

Possible explorations:
Clients may describe available additional actions separate from the named above and allow those actions to be completed by remote clients/controllers

Changes to federation

It's been decided that federation will be migrated to use a single port as using two different servers with two different ports is highly unnecessary.

A peer to peer based server will also be used instead of server client based servers to reduce the complexity of the client/server code and reduce duplication.

CLI Interface for Oblecto

A CLI tool should be available which allows for the creation of user accounts and maintenance of the media library

Use the file ID to play episodes and movies

Since the player should be able to choose which file of an episode or movie it should play, playing videos should not be tied to the movie route or the episodes route. All video types should be handled the same.

Dockerfile

Is there any plan to add Docker support?

I can write a Dockerfile for Oblecto and open a pull request, would just like to know if that's something that you want to be officially supported. I'd really prefer an official image instead of some random one.

Use a seperate UI for first installation

Currently, installation must be completed through the CLI. It would be beneficial if the database setup and first user setup could be completed from a web interface

Propose logo

Hello @robinp7720, i am a graphic designer. I would like to know if you would be interested in me making a logo for this project. If you would have me, i would make a logo for you, and it's free.

Changes to stream file selection

After a long discussion, it's been decided that stream file selection is not what is actually desired. This will be changed to scanning for available qualities, and exposing these qualities, rather than presenting the available files.

This will require a separate scanner to determine the quality of media files. This includes reading both file name tags such as "HDCAM", as well as retrieving the bit depth, resolution and bit rate of the media files.

After the aforementioned has been implemented, federated streaming will also be migrated to requesting a certain quality of a movie/episode, instead of requesting a single file.

Docker installation failed: No matching distribution found for babelfish>=0.6.0 (from guessit)

Overview
While following the Install Using Docker guide, the captioned error showed up. I fixed it temporarily by using an older version of guessit.

Steps to reproduce

  1. git clone --recurse-submodules https://github.com/robinp7720/Oblecto.git
  2. docker build -t oblecto .
Step 5/13 : RUN pip3 install guessit
 ---> Running in abf1a43c41b8
Collecting guessit
[omitted]
Collecting babelfish>=0.6.0 (from guessit)
  Could not find a version that satisfies the requirement babelfish>=0.6.0 (from guessit) (from versions: 0.1, 0.1.1, 0.1.2, 0.1.3, 0.1.4, 0.1.5, 0.2.0, 0.2.1, 0.3.0, 0.4.0, 0.5.0, 0.5.1, 0.5.2, 0.5.3, 0.5.4, 0.5.5)
No matching distribution found for babelfish>=0.6.0 (from guessit)
The command '/bin/sh -c pip3 install guessit' returned a non-zero code: 1

Possible reason
guessit added babelfish>=0.6.0 as dependency in v3.4.2, however babelfish==0.6.0 requires at least Python 3.6, which is higher than the Python version in the node:10 docker image

Temporary fix
Use previous guessit version by changing RUN pip3 install guessit to RUN pip3 install guessit==3.4.1 in the Dockerfile

Isolate service apis from oblecto core

It may be beneficial to consolidate the TMDB api lib, TMDB Indexers, updaters and artwork retrievers so the oblecto instance doesn't need to be passed to it, but only the config entity relevant to the tmdb items

Replace all uses of jimp with sharp

Jimp should be removed as a dependency as sharp is already a dependency anyways and it far more performant.
All uses of jimp should be migrated to sharp.

Error when running npm install

Error

> node scripts/install.js

fetching: http://download.handbrake.fr/releases/1.0.7/HandBrakeCLI-1.0.7.dmg
internal/streams/legacy.js:59
      throw er; // Unhandled stream error in pipe.
      ^

Error: write EPROTO 4448560576:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:../deps/openssl/openssl/ssl/s23_clnt.c:802:

    at WriteWrap.afterWrite [as oncomplete] (net.js:868:14)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] postinstall: `node scripts/install.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/user/.npm/_logs/2018-11-04T14_00_24_264Z-debug.log

OS

MacBook Pro (13-inch, 2017)
MacOS 10.14

Trakt integration

Users should be able to link trakt accounts to sync movie and episode tracking info

Add feature to automatically clean up media library

Having an automatic method of sorting/cleaning up a media library would be incredibly beneficial.
Ideally, items should be moved to the correct location after they have been indexed, but there should also be a rest endpoint to execute a cleanup manually.

Options that should be available for cleaning up series libraries:

  • Group by (multiple may be possible, order also matters):
    • Network
    • Genre
    • Status (Ended/Continuing)
    • airsDayOfWeek
  • Separate directories for seasons

Options that should be available for cleaning up movie libraries:

  • Group by (multiple may be possible, order also matters):
    • Release year
    • Genre
    • Original Language

Realtime transcoding

Media should be transcoded for playback when requested by a client which cannot playback any of the file types stored on disk

Unknown attributes during media indexing

Warning: Unknown attributes (max_content,max_average,red_x,red_y,green_x,green_y,blue_x,blue_y,white_point
_x,white_point_y,min_luminance,max_luminance) passed to defaults option of findOrCreate

File selector for episode and movie

since a single media item such as movies or episodes can have more than one file linked to it, the REST api should expose items such as codec, quality, bitrate, size and file ID to the player

Windows install error

fatal error C1083: Cannot open include file: 'dns_sd.h' : No such file or directory
During npm install it is stumbling on the above fatal error. A quick web search shows this is possibly a dependency on Apples Bonjour SDK. If so, how does one install on PC without an Apple Developer account?

Win10
Bonjour PS installed

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.