Video Playback

Video playback sometimes requires that JavaScript be enabled, depending on how the website is coded. Beyond that it can also be affected by the user agent.

In Privacy Browser, the default user agent is PrivacyBrowser/1.0.  This is important for privacy purposes as the default user agent, something like Mozilla/5.0 (Linux; Android 8.1.0; Nexus 6P Build/OPM3.171019.013; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/65.0.3325.109 Mobile Safari/537.36, discloses a lot of information about your device.

Many websites send different video JavaScript controls to different devices based on their user agent. For example, when YouTube detects a mobile browser it loads a stripped-down mobile version of the HTML 5 playback engine. This plays well on phones, but is limited in controls and other features.

youtube-mobile-playback

When YouTube detects a desktop browser or when it doesn’t recognize the user agent, the full HTML 5 playback controls are exposed. This includes resolution controls, thumbnail scrubbing images, and those annoying annotations/ads that keep covering up what you’re trying to watch.

youtube-desktop-playback

All of that extra stuff requires CPU cycles. Plus, in desktop mode the video quality will try to float up to 1080p or even higher. Combined, that leads to video lag, even on fairly high-end devices like the Nexus 6P. Over time I assume that WebView’s HTML 5 video implementation will become more efficient. Until then, the solution is to either use domain settings to switch the user agent to WebView’s default when viewing videos or to lower the video resolution. In my experience, 480p tends to play well.

youtube-desktop-controls