Easy Video Sharpener by harze2k.dev
Real-time video sharpening using lightweight and GPU-friendly CSS SVG 'unsharp mask' filters for HTML5 video. Helps getting sharp videos on large screens and TVs. It's really helping my old eyes! 👀
27 Users27 Users
Extension Metadata
Screenshots
About this extension
Easy Video Sharpener adds Real-time video sharpening using lightweight & GPU-friendly CSS SVG 'unsharp mask' filters for HTML5 video. Helps getting sharp videos on large screens and TVs. It's really helping my old eyes! 👀
**New version! Fixed in v1.5.0
Features
How to Use
In-player UI (recommended):
Preset Levels (1–10):
Quick sharpening presets from subtle (1) to aggressive (10). The slider automatically calculates optimal Strength and Blur values.
Custom Mode:
Enable the Custom toggle to access manual controls:
Lock Buttons:
Click the padlock icon next to Strength or Blur to lock that value. Locked sliders won't change when you adjust the preset level slider. This lets you find your perfect Blur, then experiment with different Strength values (or vice versa).
Privacy
This extension does not collect or transmit any user data. All settings are stored locally in your browser.
Permissions
Technical Details
The sharpening uses an unsharp mask algorithm implemented as an SVG filter:
GPU-accelerated for smooth performance.
Support
If you find this addon useful, consider buying me a coffee ☕
**New version! Fixed in v1.5.0
- SVG gradient ID collision - Each overlay now gets a unique vs-icon-grad-{n} ID via overlayIdCounter, so multiple video overlays render their icons correctly
- Slider max mismatch - Overlay strength slider max changed 10 → 7, blur max 5 → 2, step 0.01 → 0.05 to match popup values exactly
- processedVideoCount desync - Removed the manual counter entirely, getStatus now returns trackedVideos.size
- Dead Code Removed
- SVG filter creation - Extracted createUnsharpFilterElement() and createFilterSVG() helpers, eliminating ~120 lines of duplicated SVG construction
- Settings apply logic - Extracted applyOrRemoveSharpening() and handleSettingsChange(), used by both storage.onChanged and runtime.onMessage listeners
- findVideosInCustomElements - Uses Set for O(1) dedup instead of Array.includes
scanForVideos - Also uses Set for merging custom element videos - Reddit scanning - Reduced from 5 sequential scans (0/500/1000/2000/3500ms) to 3 (0/800/2000ms), with better debouncing (300ms instead of 200ms)
Memory leak fix - scanForVideos now cleans up disconnected videos from trackedVideos on each scan - Popup and overlay upgraded from generic system font stack to Segoe UI Variable / SF Pro with fallbacks
- Monospace values use Cascadia Code / Fira Code / JetBrains Mono
- Slightly refined color palette (deeper backgrounds, softer accents)
Features
- Fast SVG sharpening filter — avoids performance issues
- Works on most sites — YouTube, streaming sites, and any HTML5 video
- In-player mini UI — control sharpening without leaving the video
- Toolbar popup — quick access from the browser toolbar
- Custom mode — fine-tune Strength and Blur parameters manually
- Lock sliders — preserve your custom values when changing preset levels
How to Use
In-player UI (recommended):
- Hold Shift and move your mouse onto the video to show the control panel
- Release Shift, then use the toggle and sliders to adjust sharpening
- Move your mouse off the panel to hide it (hides after ~1 second)
Preset Levels (1–10):
Quick sharpening presets from subtle (1) to aggressive (10). The slider automatically calculates optimal Strength and Blur values.
Custom Mode:
Enable the Custom toggle to access manual controls:
- Strength (0.00 – 7.00): Sharpening intensity — higher values mean sharper edges
- Blur (0.00 – 2.00): Blur radius for the unsharp mask — affects halo size around edges
Lock Buttons:
Click the padlock icon next to Strength or Blur to lock that value. Locked sliders won't change when you adjust the preset level slider. This lets you find your perfect Blur, then experiment with different Strength values (or vice versa).
Privacy
This extension does not collect or transmit any user data. All settings are stored locally in your browser.
Permissions
- storage — Saves your settings locally (enabled state, level, custom values, lock states)
Technical Details
The sharpening uses an unsharp mask algorithm implemented as an SVG filter:
- Apply Gaussian blur to source
- Subtract blurred image from original
- Result enhances edges while preserving smooth areas
GPU-accelerated for smooth performance.
Support
If you find this addon useful, consider buying me a coffee ☕
Tested on common sites like Facebook, YouTube and Twitch. Should be working for most sites but no guarantee.
Rated 5 by 3 reviewers
Permissions and data
Required permissions:
- Access your data for all websites
Data collection:
- The developer says this extension doesn't require data collection.
More information
- Add-on Links
- Version
- 1.5.0
- Size
- 32.42 KB
- Last updated
- 2 days ago (Mar 17, 2026)
- Related Categories
- License
- All Rights Reserved
- Version History
- Add to collection
The developer of this extension asks that you help support its continued development by making a small contribution.