Full-theater player on w2g + edge hover panels + script settings (auto-join, auto-refresh, native controls, auto-unmute, auto-start, Twitch helpers)
This userscript turns Watch2Gether into a proper full-theater experience and adds quality-of-life helpers for both YouTube and Twitch players embedded in W2G rooms.
It focuses on:
The script runs on:
It is designed for use with Watch2Gether rooms, but some Twitch and YouTube helpers will work on those embeds in general.
On w2g.tv, the script:
Result: you get a near full-screen viewing experience while still having access to W2G panels when you move your mouse to the screen edges.
To keep things clean but accessible:
Left panel + userlist
Top apps panel
Right panel
All of these are done with CSS transforms and transitions, so they feel smooth and are easy to reveal only when you need them.
The script adds a small “Script” icon in the left sidebar on w2g.tv.
Clicking it opens a simple settings panel. You can also open it with:
Alt + S (no Ctrl, Shift, or Meta required)From this panel you can toggle:
All settings are stored via GM_setValue (with a localStorage fallback), so your choices persist across sessions and page reloads.
On w2g.tv, the script can automatically:
This behavior is controlled by the “Auto click ‘Join the Room’” setting.
On w2g.tv, the script can watch for the standard disconnect error modal:
Error - you have been disconnected
If enabled, it will automatically reload the page when that modal appears.
On w2g.tv, W2G has an internal “native controls” option for the player.
The script:
history.pushState and history.replaceState) to re-arm native-control enabling as you change videos/routes.<video> element to show up and attempts to play it.This gives you more direct browser-native controls over the underlying video while staying in the W2G environment.
On player.w2g.tv, the script can:
.player_button.unmute button.It tries for a limited number of attempts with a short delay between checks, then stops to avoid running forever. Controlled by the “Automatically Unmute video” setting.
On player.w2g.tv and youtube.com/embed iframes, the script:
youtube.com/embed or youtube-nocookie.com/embed).postMessage command to call playVideo on the YouTube player API.This helps get YouTube videos playing with fewer clicks. Controlled by the “Auto start playback (YouTube player in W2G)” setting.
On player.twitch.tv, the script:
button[data-a-target="player-overlay-play-button"]).It stops after a reasonable number of attempts, so it will not poll endlessly. Controlled by the “Auto start Twitch (overlay play button)” setting.
Also on player.twitch.tv, the script has two layers of auto-unmute:
click-to-unmute__container overlay.Looks for the standard mute/unmute button when the stream is muted:
button[data-a-target="player-mute-unmute-button"][aria-label^="Unmute"]If visible, clicks it to unmute.
It makes limited attempts and then stops. Controlled by the “Auto unmute Twitch” setting.
https://w2g.tv/.Hover edges to reveal panels and userlist.
Click the “Script” icon in the left sidebar, or
Press Alt + S.
Turn on or off auto-join, auto-refresh, native controls, auto-unmute, auto-start, Twitch helpers, etc.