Jump to content

Watch Party


chef

Recommended Posts

solidsnakex37
7 minutes ago, bugz000 said:

so what would you expect the main hurdles to be? as this seems relatively simple to achieve, but there must be some form of roadblock as even jellyfin and discord can't quite get it right

I've had zero issues with the Jellyfin solution. 

  • Agree 1
Link to comment
Share on other sites

bugz000
1 minute ago, neik said:

Latency I would assume, just to name one.

indeed possible but as i mentioned, fps games get round this just fine with many many packets per second, this much is overkill as mentioned prior so i doubt latency is such a problem so long as sync is within a couple seconds surely?

Link to comment
Share on other sites

bugz000
5 minutes ago, solidsnakex37 said:

I've had zero issues with the Jellyfin solution. 

iirc jellyfin solution is only supported on a couple platforms sadly, at least when i tried it, it was a complete waste of time,  didn't work at all, and wasted a good 30 minutes of my time, not to mention their port intentionally collides with emby's as a form of passive protest or something, some political bs i have no desire to indulge in...
but all this is redundant anyway, we are discussing emby, not jellyfin, though i'm sure their forums are available if you want to continue discussions about jellyfin there
we are discussing how watch party could be possible on emby and implemented properly, what would be your suggestion?

Edited by bugz000
Link to comment
Share on other sites

drait
10 minutes ago, bugz000 said:

we are discussing how watch party could be possible on emby and implemented properly, what would be your suggestion?

Since JF is open source, maybe the devs can take a look at how they implemented SyncPlay, and model it after that? While it does have its own limitations, if you happen to have endpoints that are all compatible, using it is rather simple, and it does work fairly well (at least the current server and official client versions). That also includes the access controls they added around who can create groups, join groups, group permissions, etc. 

Edited by drait
Link to comment
Share on other sites

bugz000
7 minutes ago, drait said:

Since JF is open source, maybe the devs can take a look at how they implemented SyncPlay, and model it after that? While it does have its own limitations, if you happen to have endpoints that are all compatible, using it is rather simple, and it does work fairly well (at least the current server and official client versions). That also includes the access controls they added around who can create groups, join groups, group permissions, etc. 

since jellyfin is a fork of the last open source emby release before they went closed source i think there's some legal implications should they do that... maybe, i'm not a lawyer, but i recall something about this which caused KSP devs to hire the dev team of plugins that were ultimately added to the core game, or to purchase the code off them, but i suppose it could be inspired at least, but that being said copying a flawed solution on a very outdated codebase is not going to be much help, plus there's already an existing "test" of this within emby as a plugin earlier in this forum post! it's not perfect but there's some demonstration videos that seem to be somewhat functional, at least as a core mechanic, so JF solution isn't needed, rather it's polishing the existing solution and making it user friendly enough

iirc the plugin solution hit a wall with permissions as the plugin API doesn't support such things, maybe at the very least allowing api support for this would allow the plugin to reach full potential
 

Link to comment
Share on other sites

Lambtalk
8 minutes ago, drait said:

Since JF is open source, maybe the devs can take a look at how they implemented SyncPlay, and model it after that? While it does have its own limitations, if you happen to have endpoints that are all compatible, using it is rather simple, and it does work fairly well (at least the current server and official client versions). That also includes the access controls they added around who can create groups, join groups, group permissions, etc. 

The SyncPlay integration was done by a dev who did a half baked implementation, left no documentation and disappeared, so it's probably not best to look at it.

That, plus Emby then leaves themselves open to the terms of the JF licence if they take any learnings or bit of code from JF and implement it into Emby. Which, if I understand the licence correctly, would mean Emby would have to release source code for any integrated binaries if asked. Or something to that effect.

I believe it's been stated before (I could be misremembering) that Emby devs won't consider looking at Jellyfin code, not only to protect themselves, but also because they don't believe there is any benefit in doing so. 

  • Agree 1
Link to comment
Share on other sites

Lambtalk

Sorry for the double post, but also to add:

Whilst JF is a fork of an older version of Emby, that doesn't really make them a like for like comparison anymore. Both software have evolved drastically in the years since.

APIs have changed on both fronts, and both software have also undergone structural changes that simply mean you can't just take some code, change a few names and call it a day. 

  • Agree 1
Link to comment
Share on other sites

bugz000

so it's clear to me people aren't reading the whole thread so just to recap

a plugin exists to achieve this, but it hit a wall; https://www.youtube.com/watch?v=B-ttVW_iK70
The Problem:  There were some missing capabilities from the emby server. We could start the streams simultaneously, but we weren't able to create any kind of viable session opt-in. A separate service could potentially be created to opt-in to streaming together, but nothing internal for emby. 


JF, discord, amazon prime solutions have all been cited, 10+ times at least, each

Edited by bugz000
Link to comment
Share on other sites

DanielFrank

It's probably safe to assume that this feature just ain't happening. Not natively, anyway. 3rd party, maybe.

Link to comment
Share on other sites

rbjtech

The simple fact of the matter is for something like Watchparty to work properly - Emby needs to allow the user to be interactive with options outside of just playing media.   

 'Alternative' ways of adding yourself to a watch party have already been achieved in the Proof of Concept done at the start of this thread - so as a PoC it works - but is this something emby would want to be used vs the offerings from Plex, JF, Amazon etc ?  Of course not - and this is why while the PoC was successful, the concept could not be carried forward into a fully featured product.

Until the necessary core functionality is added - it cannot be developed by a 3rd party dev/plugin - they simply do not have the tools to achieve a satisfactory solution.   And if the Core did add the functionality, they likely want to use it for their own implementation ... ;)

  • Like 1
  • Agree 3
Link to comment
Share on other sites

drait

Just to be clear, I wasn't suggesting taking any code directly from JF to be used within Emby. There's nothing that has to be done license-wise when it comes to reviewing code snippets, and using it for ideas of your own as to how to solve problems. 

And maybe the implementation is/was half-baked, and poorly done, but it's still half-baked better than a zero-baked solution. 

Edited by drait
Link to comment
Share on other sites

solidsnakex37
1 hour ago, bugz000 said:

iirc jellyfin solution is only supported on a couple platforms sadly

The point is that it works, and works well. 

 

 

1 hour ago, bugz000 said:

wasted a good 30 minutes of my time, not to mention their port intentionally collides with emby's as a form of passive protest or something

Sounds like user error to me.

 

1 hour ago, bugz000 said:

we are discussing emby

We are in fact discussing Watch Party, not Emby. 

 

1 hour ago, bugz000 said:

we are discussing how watch party could be possible on emby and implemented properly

I am glad you figured this out by the end of your post. 

 

1 hour ago, bugz000 said:

what would be your suggestion?

This post is circling back in on itself over and over. It's approaching two years old now. The official stance from Luke is that it's "being planned for future releases". 

So there is nothing else to be said or done here. If you read through this entire thread, which I have done, you can find that the "third party plugin" option that keeps being repeated here as users beg for this feature to be implemented, isn't possible without the Emby Core team to pick it up. 

If they were at all interested in working with us users, they would have by now. Though, it's not on their radar or even a priority at this time which is obvious. 

So what's my suggestion? 

Use another platform if you want this feature that badly and wait for the Core team to implement an official Watch Party feature, if that ever happens at all. 

  • Disagree 1
Link to comment
Share on other sites

Lambtalk
1 hour ago, drait said:

Just to be clear, I wasn't suggesting taking any code directly from JF to be used within Emby. There's nothing that has to be done license-wise when it comes to reviewing code snippets, and using it for ideas of your own as to how to solve problems. 

And maybe the implementation is/was half-baked, and poorly done, but it's still half-baked better than a zero-baked solution. 

Unfortunately it's not that black and white. Using GPL code as a reference is a bit of a grey area, as even just looking at GPL code and then writing your own implementation can be construed as using that GPL code as a reference, and therefore open you up to the licence terms.

  • Agree 1
Link to comment
Share on other sites

Dibbes
2 hours ago, bugz000 said:

not to mention their port intentionally collides with emby's as a form of passive protest or something, some political bs i have no desire to indulge in...

Just FYI, Jellyfin is a fork of Emby 3.5 (if I remember the version correctly), done a few years ago. I think think there's some info on the JF about page regarding that. Either way, this is the reason for the overwhelming amount of similarities, including the port numbers. You can change the ports quite easily in the admin settings though.

  • Like 1
Link to comment
Share on other sites

Dibbes
11 minutes ago, Lambtalk said:

Unfortunately it's not that black and white. Using GPL code as a reference is a bit of a grey area, as even just looking at GPL code and then writing your own implementation can be construed as using that GPL code as a reference, and therefore open you up to the licence terms.

That would be VERY difficult to prove, especially for closed source...

  • Facepalm 1
Link to comment
Share on other sites

Lambtalk
1 minute ago, Dibbes said:

That would be VERY difficult to prove, especially for closed source...

Don't shoot the messenger, man. I'm just telling you how it is. But surely you understand that just because the software is closed source, it doesn't negate the terms of the GPL licence.

The requirement to open source any code that has been made from referencing GPL code is something that has even been acknowledged in this very thread by the plugin developer. 

So take from that what you will. 

  • Agree 2
Link to comment
Share on other sites

Dibbes
2 minutes ago, Lambtalk said:

Don't shoot the messenger, man. I'm just telling you how it is. But surely you understand that just because the software is closed source, it doesn't negate the terms of the GPL licence.

The requirement to open source any code that has been made from referencing GPL code is something that has even been acknowledged in this very thread by the plugin developer. 

So take from that what you will. 

Not saying you're wrong and I'm definitely not attacking you... I'm just following the adage going back to the late 90s: Well Googled is half the work... 😉
 

  • Haha 1
Link to comment
Share on other sites

bugz000

i think it's pretty clear using jellyfin for anything in emby is not going to happen, either let it go or use jellyfin instead

now, how about a solution for emby?

Edited by bugz000
Link to comment
Share on other sites

sydlexius
8 minutes ago, bugz000 said:

so what would you expect the main hurdles to be? as this seems relatively simple to achieve, but there must be some form of roadblock as even jellyfin and discord can't quite get it right

I should state that I'm a mere mortal who has a passing personal interest in the Watch Party feature (I mostly want to see it done because so many others want said functionality).  For syncing playback position, whose position should be the reference one?  The person that "pressed play" the first time?  The "host" user?  These in and of themselves could be problematic (the former might not have a reliable connection.  The latter would require underlying database changes).  Even if those issues were resolved, now you deal with the issue of all other clients pulling reference timestamps from the server...this is added overhead (compute and network), that if disrupted could lead to some weird issues.  Instead, it should be predicated on events, such as play, pause, and stop...maybe skip/chapter selection, but as I don't participate in these parties all that much, I don't know how desirable those might be.

  • Agree 1
Link to comment
Share on other sites

sydlexius
4 hours ago, bugz000 said:

iirc jellyfin solution is only supported on a couple platforms sadly, at least when i tried it, it was a complete waste of time,  didn't work at all, and wasted a good 30 minutes of my time, not to mention their port intentionally collides with emby's as a form of passive protest or something, some political bs i have no desire to indulge in...
but all this is redundant anyway, we are discussing emby, not jellyfin, though i'm sure their forums are available if you want to continue discussions about jellyfin there
we are discussing how watch party could be possible on emby and implemented properly, what would be your suggestion?

I'm no Jellyfin user, but to borrow from Hanlon's razor, 'never attribute to malice that which is adequately explained by stupidity, laziness, or following the path of least resistance.'  Odds are, when Jellyfin was forked nobody bothered to change the port numbers because of it just wasn't a priority.  Now that there's a sizable installation base, there's going to be resistance to changing it.

  • Agree 1
Link to comment
Share on other sites

bugz000
2 minutes ago, sydlexius said:

I'm no Jellyfin user, but to borrow from Hanlon's razor, 'never attribute to malice that which is adequately explained by stupidity, laziness, or following the path of least resistance.'  Odds are, when Jellyfin was forked nobody bothered to change the port numbers because of it just wasn't a priority.  Now that there's a sizable installation base, there's going to be resistance to changing it.

*sigh* getting sick of jellyfin discussions here, but i found a post on the jellyfin forums about the port conflict when googling it as it is deeply buried in the config files and conflicting with emby means access to the admin panel isn't possible without shutting down emby and the replies suggested pretty unanimously that jellyfin was created in protest to emby being closed source and the emby development ethics or such, and they intentionally leave it to make it more difficult to run both, i found it in the config and changed it, only to find watch party wasn't supported on roku, only pc (maybe other too) so was a big waste of time, the port conflict which causes problems with deployment as i use an installation script service to dump 15-16 services down at once unattended is the only reason i don't use jellyfin. all other services install fine, jellyfin will conflict with emby, you could argue its subjective which has the "right" to these ports, or neither, but tldr; port conflict still exists, whatever motive, and watch party did not work... so it's no loss to me really
i would run them both, but port conflict, so emby only, simple as that really

Link to comment
Share on other sites

BillOatman
5 hours ago, bugz000 said:

watch party is a difficult problem to solve, but it is possible, doing it nicely however, even since using discord youtube "watch party" feature has had problems, i don't know the specifics of why it's difficult, drawing comparison here to FPS games where location and shooting is so quick to nearly be seamless, a similar technology could be employed to sync a playbar surely? but it would require a whole new engine and protocol for this specific feature... maybe the devs can highlight some of the difficulties and we can brainstorm a solution together?

I do not expect it is as difficult as you are thinking. Every client has the ability now to Rew/FF/Start/Stop/Pause.  Some clients can't respect the commands that come from plugins, but they all would need to respect it from the server core or Intro Skip would not work as great as it does. That's all that is needed client side. New server code to allow clients to create and sign up for parties and keep the clients in sync is the bulk of the work I believe.  JF has it, Plex has it, and they are similar code bases.

  • Agree 1
Link to comment
Share on other sites

BillOatman
1 minute ago, bugz000 said:

i would run them both, but port conflict, so emby only, simple as that really

I run them on different servers. 

  • Thanks 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...