jellyfin-archive / jellyfin-desktop

Desktop Client for Jellyfin
https://jellyfin.org
GNU General Public License v2.0
180 stars 45 forks source link

Software Direction of Jellyfin Theater #1

Closed gravypod closed 5 years ago

gravypod commented 5 years ago

Hello. I'm writing in to ask the current maintainers what the appropriate direction for Jellyfin's theater is. There are currently, what seems like, 3 forks of the same code base:

  1. https://github.com/jellyfin/jellyfin-theater-electron
  2. https://github.com/MediaBrowser/emby-theater-windows
  3. https://github.com/jellyfin/jellyfin-theater-pi

It seems to me that the following statements are true:

  1. There is no documentation created about building, using, or deploying this software
  2. This software has interesting use cases for thin-clients wanting to consume Jellyfin
  3. The code in these repos need some TLC (Removal of Emby Branding, Code Quality, etc).

Because of these I am currently experimenting with building the electron version of this code base using electron-packager. After this is done I will document my steps, dependencies, and probably take some screenshots so people can get a better picture of what this software is for. After that it would be very nice to get one of the primary maintainers of jellyfin to set up a Travis-CI account and hook this up with a CI.

Something that I don't have a very clear picture of is the site "https://tv.emby.media". Is this code located somewhere?

gravypod commented 5 years ago

I've made a PR with some basic house keeping stuff included: https://github.com/jellyfin/jellyfin-theater-electron/pull/2

JustAMan commented 5 years ago

Re tv.emby.media - I don't think it was ever published.

As for other repos - starting with electron app is definitely a good start. If only you would also manage to package it with custom ffmpeg for better codec support... According to issues at electron repo it's pretty hard but doable.

gravypod commented 5 years ago

@JustAMan good point. I'll take a look at that. I think setting up Travis should be the next priority. For a home project I've already setup something that boots-to-electron for kisk applications. I was thinking of opening my work. For the pi I'd have to change the way some things are done. I was building a live-bootable Arch image which wouldn't work for arm. I should be able to port my configs and setup to a Debian image and build a live bootable version of that.

As for builds being ubuntu specific it might be good to just distribute a dockerfile that has the build chain inside of it.

I've initially gotten this to work against a friend's emby server by editing the "getBaseUrl()" function. I think all emby's service does is auto discover a list of emby servers.

ghost commented 5 years ago

Re : Something that I don't have a very clear picture of is the site "https://tv.emby.media". Is this code located somewhere?

Sorry to grave dig but all i think this honestly is a local redirect. When you first load the page it just asks you for information about your server, IE do you have a account with us? If not, do you know the IP of your emby server.

We may have to either recreate this locally within the theater app to simulate this process. Just think of it as a php redirect. All this does is capture the users input for the ip and redirects you magically through a POST to the client with some string attached.

gravypod commented 5 years ago

It's a little more complicated than that unfortunately. This client has the following flaws:

  1. tv.emby.media reimplements the emby UI with many usability changes for keyboardless environments

  2. It uses mpv to play videos

  3. It's built to run even when the emby server is offline by reading the media directly from disk as a backup

I've hacked together a working version by scraping tv.emby.media that I'm willing to send to anyone for it's educational value but I believe upstreaming my changes would be a copyright violation.

The best option is, in my opinion, reimpenting this software to be a dumb passthrough to the main emby server like you expected it to be. And we should also get rid of this complicated mpv program.

On Thu, Jan 3, 2019, 8:34 AM Joshua Winters-Brown <notifications@github.com wrote:

Re : Something that I don't have a very clear picture of is the site " https://tv.emby.media". Is this code located somewhere?

Sorry to grave dig but all i think this honestly is a local redirect. When you first load the page it just asks you for information about your server, IE do you have a account with us? If not, do you know the IP of your emby server.

We may have to either recreate this locally within the theater app to simulate this process. Just think of it as a php redirect. All this does is capture the users input for the ip and redirects you magically through a POST to the client with some string attached.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/jellyfin/jellyfin-theater-electron/issues/1#issuecomment-451144015, or mute the thread https://github.com/notifications/unsubscribe-auth/AA3D208YhAT_h7CyuqbTfY3eXbUT8-liks5u_gbggaJpZM4ZgifX .

ghost commented 5 years ago

Hmmmm.... Would you be able to email me a copy of the tv.emby.media rip you have so i can review it?

also i was playing around with implementing a simple passthrough. My first thought was to just use a alert that will capture the users info one time then write it down into a .txt file maybe called destination. I got the users input, wrote it into a file but the damn thing would never actually load the site. So i think im gonna have to not be cheap about it and actually go about writing a html form.

On 2. could you elaborate a little more. Are we looking to going to ffmpeg instead of mpv?

For 3. what do you mean read data directly from disk, as in the clients movies folder etc?

ghost commented 5 years ago

I have implemented a pass through feature in my latest pr!

gravypod commented 5 years ago

@winters-brown mind sending me an email so I know who to send a copy of this code to? Thanks!

ghost commented 5 years ago

No Problem :)

bwaddington commented 5 years ago

will it work on raspbian stretch pi3+b

ghost commented 5 years ago

@bwaddington I believe so! But i haven't officially tested it yet! If you get around to it please let me know!

gravypod commented 5 years ago

@bwaddington @winters-brown this version should work well. It's missing some of the feature sets that the official app had but those feature sets might not be important to you. When I tested mine on my TinkerBoard and my Raspberry Pi the slowest things were the window managers that were required for one of the original app's features (media playback using MPV). As long as you're not using a compositing window manager this should be perfectly fine.

anthonylavado commented 5 years ago

Gonna close this for now. If anyone wants to take on the mantle for what we've got in the repo here, please go ahead.

As theater-pi seems to be redundant, I have archived it.