Raelone 2 Posted July 31, 2022 Share Posted July 31, 2022 On 7/29/2022 at 12:44 PM, chef said: Okay, a single server solution should be easy enough. Once the controlling session initiates playback, and the devices are sync'd, we'll connect all playback events from each device to the group. If someone pauses their device, do we pause them all? If someone stops playback (that isn't the controlling session), we'll just remove them from the group. Shouldn't be too complicated really... @Cheesegeezer @rbjtech, @BillOatman you think we should write this thing? Probabaly wouldn't take more then a couple days of writing and testing. Let me know Pause rewind and FF should all just keep in sync (happen to everyone in the party) and anyone in the watch together group should be able to do these functions. I wouldn't worry too much about someone intentionally messing up the party by rewinding or FF, these should usually be people you know. 1 Link to comment Share on other sites More sharing options...
Raelone 2 Posted July 31, 2022 Share Posted July 31, 2022 8 hours ago, speechles said: The ability to control the experience on the Roku will only work on the local LAN. Meaning those users at the same location already. Which sort of makes this hard to do on the Roku for that reason. The Roku External Control Protocol (ECP) will only work locally on the LAN. The Roku app used to be able to use a web socket with an external listener. But that did not include the ability to "launch" into the application. The application had to already be running. Roku has changed certification requirements. Roku is forcing developers to implement deep-linking and ECP into their applications if they are public applications that serve video streams. https://developer.roku.com/docs/developer-program/discovery/implementing-deep-linking.md Because of this change think of the Roku more on terms with second screen type applications. Where the second screen can contain the Emby remote control interface, such as the web app, or other such things. https://developer.roku.com/docs/developer-program/debugging/external-control-api.md With Roku the context requested to play must come from within the network. Roku has blocked any attempt to access their API from an external location. Threads such as the above used to be able to work on almost every Roku around the world that wasn't firewalled. Every single model until Roku introduced Roku OS 8. Ever since it has been LAN only. Just giving this as a reason not to give up on this entirely. But to not count on Roku being able to participate. It isn't us. It is them. Apologies. I am sure you get tied of hearing things like this, but Plex's Watch together feature has no such limitation in Roku. Watch together works just fine with people on different LAN (I have watched together from GA with someone in the UK before and out in CA all the time). 1 Link to comment Share on other sites More sharing options...
chef 3745 Posted July 31, 2022 Author Share Posted July 31, 2022 14 minutes ago, Raelone said: Pause rewind and FF should all just keep in sync (happen to everyone in the party) and anyone in the watch together group should be able to do these functions. I wouldn't worry too much about someone intentionally messing up the party by rewinding or FF, these should usually be people you know. Okay, note taken. Pause will be easy enough. Syncing FF and rewind We'll be sure to write it into the controller for sure, just not sure what the results will be like, especially when one client is transcoding while the others direct playing. Should be interesting to see what happens. Link to comment Share on other sites More sharing options...
Raelone 2 Posted July 31, 2022 Share Posted July 31, 2022 2 minutes ago, chef said: Okay, note taken. Pause will be easy enough. Syncing FF and rewind We'll be sure to write it into the controller for sure, just not sure what the results will be like, especially when one client is transcoding while the others direct playing. Should be interesting to see what happens. FF is used when for some reason there is some sort of outage and you have to start the party over for some reason then someone has to FF to get to the spot where it was (if you aren't able to just resume at that spot). I've also been watching with someone and they get a phone call and forget to pause so she would want to back up to where the phone call happened. Link to comment Share on other sites More sharing options...
rbjtech 4259 Posted July 31, 2022 Share Posted July 31, 2022 8 hours ago, Raelone said: I am sure you get tied of hearing things like this, but Plex's Watch together feature has no such limitation in Roku. Watch together works just fine with people on different LAN (I have watched together from GA with someone in the UK before and out in CA all the time). All we can do is try - We never had any reports of the Roku not working with Introskip Auto-skip - and this uses the same 'session control' method - so maybe this will work just fine. It may just be the 'pause/unpause' only as originally said - in which case that sounds more like an Emby Roku Client issue than a Roku issue. We shall have to see. Link to comment Share on other sites More sharing options...
chef 3745 Posted July 31, 2022 Author Share Posted July 31, 2022 So, I guess it will be the sys admin who sets up the library? Creates the item to put into the watch party? At least at first to test this thing out. I'm sure @rbjtech and @samuelqwe have some kind of cool ideas to create playlists and allow users to eventually create the parties themselves through the client UI? Maybe?? But for testing the playback sync, should we just write a plugin config to start? Link to comment Share on other sites More sharing options...
rbjtech 4259 Posted July 31, 2022 Share Posted July 31, 2022 21 minutes ago, chef said: So, I guess it will be the sys admin who sets up the library? Creates the item to put into the watch party? At least at first to test this thing out. I'm sure @rbjtech and @samuelqwe have some kind of cool ideas to create playlists and allow users to eventually create the parties themselves through the client UI? Maybe?? But for testing the playback sync, should we just write a plugin config to start? Yea to start - lets just use Admin. But to answer the question - yes anybody can potentially add to the 'Watch Together' library - borrowing from the 'Spotlight' idea - users can add to the 'Watch Together' playlist - and it then creates the strm file automatically from this. But that's ways down the line .. 1 Link to comment Share on other sites More sharing options...
ebr 14911 Posted July 31, 2022 Share Posted July 31, 2022 12 hours ago, Raelone said: I am sure you get tied of hearing things like this, but Plex's Watch together feature has no such limitation in Roku. Watch together works just fine with people on different LAN (I have watched together from GA with someone in the UK before and out in CA all the time). That's because they know about (and can control) your entire user session through their central server and they have developed their app to be aware of this feature. With them, the users aren't yours - they are theirs. These guys are trying to do this as a 3rd party plug-in with the app completely un-aware of it so that will have some limitations. Link to comment Share on other sites More sharing options...
chef 3745 Posted July 31, 2022 Author Share Posted July 31, 2022 (edited) 55 minutes ago, ebr said: Guys - I'd suggest maybe you start your own thread in the plug-ins forum to continue this discussion. Thanks. Will do. @rbjtech wanna do the honors? Or wait until we test out the playback sync privately? It's up to you guys. I don't know the entire community needs to know how many times we fail at writting the thing before it works. Edited July 31, 2022 by chef Link to comment Share on other sites More sharing options...
speechles 1917 Posted July 31, 2022 Share Posted July 31, 2022 (edited) 16 hours ago, Raelone said: I am sure you get tied of hearing things like this, but Plex's Watch together feature has no such limitation in Roku. Watch together works just fine with people on different LAN (I have watched together from GA with someone in the UK before and out in CA all the time). Like mentioned already, because your server users are not yours. All users belong to "them". Then users decide how they proceed through "them" and if you are even allowed to cater to to those users. Users choose to attach to your server through "them". There is a central agency tracking you. Whereas on Emby all users must be created on a server. There is no central location tracking everyone coming and going through your server. Your Emby server users are catered to by you and no one else. There is no central agency tracking you. Also, Roku made it clear that there was to be no intercepts used except their ECP mechanism and it seems they have gone around that. "They" aren't following rules and eventually that will cost "them". They also might be allowed to break the rules because they just get to. Who knows. It is a world of you rub my back and I rub yours a bit. Share the data they get from tracking users on Rokus with Roku possibly. Well not possibly.. haw. That is what "they" do. That might be how they get around certain rules. I am just conjecture. Speculation. But the reality is there are forces at play which allow certain freedoms to exist only for certain programs, people, and geographic locations. We must find a happy place and learn to deal with it depending on the program, person, or geographic location. Find your happy place. Edited July 31, 2022 by speechles 2 2 Link to comment Share on other sites More sharing options...
Mookdog 90 Posted July 31, 2022 Share Posted July 31, 2022 Makes me happy that you guys are brainstorming this idea. Cant believe emby doesnt have it already but that piece of crap known as Jellyfin does. Hopefully we see a beta of it soon. That is one feature I would love to test. Mook 1 Link to comment Share on other sites More sharing options...
ertagon2 44 Posted August 1, 2022 Share Posted August 1, 2022 4 hours ago, Mookdog said: Makes me happy that you guys are brainstorming this idea. Cant believe emby doesnt have it already but that piece of crap known as Jellyfin does. Hopefully we see a beta of it soon. That is one feature I would love to test. Mook Well it JF is a piece of crap I am scared to think what that makes Emby. Maybe I am just a sucker for Open-Source software. Link to comment Share on other sites More sharing options...
BillOatman 500 Posted August 1, 2022 Share Posted August 1, 2022 1 minute ago, ertagon2 said: Well it JF is a piece of crap I am scared to think what that makes Emby. Maybe I am just a sucker for Open-Source software. I favor open source as well. Doesn't mean either is crap, just different. 2 1 Link to comment Share on other sites More sharing options...
dannymichel 102 Posted August 1, 2022 Share Posted August 1, 2022 1 hour ago, BillOatman said: I favor open source as well. Doesn't mean either is crap, just different. Jellyfin is just very buggy. The only ‘client’ that works for Jellyfin is the web browser. Literally every Jellyfin client is broken. Infuse works but it’s not by them. To be honest as it stands Emby is only better than Jellyfin because it has a mobile and firestick clients that work and aren’t buggy. Emby severely lacks in features paid or otherwise but at least it’s solid in that it works Link to comment Share on other sites More sharing options...
Mookdog 90 Posted August 1, 2022 Share Posted August 1, 2022 1 hour ago, dannymichel said: Jellyfin is just very buggy. The only ‘client’ that works for Jellyfin is the web browser. Literally every Jellyfin client is broken. Infuse works but it’s not by them. To be honest as it stands Emby is only better than Jellyfin because it has a mobile and firestick clients that work and aren’t buggy. Emby severely lacks in features paid or otherwise but at least it’s solid in that it works Yeah I think I was too harsh saying piece of crap. Emby is far superior though. With all the plugins and the work the developers put in I will continue to use Emby (Heck I bought the lifetime like 2 years ago). Mook Link to comment Share on other sites More sharing options...
dannymichel 102 Posted August 1, 2022 Share Posted August 1, 2022 35 minutes ago, Mookdog said: Yeah I think I was too harsh saying piece of crap. Emby is far superior though. With all the plugins and the work the developers put in I will continue to use Emby (Heck I bought the lifetime like 2 years ago). Mook I want to use Emby badly but without random library sorting and the bad subtitles that you can’t change I just can’t Link to comment Share on other sites More sharing options...
evil_crab 22 Posted August 1, 2022 Share Posted August 1, 2022 On 7/30/2022 at 4:35 PM, chef said: Sounds like the plugin needs to do some setup when it is installed. 1. Create the Watch Party library on the server if it doesn't exist. 2. A method that creates .strm files 3. Message sender to active sessions "{user.Name} has joined the party." 4. Figure out how to update the library when strm files are added. Maybe start there. That's quite a bit. Will it be possible to use Collections instead of the library for that? Collections are much easier to manage. 1 Link to comment Share on other sites More sharing options...
Cheesegeezer 3086 Posted August 1, 2022 Share Posted August 1, 2022 Wow!! 2 days of being away at shows and look how far you have come!! Nice work fellas as always!! i will get on with making a watch together intro did the other thread get started. 1 Link to comment Share on other sites More sharing options...
chef 3745 Posted August 1, 2022 Author Share Posted August 1, 2022 (edited) 28 minutes ago, Cheesegeezer said: Wow!! 2 days of being away at shows and look how far you have come!! Nice work fellas as always!! i will get on with making a watch together intro did the other thread get started. Ah, there he is. No the other thread hasn't started yet. I can make a GitHub repo with stuff I started so you can see it. Was about to write the StrmFileWriter this morning. And also, some kind of DirectoryManager. Edited August 1, 2022 by chef Link to comment Share on other sites More sharing options...
Cheesegeezer 3086 Posted August 1, 2022 Share Posted August 1, 2022 1 minute ago, chef said: Ah, there he is. No the other thread hasn't started yet. I can make a GitHub repo with stuff I started so you can see it. Was about to write the StrmFileWriter this morning. And also, some kind of DirectoryManager. Morning chief, sounds good, I’m out again today. Princess Anne is coming to the Show today so i will be out all day and a bit squiffy (drunk) by the end lol ill be back on the laptop tomorrow for sure. did you get the collaborator invite for the End Credit repo? If not I’ll add you to that again. so glad you’re back and got your mojo going again 1 Link to comment Share on other sites More sharing options...
chef 3745 Posted August 1, 2022 Author Share Posted August 1, 2022 2 hours ago, evil_crab said: Will it be possible to use Collections instead of the library for that? Collections are much easier to manage. That is a good question. We'll have to see how the ILibraryManager creates these different types of virtual folders. We should test out creating all the types, and see what happens. To be honest I have never created libraries through the API before... I can see how it is done, but until we try them all, I can't say I know for sure what the outcome is. I'm not sure the differences between a collection virtual folder setup, and a movie virtual folder. But, we'll try it. Probabaly something we should get to know while using the LibraryManager. Link to comment Share on other sites More sharing options...
Cheesegeezer 3086 Posted August 1, 2022 Share Posted August 1, 2022 15 minutes ago, chef said: That is a good question. We'll have to see how the ILibraryManager creates these different types of virtual folders. We should test out creating all the types, and see what happens. To be honest I have never created libraries through the API before... I can see how it is done, but until we try them all, I can't say I know for sure what the outcome is. I'm not sure the differences between a collection virtual folder setup, and a movie virtual folder. But, we'll try it. Probabaly something we should get to know while using the LibraryManager. Rich does this a lot for test libraries so we will be fine for testing POC. 1 Link to comment Share on other sites More sharing options...
chef 3745 Posted August 1, 2022 Author Share Posted August 1, 2022 I can create Library virtual folders, and strm files that handle library items now! Cool! All it took was this: using System.IO; using System.Linq; using MediaBrowser.Controller.Library; namespace Emby.WatchParty { public class StrmFileWriter { private ILibraryManager LibraryManager { get; set; } private ILibraryMonitor LibraryMonitor { get; set; } public StrmFileWriter(ILibraryManager libraryManager, ILibraryMonitor libraryMonitor) { LibraryManager = libraryManager; LibraryMonitor = libraryMonitor; } public string GetStrmFilePath(string name) //name: "Watch Party" { var virtualFolders = LibraryManager.GetVirtualFolders(false).FirstOrDefault(f => f.Name == name); //Best check it exists var virtualFolderPath = virtualFolders?.Locations?.FirstOrDefault(); if (virtualFolderPath == null) return null; //This should not happen. But, since it could... check for null return Path.Combine(virtualFolderPath, string.Concat(name, ".strm")); } public void UpdateStrmFile(long internalId, string strmFilePath) { var item = LibraryManager.GetItemById(internalId); LibraryMonitor.ReportFileSystemChangeBeginning(strmFilePath); //Tell Emby we are changing this location using (var sw = new StreamWriter(strmFilePath, append: false)) //DO not append. Overwrite with the new value. { sw.Write(item.Path); sw.Flush(); } //Tell Emby, we have finished changing this location, and it should be refresh. //This should update the virtual folder LibraryMonitor.ReportFileSystemChangeComplete(strmFilePath, refreshPath: true); } } } We've gotta start that new thread. Link to comment Share on other sites More sharing options...
ebr 14911 Posted August 1, 2022 Share Posted August 1, 2022 1 hour ago, chef said: We've gotta start that new thread. Yes, please, but I would suggest using our Channel interface for this instead of trying to directly manipulate libraries. Channels show up just like a library. 1 Link to comment Share on other sites More sharing options...
rbjtech 4259 Posted August 1, 2022 Share Posted August 1, 2022 Hi All, We'll get all of the Dev talk from the FR thread moved here - and this thread can be used for general updates, proof of concepts etc. I suggest we do all the early testing via teams as that is a much more fluid and productive environment for quick testing etc. Thanks. 1 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now