Skip to main content
Hosts have special privileges in Watch N Chill rooms, including video playback control, the ability to promote guests, and room management. Understanding host controls is essential for managing successful watch parties.

Host Privileges

Hosts have full control over the watch party experience:

Playback Control

Play, pause, and seek the video. All guests automatically sync to your actions.

Video Selection

Change the video URL at any time. Supports YouTube videos only.

Guest Promotion

Promote any guest to host status, granting them full privileges.

Chat Access

Send and receive messages in the real-time chat (same as guests).

Becoming a Host

There are two ways to become a host:

Create a Room

When you create a room, you automatically become the host:
1

Create Room

Click “Create Room” on the homepage and enter your name.
2

Receive Token

You’re assigned a secret host token stored in your browser’s session storage.
3

Host Status

You join the room as the primary host with all privileges.
4

Crown Badge

A crown icon appears next to your name in the user list.
As the room creator, you have the host token which allows you to rejoin as host if you disconnect. Other promoted hosts won’t have this token.

Get Promoted

Existing hosts can promote you from guest to host:
1

Join as Guest

Enter a room using the room ID or link.
2

Request Promotion

Ask a host in the chat to promote you (no formal request system exists).
3

Host Promotes

A host clicks the crown button next to your name in the user list.
4

Gain Privileges

You immediately receive all host privileges and see host controls.
Promoted hosts have the same privileges as the original creator, except they don’t have the host token for re-authentication.

Video Playback Control

As a host, you control video playback for everyone:

Play/Pause

Click the play or pause button on the video player:
  1. Your Action: Click play or pause on the YouTube player
  2. State Detection: The system detects the YouTube player state change
  3. Timestamp Capture: Your current video timestamp is recorded
  4. Broadcast: A play-video or pause-video event is sent to all guests
  5. Guest Sync: All guests’ videos automatically play or pause at your timestamp
The YouTube player emits onStateChange events:
  • PLAYING (1): Triggers play-video socket event
  • PAUSED (2): Triggers pause-video socket event
  • BUFFERING (3): Checks for seek operations during buffering
Each event includes the current timestamp to ensure guests sync exactly.

Seek to Position

Drag the video progress bar or click a timestamp:
  1. Seek Action: You move the playback position
  2. Time Difference: System calculates the difference (> 1 second = seek)
  3. Seek Event: Emits seek-video with the new timestamp
  4. Guest Jump: All guests’ videos jump to the same position
Rapid seeking (scrubbing back and forth) can cause temporary desync as the system processes multiple seek events. Let the video stabilize between seeks.

Changing Videos

To change the video being watched:
1

Enter Video URL

In the video setup interface, paste a YouTube video URL.
2

Validation

The system validates that the URL is a YouTube video:
  • Must include youtube.com or youtu.be
  • Must be a valid video URL format
3

Set Video

Click the button to set the video. A set-video event is broadcast.
4

All Players Update

Every participant’s player loads the new video and resets to timestamp 0.
Only YouTube videos are supported. Attempting to use other video platforms (Vimeo, Twitch, etc.) will result in an error.

Promoting Guests

Hosts can promote any guest to host status:

Promotion Process

1

Open User List

In the room sidebar, locate the “Participants” section.
2

Find Guest

Scroll through the user list to find the guest you want to promote.
The list is sorted with hosts first, then guests alphabetically.
3

Click Crown Button

Click the crown icon button next to the guest’s name.
4

Instant Promotion

The guest is immediately promoted:
  • Their isHost status updates to true
  • A crown appears next to their name
  • They gain access to all host controls
  • All participants are notified

Multi-Host Support

Watch N Chill supports unlimited hosts in a single room:

Shared Control

All hosts can control playback simultaneously. Last action takes precedence.

Independent Sync

Each host sends periodic sync checks every 5 seconds to keep guests aligned.

Equal Promotion

Any host can promote any guest, not just the original creator.

No Demotion

Once promoted, hosts cannot be demoted back to guest status.
Multiple hosts are useful for:
  • Co-hosting watch parties
  • Redundancy if one host disconnects
  • Collaborative control in group viewings

Who to Promote

Consider promoting guests who:
  • Are trusted friends
  • Need to control playback (e.g., video owner)
  • Will stay for the entire session
  • Can help manage the room if you disconnect
Once promoted, guests cannot be demoted. Only promote people you trust with full room control.

Room Closure

Hosts play a critical role in room persistence:

When All Hosts Leave

If every host leaves or disconnects, the room closes immediately:
1

Last Host Leaves

The final host exits the room (closes tab, loses connection, or clicks leave).
2

Closure Detection

The server detects zero remaining hosts in the user list.
3

Notify Guests

All guests receive a “room-error” event:
"All hosts have left the room. Redirecting to home page..."
4

Room Deletion

The room is immediately deleted from Redis:
  • All user data removed
  • Chat history deleted
  • Video state cleared
  • Room ID becomes available
5

Guest Redirect

After 1.5 seconds, guests are automatically redirected to the homepage.
No Host MigrationUnlike some platforms, Watch N Chill does not automatically promote a guest to host when all hosts leave. The room simply closes.To keep a room alive, promote at least one guest to host before leaving.

Host Best Practices

Promote Early

Promote trusted participants early in case you disconnect unexpectedly.

Announce Actions

Use chat to warn before seeking or changing videos.

Check Sync

Periodically ask in chat if everyone’s video is in sync.

Be Patient

Wait for guests to load before starting playback.

Guest Perspective

Understanding how guests see your actions helps you host better:

What Guests Experience

When you control playback:
  1. Instant Sync: Guests’ videos react within 100-300ms
  2. Visual Feedback: Their player state changes automatically
  3. No Control: Guests cannot manually override your actions
  4. Info Banner: New guests see a banner explaining host controls

When Guests Click Controls

If a guest tries to play/pause:
  • Nothing Happens: The YouTube player doesn’t respond
  • No Feedback: No error message (could be improved)
  • Can Request: They can ask for promotion in chat
Guests can click the video info dialog to learn about host controls and promotion.

Host Control Dialog

The host control dialog explains privileges to guests:
1

Trigger

Shown automatically when guests join a room with a video, or clicked manually.
2

Content

Explains:
  • Guest capabilities (watch & chat)
  • Host capabilities (control, change video, promote)
  • How to request promotion
3

Dismiss

Auto-dismisses after 5 seconds or when clicked.

Troubleshooting

Controls Not Working

Play/pause buttons don’t work:
  1. Verify Host Status: Check for a crown icon next to your name
  2. Check Connection: Ensure your WebSocket connection is active
  3. Reload Page: Refresh to re-establish connection
You’re a host if:
  • You see a crown next to your name in the user list
  • Your name appears first (hosts are sorted before guests)
  • You can see the promote button next to guest names

Lost Host Status

Rejoined as guest instead of host:
  • Your session storage was cleared
  • You’re on a different browser/device
  • Your browser restarted between sessions
If you lose host status and no other hosts exist, you cannot regain it. Someone will need to create a new room.

Cannot Promote Guest

Promote button doesn’t appear:
  • You’re not a host
  • Target user is already a host
  • User list hasn’t refreshed (try refreshing page)

Room Closed Unexpectedly

Room closed while you were still there:
  • All hosts (including you) left or disconnected
  • This can happen during network issues
  • Create a new room and invite participants again

Security Considerations

The host token:
  • Is a UUID v4 (highly random)
  • Stored in session storage (cleared on tab close)
  • Required to rejoin as the original host
  • Not transmitted in URLs (safe from sharing)
  • Validated server-side on join
The server validates:
  • Requester is actually a host (server-side check)
  • Target user exists in the room
  • Target user is not already a host
  • Room exists and is valid
This prevents promotion spoofing or privilege escalation.
Every playback action checks:
  • User has isHost: true in room data
  • User is authenticated (has userId)
  • Room exists
Guests cannot forge host actions via socket events.
Share Room IDs CarefullyAnyone with the room ID can join as a guest. Only share with people you want in your watch party. There’s no password protection or access control.

Build docs developers (and LLMs) love