WebScaly: local video enhancement in Chrome
WebScaly is a free, open-source Chrome extension that applies sharpening, light denoise and upscaling to accessible web video. Processing happens on the user's device, on websites the user explicitly approves. I maintain the project. This article explains the design decisions behind its rendering, website permissions and player integration, including the limits of the current release. Install…
WebScaly is a free, open-source Chrome extension that enhances web videos by sharpening, denoising, and upscaling videos on the user's device. This article details the extension's design, permissions, and player integration. Users can choose from three enhancement options: Spatial Detail, Anime4K, and FSRCNNX, each providing different levels of sharpening and upscaling. The extension processes decoded frames at their native frame rate and does not generate intermediate frames or increase the source frame rate.
The extension follows decoded frames using requestVideoFrameCallback, takes stable frame snapshots, and limits queued GPU work. It supports WebGPU where available and falls back to WebGL or Spatial Detail if necessary. Video discovery considers decoded, visible, and accessible embedded frames. At most, two visible players per frame are processed.
The extension's manifest uses storage, scripting, and activeTab permissions, with no websites approved by default. It handles storage, scripting activation, and activeTab context during use. Approval requires explicit consent for both the player origin and its containing website. Revocation stops code already running, and removing script registrations does not remove previously injected code.
The extension separates interactive controls from the player's DOM event tree, ensuring native player controls remain usable. It checks compatibility with native video formats and popular video players, such as JW-style containers, Video.js, Plyr, HLS, and DASH. WebScaly has no tracking, analytics, or user accounts, and all frames, website addresses, and diagnostics are handled locally. Users can provide useful feedback regarding the affected player, source resolution, selected algorithm, and any issues encountered.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.