Streamsyncはブラウザ間でストリーミング動画の再生タイミングを同期するためのGoogle Chrome拡張機能です。
Streamsync is a google chrome extension that enables to sync playback position between Host and Client (different browsers).
- Youtube
- Amazon Prime Video
- Netflix
Chromeウェブストアから拡張機能をインストール
もしくは、ソースをダウンロードしChromeのデベロッパーモードで拡張機能をインストールしてください。
参考手順:https://support.google.com/chrome/a/answer/2714278?hl=ja
- 同期したい動画をタブで開いた状態で、ポップアップメニューから「ルームを開く」をクリックする
- 正常にRoomが開かれるとポップアップ上にRoom IDが表示されるので、一緒に動画を見たい人にRoom IDを共有する
- 同期を終了するときは、「ルームを終了」をクリックする
- ポップアップメニューのフォームにHostから共有されたRoom IDを入力し、「ルームに参加」をクリック
- Roomへの参加が完了すると、自動的に新しいタブが開かれ対象の動画ページに移動する
- Hostの再生地点と同期されるように、再生、停止、シークなどの操作が自動で行われる
- 同期を終了するときは、「ルームを退出」をクリックする
意図してホストと再生タイミングをずらしたい場合は、クライアント側のポップアップメニューでオフセット(秒)を調整することができます。
プラスのオフセットはクライアント側のタイミングを遅らせ、マイナスのオフセットは逆に早めます。
ex. ホストとの通話ラグが1秒ある場合、オフセットを+1に設定する。
Host(chrome) -> (data) -> Websocket Server -> (data) -> Client(chrome)
Hostのブラウザは視聴する動画ごとにRoomを作ることができ、ClientのブラウザはRoomに参加することができます。
Hostは視聴中の動画の再生地点を定期的にRoomに配信します。Roomに参加しているClientは、配信された再生地点をもとに視聴中の動画をリアルタイムにシークします。
これによりHostとClientの再生タイミングが同期されます。
Host-Client間はサーバーを経由してWebsocketsで通信します。
Host can open a room and Clients can join it. Host sends playback position data of video or streaming playing in browser to the room. Clients in the same room receive the data and automatically sync the playback position of video or streaming.
Host and Client have each Websocket connection with server as long as they are in the room.
atori74/streamsync-server
Websocket server for streamsync, that communicates with Hosts and Clients