Youtube からのライブ ストリームが必要なようです。詳細については、こちらをご覧ください。https://support.google.com/youtube/bin/answer.py?hl=ja&answer=2474026
それができれば、任意の数のユーザー間で再生を同期することは、ストリームの通常の YouTube 埋め込みをブラウザーに埋め込むのと同じくらい簡単です。
それを過ぎて、任意の数のユーザー間でビデオ再生を同期したい場合、最初の大きな問題は、ビデオに時間を設定する方法を学ぶことです. 幸いなことに、ハッシュバング #t=seconds を使えば簡単です。
例: http://www.youtube.com/watch?v=m38RdUGqBPM&feature=g-high-rec#t=619sは、この HuskyStarcraft ビデオをビデオの 619 秒から開始します。
次のステップは、現在の時刻を追跡するバックエンド サーバーを用意することです。Node.js と Socket.io のセットアップは非常に簡単です。Socket.io は、長いポーリングなどを通じて Web ソケットからの同時実行接続を適切に処理し、非常に古いブラウザーでもうまく動作する素晴らしいライブラリです。Websocket は必須ではありませんが、最も最新で完全に証明された方法であることに注意してください。そうでなければ、そのハックなど。
これが機能する1つの方法は次のとおりです。
User1 がサイトにアクセスし、最初にビデオの再生を開始します。あなたのページのスクリプトがサーバーに XHR リクエストを送信します。これは、「X 時間にビデオが開始されました」というメッセージです。X は開始時刻として保存されます。
この時点で、2 つのルートに進むことができます。Youtube API を使用してクライアント側スクリプトを作成し、動画をポーリングして毎秒現在のステータスを取得できます。ステータスまたは時刻が変更された場合は、サーバーに別のリクエストを送信して状態を更新します。
もう 1 つの簡単な方法は、User2+ のページをロードしてから、ビデオの再生時間を尋ねる XHR リクエストを送信することです。サーバーは User1 からの開始時間の差を返信し、クライアント スクリプトは User2+ の YouTube プレーヤーに 't' ハッシュバンを設定します。これにより、開始時間を同期できますが、ユーザーがビデオを一時停止または巻き戻しした場合、それらの状態は更新されません。ただし、その後のページの更新でそれが行われる場合があります。
アプリケーション全体の複雑さは、必要な要件によって異なります。開始時刻がちょうど同期されている場合、ルート #2 は十分に機能するはずです。ソケットを必要とせず、jQuery または単純な JavaScript で簡単に実行できます。
すべてのユーザーがビデオを開始/停止/一時停止/早送り/巻き戻しできる、本当に同期されたエクスペリエンスが必要な場合は、確立されたライブラリ ソリューションを使用するか、独自に作成することを検討しています。
申し訳ありませんが、この回答は一種のオープンエンドですが、あなたの質問もそうでした. =)