Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Synchronized video playback among other users #357

Closed
fredsif opened this issue Mar 16, 2018 · 9 comments
Closed

Synchronized video playback among other users #357

fredsif opened this issue Mar 16, 2018 · 9 comments

Comments

@fredsif
Copy link

fredsif commented Mar 16, 2018

Hi,

I was wondering if it could be possible to add a feature into Peertube so that users can watch a determinate curated playlist in synchronization with others, making it something like "live stream"-esque

@rigelk
Copy link
Collaborator

rigelk commented Mar 16, 2018

You don't need a playlist to synchronise video playback with other users.

If you really need to do it accross a playlist, then we should wait for #14 to be implemented.

@fredsif
Copy link
Author

fredsif commented Mar 16, 2018

Alright, will wait until the playlist option is working

@Chocobozzz
Copy link
Owner

@fredsif could you explain your use case? I don't really understand why you want to sync a playlist between users.

@fredsif
Copy link
Author

fredsif commented Mar 16, 2018

It's more or less like a TV channel. Simultaneous viewers can watch the same content.

My goal is to have something like Youtube live/Youtube gaming/Twitch, with a chatbox on the side to make it social so people can discuss the videos while they are being played.

But since Webtorrent live streaming isn't ready, that could be a nice compromise for the moment.

@Chocobozzz
Copy link
Owner

Okay, so I think you want live streaming: #151

@kevATin
Copy link

kevATin commented Aug 3, 2019

@Chocobozzz I believe this feature request differs from live streaming or playlists, in that what @fredsif appears to want is synchronised watching with other people.
I think the easiest way to do this would be to let users share a video with an URL that contains an optional key specific to this share, and every viewer who watches with the key has their video timestamp synchronised with the "master" user.
Maybe you could specify during URL sharing whether you want your user to act as a master and others as slaves, or whether everyone should be equal and if anyone in the group pauses/changes timestamp, it changes for everyone.

Currently the only way to do something like this (apart from sharing a video link with your friends and tediously counting down in a chat window to when you click start and hoping you are somewhat in sync) is to set up a live stream (or video chat on another platform) with the existing video that you want to watch together. Which uses a much bigger amount of resources in total than simply having multiple users watch one existing video together and simply sending their current timestamp and play/pause actions back and forth. Plus users might not have the license rights to upload/distribute the video themselves, making synchronised watching the only way to legally view the content over a distance with someone else.

From what I know this currently isn't possible to do in PeerTube nor in most other video platforms. There are some browser extensions and websites that offer this feature but they rely on centralized third party servers to connect users:
https://togethr.tv/
https://togethertube.com/
https://www.watch2gether.com/

It might make sense to use a live-streaming-esque interface for this, with chat, and possibly advanced features such as voting as to which video should come next in the synchronised playlist or which timestamp to jump to, or whether the group should have a five minute pause, etc. This feature could be implemented as simple as a URL with a key and a video player whos timestamp moves by itself, or as complex as a full live stream room where the only difference is that instead of the backend part being live streamed all the content already exists on the server beforehand, and can therefor be cached by users.

@Nutomic
Copy link
Contributor

Nutomic commented Aug 3, 2019

This would also be a great way to take advantage of the p2p sharing of videos. Right now that feature is almost unused because there arent enough users watching the same video.

@Chocobozzz Chocobozzz reopened this Aug 5, 2019
@Chocobozzz Chocobozzz changed the title Feature request: Synchronized video playback among other users via a playlist Synchronized video playback among other users via a playlist Aug 5, 2019
@Chocobozzz Chocobozzz changed the title Synchronized video playback among other users via a playlist Synchronized video playback among other users Aug 5, 2019
@rigelk
Copy link
Collaborator

rigelk commented Dec 19, 2019

I stumbled upon https://github.com/brandonocasey/videojs-group-play, which does just this, at the videojs level.

Adds a button that must be clicked to start group play. Clicking add a hash to the url and then that link can be shared. There is already a hash in the url that will be used and everything be automatically setup.

While fairly recent and up-to-date with videojs, it seems like a POC, and marks as TODO the following:

  • disable player controls until all players are ready
  • stream from one host to all others so that everyone is at the same point in time

@Chocobozzz
Copy link
Owner

Closing this issue (see my comment on #2806 (comment)). This feature can be implemented using PeerTube plugins.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants