Chrome Extension ยท MV3 ยท Free v1.3.2

IMGLAB ๐Ÿ“ท
Video Screenshot

One-click camera button on every video, on every website โ€” including videos embedded inside iframes. Capture the exact frame you want, in JPEG, WebP, or PNG. No watermarks, no sign-up, completely free.

3
Output formats
JPG ยท WebP ยท PNG
4
Button positions
configurable
โˆž
Sites supported
all_urls
0
Sign-up required
100% free
๐ŸŽฏ
Works on Any Video, Any Site

The camera button appears automatically on every <video> element on any website โ€” streaming platforms, news sites, personal blogs, video hosting services. No configuration, no whitelist. If there’s a video, the button is there.

๐Ÿ–ผ๏ธ
Cross-Origin iframe Support

Most video screenshot tools break when a video lives inside an embedded iframe from a different domain โ€” the most common setup on the modern web. IMGLAB uses Chrome’s extension privilege (all_frames: true) to inject directly into cross-origin iframes, capturing the real video frame rather than a blank screenshot.

โšก
Keyboard Shortcut

Default Ctrl+G. Customise any combo you want in Settings. Smart video picker selects the most relevant playing video on screen.

๐Ÿ“
Full Native Resolution

Canvas capture grabs the video’s native pixel dimensions โ€” not the shrunk display size. Your screenshot is as sharp as the original stream.

๐ŸŽจ
JPEG ยท WebP ยท PNG

Choose your output format. Adjust JPEG/WebP quality (10โ€“100). PNG is lossless. All images save instantly with a meaningful filename.

๐Ÿ“
Smart Auto Filename

Files are named IMGLAB-PageTitle-HH-MM-SS.jpg automatically. Even inside cross-origin iframes, the title is fetched from the top page.

IMGLAB Video Screenshot โ€” Settings Panel
imglab-video-screenshot-setting.webp
Settings Popup

Everything Configurable โ€” No Clutter

The popup is clean and fast. Two tabs: Settings and Block List. Change output format, quality, button position, minimum video size, and keyboard shortcut โ€” all in one place. Settings sync instantly to every open tab via chrome.storage.sync. No page refresh needed.

  • โœ“ Format toggle: JPG / WebP / PNG
  • โœ“ Quality slider: 10โ€“100 (dimmed automatically for PNG)
  • โœ“ Button position: 4 corners, plus bottom offset for player bars
  • โœ“ Click-to-record custom keyboard shortcut
  • โœ“ Min video size filter โ€” ignore tiny thumbnails
IMGLAB Video Screenshot โ€” Block List
imglab-video-screensho-blocklist.webp
Block List Tab

Per-Domain Blocking โ€” You’re in Control

Some sites behave badly when third-party scripts inject elements into their video players. The Block List lets you disable the extension on specific domains entirely โ€” including all subdomains. Pre-filled with confirmed-problematic sites, plus one-click chips for common social platforms.

  • โœ“ Block the current site with one click
  • โœ“ Suggested chips for common social platforms
  • โœ“ Manual domain input โ€” strips https://, www., trailing paths
  • โœ“ Blocks domain + all subdomains automatically
  • โœ“ Removable at any time โ€” changes take effect instantly
Dual-Engine Capture โ€” Same-Origin & Cross-Origin
1
Canvas Capture (same-origin video)

Draws the video frame onto an HTML5 canvas at native resolution. Fast, pixel-perfect, captures exactly the current frame including any overlaid subtitles baked into the stream. Used whenever the video source is accessible from the same origin.

โ†“
2
Tab Capture Fallback (cross-origin video)

If the canvas throws a SecurityError (video from a different domain โ€” very common on streaming sites), the extension automatically falls back to chrome.tabs.captureVisibleTab, then crops the full-tab screenshot precisely to the video element’s bounding rectangle using getBoundingClientRect() ร— device pixel ratio. The crop accounts for iframe offsets when the video is inside an embedded player.

โ†“
3
Smart Download Relay

Sandboxed iframes silently block direct downloads. IMGLAB detects this and relays the download through the top-level frame via postMessage, where a Blob URL + anchor click always works reliably. Your file arrives with the correct IMGLAB-PageTitle-HH-MM-SS.jpg filename โ€” never a generic “download.jpg”.

โŒจ๏ธ Smart Keyboard Shortcut
๐ŸŽฏ
Smart Video Picker

Press Ctrl+G (or your custom combo) and the extension intelligently selects the best video on screen โ€” prioritising currently-playing videos, then the one closest to the centre of your viewport.

๐Ÿ“ฆ
Works Inside iframes Too

If no video is found in the main page, the shortcut is broadcast via postMessage to all child iframes. Whichever iframe has an active video captures it and reports back โ€” no warning, no fuss.

๐ŸŽ›๏ธ
Fully Customisable

Click the shortcut display in Settings to start recording. Press any key combination with optional Ctrl, Alt, and Shift modifiers. Reset to default with one click.

Camera Button Behaviour

The camera button appears on hover over any qualifying video. It fades out while the video is playing and reappears on pause โ€” so it never gets in the way of what you’re watching.

  • โœ“ Appears on hover โ€” disappears automatically during playback
  • โœ“ Reappears when video is paused
  • โœ“ 4 configurable positions: Top-Left, Top-Right, Bottom-Left, Bottom-Right
  • โœ“ Bottom positions have 54px offset to clear player control bars
  • โœ“ Position changes live โ€” all buttons update immediately without refreshing
  • โœ“ Minimum size filter skips tiny thumbnail previews and ad players
  • โœ“ Polls every 1.5 seconds + MutationObserver to catch dynamically loaded videos
๐Ÿ“ท
๐Ÿ“ท
๐Ÿ“ท
๐Ÿ“ท
โ–ถ Video Player

Top-right is default ยท all 4 positions available

Four Sites Are Blocked by Default

Most websites work fine with IMGLAB. But a small number of large platforms have engineering choices at the infrastructure level that make compatibility impossible โ€” not difficult, impossible. We’ve done the investigation, and blocking these sites by default is the honest decision rather than pretending the extension works when it doesn’t.

๐Ÿšซ facebook.com
Facebook’s player intercepts every click on the video element and routes it through its own click handler โ€” opening the expanded “cinema mode” viewer instead. Our button physically cannot be clicked; Facebook steals the event before it reaches us. This is intentional behaviour on Facebook’s part to keep users in their ecosystem. Not fixable.
๐Ÿšซ tiktok.com
TikTok runs a MutationObserver anti-tamper system that watches for any DOM changes to its video container. The moment our button is appended, TikTok’s internal state resets โ€” which immediately pauses and freezes the video. We investigated this thoroughly (confirmed via three separate debugging sessions) and ruled out every other cause. The freeze is triggered by our button element existing in the DOM. Not fixable without reverse-engineering TikTok’s anti-tamper code.
๐Ÿšซ weibo.com
Weibo’s video player uses heavy cross-origin embedding with a full player UI overlay rendered on top of the video at a higher z-index than anything we can inject. The tab-capture fallback captures the overlay UI (progress bar, title, controls) rather than a clean video frame. The resulting screenshot is not the video content โ€” it’s a screenshot of the controls. Not useful to users.
๐Ÿšซ reddit.com
Reddit’s video players do not use native HTML <video> elements in the way our extension detects them. The content script scans for <video> tags but Reddit’s player architecture means none are found โ€” so the button never appears and the keyboard shortcut returns “no active video found”. Since the extension doesn’t do anything useful on Reddit, we block it to avoid confusion. No video element found.
๐Ÿ’ก You can remove any of these from your Block List at any time. If a future update to these platforms changes their behaviour in a way that makes compatibility possible, we’ll remove them from the default list. You’re always in control.
Known Site Compatibility
SiteStatusNotes
facebook.com ๐Ÿšซ Blocked Default blocked โ€” click hijacked by FB player
tiktok.com ๐Ÿšซ Blocked Default blocked โ€” anti-tamper freezes video
weibo.com ๐Ÿšซ Blocked Default blocked โ€” overlay captured instead of video
reddit.com ๐Ÿšซ Blocked Default blocked โ€” no <video> element found
What We Can’t Always Control

We believe in being upfront. These are real limitations, most of them imposed by web platform security boundaries or platform-specific engineering choices outside our control.

๐ŸŽญ
Tab Capture Includes Overlays

When the cross-origin fallback is used, the full visible tab is captured then cropped to the video area. Any player UI layered on top of the video โ€” control bars, “click to expand” banners, loading spinners โ€” will appear in the screenshot. This is a fundamental constraint of how captureVisibleTab works. We can’t peer through the overlay to the raw video pixels without browser-level access we don’t have.

๐Ÿ”’
DRM-Protected Content

Videos protected by Widevine, PlayReady, or other DRM systems render on a protected compositing layer that extensions cannot access. Canvas capture will return a black frame. This is intentional and enforced by the OS / GPU driver โ€” no browser extension can bypass DRM. If you see a black screenshot, the video is DRM-protected.

๐Ÿ“ฑ
Fullscreen Toast Visibility

The “Screenshot saved!” notification is always appended to the correct element in fullscreen mode. However, on certain sites with cross-origin iframe players, Chrome suppresses repaints inside fullscreen iframes when DevTools is closed โ€” meaning the toast may not be visible even though the screenshot was captured successfully. The file will still be in your Downloads folder.

๐ŸŒ
Not Guaranteed on Every Site

The web is vast and every site engineers their video player differently. We work on the vast majority of video sites, but we can’t test every one. If the extension doesn’t work on a site you care about, let us know via a donation message โ€” sites with enough user demand get prioritised in future updates.

๐Ÿš€ Installation โ€” Takes 60 Seconds
1
Download or clone the extension files

Get the zip from the Chrome Web Store or our download page. Unzip to a permanent folder โ€” the folder must stay in place as long as the extension is installed.

2
Enable Developer Mode in Chrome

Go to chrome://extensions/ and toggle Developer Mode (top right). Then click “Load unpacked” and select your unzipped folder.

3
Grant “Allow on all sites”

Find the extension in your toolbar (๐Ÿงฉ puzzle icon), click โ‹ฎ, then “This can read and change site data” โ†’ On all sites. Required for cross-origin iframe support.

4
Start capturing

Hover over any video and click the camera button. Or press Ctrl+G anywhere on the page. That’s it.

FREE ยท OPEN ยท COMMUNITY-SUPPORTED

This Extension Lives on Your Support

IMGLAB Video Screenshot is completely free โ€” no ads, no paywall, no data collection. Development, testing, and compatibility research takes real time. Every donation directly funds the next update.

๐Ÿงช
Testing compatibility on new streaming sites and platforms
๐Ÿ›
Investigating and fixing edge cases on sites you report
๐ŸŒฑ
Building new features like overlay button mode, more format options, and Firefox/Edge ports

Whether we support more sites in the future honestly depends on how many people find this useful enough to chip in. If you’ve saved a screenshot you’re happy with โ€” consider buying us a coffee.

One-time ยท No account needed ยท Any amount helps ยท 30 seconds

Built with โค๏ธ by IMGLAB
Ko-fi  ยท  Buy Me a Coffee  ยท  [email protected]