Better Theater Mode for YouTube

Improves YouTube's theater mode with a Twitch.tv-like design, enhancing video and chat layouts while maintaining performance and compatibility. Also adds an optional, customized floating chat for fullscreen mode, seamlessly integrated with YouTube's design.

These are versions of this script where the code was updated. Show all versions.

  • v1.12.1 2025-04-23

    Fixed chat border fix style were not being properly applied.
    Fixed an issue that caused chat to be positioned incorrectly when switching into fullscreen mode.
    Fixed theather mode chat width to be occasionally calculated incorrectly when resizing browser window.

  • v1.12 2025-04-19

    Adds the ability for the chat width to be adjusted in theater mode. The current max is set to be 1/3 screen width; The minimum is set to 300px, reflecting YouTube's chat minimum. The limit could be changed in the future but I do not see the need for that.

    There is currently a low impact bug with how floating chat is positioned when switching in and out fullscreen mode. This will be fixed in a future patch.

  • v1.11.6 2025-04-16

    Minor update to descriptions. No code change.

  • v1.11.6 2025-04-14

    Fix chat bounding when switching between difference resolution screens.

  • v1.11.5 2025-04-14
  • v1.11.5 2025-04-14

    ACTUALLY fix chat bounding.

  • v1.11.4 2025-04-14

    Removed the custom script on/off toggle.
    Fixed an issue that allowed chat area of expand outside of the video player when clicking the show chat button.
    Fixed an issue that caused the chat area bound box to be calculated incorrectly when the chat is collapsed.

  • v1.11.3 2025-04-13

    Updated chat area constain logic. Should be slightly smoother and more performant.
    Fixed chat style not being loaded correctly.
    Fixed customized player height setting being wiped on script load.
    Cleaned up code and some minor bug fixes.

  • v1.11.2 2025-04-13

    fix floating chat not responding correctly when loading between different kinds of videos

  • v1.11.1 2025-04-13

    update description. no code change.

  • v1.11.1 2025-04-13

    fix diagonal resize not working for floating chat
    fix resize handle being positioned incorrectly under certain circumstances

  • v1.11 2025-04-13

    Added a floating chat during fullscreen mode.
    Major refactor of the entire script.

  • v1.10 2025-04-09

    Added the ability to set custom player heights.
    Fixed some bugs in the settings loading logic that previously made settings version-dependent. This likely caused little to no issues, as setting-related features had not changed for quite some time.

  • v1.9.4 2025-04-07

    Fixed a bug where simple mode would run regardless of the script's activation state.

  • v1.9.3 2025-04-07

    Minor update to error handling.
    Updated logging behaviour to better respect user debug setting. Logging changed to start AFTER settings have finished loading*.

  • v1.9 2025-04-07

    Added a debug mode. Console logging behaviour now respects the new debug setting.

  • v1.8.2 2025-04-06

    Fixed an issue that caused advanced mode settings to be loaded during initialization even if the script is set to simple mode.
    Fixed an issue that caused fullscreen playback to not be detected.

  • v1.8.1 2025-02-10

    Updated the outdated tampermonkey notification to only show once per updated insteasd of every load.
    Switch style management from GMAPI to custom Javascript as GM style management seems to be very inconsistent across different script handlers.

  • v1.8 2025-02-09

    Added localized menu items for certain major supported languages.
    Updated menu to be static for current and older Tampermonkey versions as it seems Tampermonkey only added dynamic menu items in verion 5.4.6224. Version 5.4.6224 is still in beta as of this update.

  • v1.7.2 2025-02-03

    Fix extra border in chat frame when chat is in replay mode.

  • v1.7.1 2025-01-31

    Fix settings not loading correctly if running in simple mode.

  • v1.7 2025-01-31

    Added a simple mode for those who are too busy to study the provided options and just want to use a recommended preset.

  • v1.6.2 2025-01-21

    Fixed a visual issue. The hidden "Skip Navigation" button could be sometimes be revealed when moving the masthead in cases where the vertical resolution of the screen is larger than 1000px due to how the YouTube is coded.

  • v1.6.1 2025-01-20

    Fix the headmast being able to be scrolled away when it shouldn't.

  • v1.6 2025-01-19

    Added the ability for users to move the YouTube headmast below the video player.
    Removed the temporary fullscreen fixes as youtube seems to have undid their mistake.
    Various minor bug fixes.

  • v1.5.9 2025-01-14

    Fix chat renderer styles being incorrectly applied to the chat iframe instead of the main document body.

  • v1.5.8 2025-01-14

    Minor refactor.

  • v1.5.7 2025-01-12

    Fix bug.

  • v1.5.6 2025-01-12

    [minor] Slightly refactor and improve code consistency.

  • v1.5.5 2025-01-12

    Make video player fixes always apply. YouTube seems to still have rounding issues when trying to hide their video player during the end screen during certain zoom levels (on certain browsers only?), the script now shifts the video container up by 1 pixel to hide the rounding error without being noticable during regular video playback.

  • v1.5.4 2025-01-11

    Changed the script to hide the chat in fullscreen mode until YouTube fixes their fullscreen issue. This mimics the old default behaviour of YouTube and is much easier than having to override YouTube's srubbing UI.

  • v1.5.3 2025-01-10
  • v1.5.3 2025-01-10
  • v1.5.3 2025-01-10

    [ACTUALLY] Fixed the script conflicting with the new YouTube UI and disabling the theater mode toggle button.
    Fixed the static style fixes being removed by the script.
    Fixed YouTube's new terrible fullscreen chat that would occasionally block the video element under certain zoom levels.
    Fixed some minor bugs and styling inconsistencies.

  • v1.5.2 2025-01-10

    Fixed a conflict between YouTube's new UI logic and how the script updates the video element.

  • v1.5.1 2025-01-09

    Fix script not correctly detecting if a video is a livestream/VOD or a normal video.

  • v1.5 2025-01-09

    Made the video player modifications and the chat modifications individually togglable.

  • v1.4.1 2025-01-08

    Minor bug fix.

  • v1.4 2025-01-08

    Added a menu to allow users to disable the script fully or partially without reloading. Fixed a bug that caused the video element to resize when the adjacent UI elements have moved.

  • v1.3.5 2025-01-07

    Moved video element up by 1 pixel to hide the occasional row of pixels caused by rounding issues during style calculations for end screens.

  • v1.3.4 2025-01-07

    Fixed an issue where going to the previous page would not trigger headmast width calculations if the previous page is the YouTube homepage.

  • v1.3.3 2025-01-06

    Fixed event listeners. It seems that the player-api-ready event does not fire if there is no chat box.

  • v1.3.2 2025-01-06

    Fixed a bug that caused the masthead width to not calculate when returning to the YouTube homepage.

  • v1.3.1 2025-01-04

    Fixed an issue that caused the chat renderer width to be calculated incorrectly if the element is read too early while and only while using the "Open panel" button to uncollapse the chat box.

  • v1.3 2025-01-02

    Script now makes the chat renderer extend fully to the top of the screen.
    Script now scales the width of the youtube masthead dynamically to avoid covering the larger chat renderer.
    Script now removes redundant borders from chat elements. YouTube stacks 2 extra borders on top of the pre-existing border created by the browser. This is particularly noticable when viewing in theater mode so that had to be fixed.

    Note: v1.1 and v1.2 were never released

  • v1.0 2025-01-01