Watch Party Feature- Sync Like Prime/Disney Watch Party

These days, me and my friends watch movies remotely (not only due to covid but since we’re scattered in different places), so I generally do an Infuse Stream using discord while everyone else is on the call. Few issues with this,

  1. If the movie is on cloud drive, have to simultaneously download/upload movie stream.
  2. Infuse+Discord is unreliable when it comes to streaming, as sometimes there are audio/subtitles lags or frames dropping, despite the network being good enough.
  3. My friends also own the movie, but they’re forced to watch 720p 30fps, on Discord without Nitro or server boosts.

They all have infuse either on their iPhones, Macs or iPads and own the movie. It would be great, if there was a stay in sync feature with one user controlling pause and play for everyone. Don’t need chat, or audio calls, just syncing and being able to watch together would be great.

I understand there could be few challenges in this, like what if movie files are different (length for example due to regional differences, or start point is different again due to regional certificate requirements etc.) Some potential solutions for those on top of my head,

  1. It is onus of the user to make sure the movies and the files are same.
  2. While the sync feature is controlled by one user/master, the start points should be able to be modified at the beginning if there are any time differences.

I’d also assume this would probably be featured as a pro feature. It would be great if just the main controller/master is asked to be a pro user and not everyone, else that might make it difficult. Let me know what everyone thinks regarding this, and anything I might’ve not thought about.

24 Likes

Edit: Looks like Apple now provides an API, “SharePlay” for the same. Hopefully the API makes it relatively easy for you guys to implement the watch party feature, fingers crossed.

5 Likes

It’ll probably be like the tv app and restricted to content that can be streamed from a central location (content provider CDN).

Created feature request to consolidate this here -

This thread is already active so let’s keep it here.

1 Like

Given this will be an API apply exposes to developers soon, creating a topic for Infuse Devs and community members to vote on if they feel this is a good addition.

SharePlay: Watch together

Bring movies and TV shows into your FaceTime calls and enjoy a rich, real-time connection with your friends while watching the same content.

HBO max, Disney+, Hulu, Twitch, Tiktok were all on the graphic displayed as supporting it.

Seems like more info is shared for developers on Day 3

1 Like

How would this feature supposedly work in Infuse? Would it be necessary for every user to have the exact same video file in their infuse library?

Not only would they need to have the same video but it would need to probably be the exact same ripped version (file size etc). I’m going to guess there might also be restrictions on what audio/video codecs can be used.

I have little understanding of the technical details so I appreciate your guess! It’s stricter than I imagined but the possibility of SharePlay in Infuse is still very exciting to me.

i dont think codecs are a problem here. facetime would carry things like time location, play, pause, rewind etc. everything else would be done by device and the video player

What I meant by restrictions on codecs is if watch party is exclusive to apples built in video player. Additionally how to you handle different video encodes of the same movie? Someone may have a h264 version and the other an h265. Without a centralized server pushing the content I can see a lot of issues cropping up.

its not exclusive. you only carry metadata via facetime api. the video plays locally based on that sync times etc

What if both Infuse players are linked to the same Plex library? Which is often the case for me and my family. I’ve given them access to my Plex account to which they connect as their own. That solves the issue of having the same file, metadata etc.

i think this could work in theory. infuse devs are super smart so unless they say it is not possible, there is hope cool features could come out of it

Actually if you use the plex client you can already do this with plex server. Plex added watch party a while back. If they add shareplay then infuse might just be able to piggy back off their integration.

2 Likes

Plex and jellyfin have both supported watch together. Although jellyfin’s implementation’s kinda broken. I wonder if it’s possible to interact with their APIs (I don’t know how stream works behind the scenes) or sync the timelines of multiple users who are connected to the same library. This is the only feature that’s missing. I have to use plex for watch together, and their player is currently unusable with hdr/dolby vision movies on the new ATV due to the banding issue and the profile issue.

2 Likes

An update to syncing infuse with other clients:
It’s possible to use plexapi, plexwebsocket and pyatv libraries to fetch all the required information. Plex clients can be controlled using their API and I can launch new media for a client. The issue is mainly with infuse. I cannot find a way to control it besides tvOS’s protocols, which is really limited.
So I figured maybe we can manually choose movies and ask the script to detect both sessions and keep them in sync. The only issue is that “set position” seems to be missing in infuse (see: this post). I’ve successfully synced apple tv app and another plex client in this way but it doesn’t fit my use case…

why use plex api when infuse is a standalone app and apple created a new api for this

The plex doesn’t have to be there. It can sync any clients given sufficient APIs.
Reasons:

  1. Infuse doesn’t have an open api afaik.
  2. Plex does have an api.
  3. Infuse hasn’t supported shareplay yet and I can’t do anything about it.
  4. I want to use the feature right now with hdr/dolby vision media and spatial audio.
  5. It’s easier to write a small script compared to reinventing a wheel.