IMGLAB Video Screenshot β€” User Guide
User Guide & Help Center

Master Every
Video Screenshot

Complete walkthrough β€” from install to advanced capture. One camera button on every video, everywhere on the web.

3
OUTPUT FORMATS
4
BUTTON POSITIONS
∞
SITES SUPPORTED
0
SIGN-UP REQUIRED
1 Getting Started

Install in 60 Seconds

IMGLAB Video Screenshot is a Chrome extension loaded from a local folder. Follow these five steps and you’ll be capturing video frames in under a minute.

01
Add to Chrome from the Web Store

Click Add to Chrome β€” Free on the product page. Chrome will prompt for confirmation β€” click Add extension. The IMGLAB icon ⚑ appears in your Chrome toolbar. No sign-up, no account, no payment required.

⚠️ If the toolbar icon isn’t visible, click the puzzle piece 🧩 in the Chrome toolbar and pin IMGLABΒ Video Screenshot so it’s always accessible.
02
Open Chrome Extensions Page

In Chrome, type the following in the address bar and press Enter:

chrome://extensions/

This opens your Extensions management page. Toggle Developer mode ON using the switch in the top-right corner of the page. The “Load unpacked” button will appear.

πŸ’‘ Developer mode is completely safe. It simply allows you to load extensions from local folders rather than only from the Chrome Web Store.
03
Load the Extension Folder

Click “Load unpacked”. A folder picker opens. Navigate to and select the folder you unzipped in Step 1 β€” the folder that contains the manifest.json file. Chrome will load the extension immediately. You should see IMGLAB Video Screenshot appear in your extensions list, and a camera icon πŸ“· will appear in your Chrome toolbar.

πŸ’‘ If the toolbar icon is not visible, click the puzzle piece 🧩 in the Chrome toolbar and pin IMGLAB Video Screenshot so it’s always accessible.
04
Grant “Access on All Sites” Permission

This is the most important setup step. Without it, the camera button will not appear on most websites.

Right-click (or click β‹―) the IMGLAB icon in the toolbar β†’ “This can read and change site data” β†’ select “On all sites”.

⚠️ This permission is required for cross-origin iframe support β€” the extension needs to inject into video frames that are hosted on different domains than the page. Without it, the button simply won’t show up on most modern video sites. This is the #1 reason the extension appears to “not work” after install.
05
Take Your First Screenshot

Navigate to any website with a video. Hover over the video β€” a small πŸ“· camera button will appear in the top-right corner (or your configured position). Click it. Your screenshot downloads instantly to your Downloads folder with a meaningful filename like IMGLAB-PageTitle-14-32-07.jpg.

Alternatively, press Ctrl+G anywhere on the page β€” the extension will automatically find the best video on screen and capture it.

πŸ’‘ Pausing the video before capturing is recommended to get a clean, non-blurred frame β€” especially for fast-moving content.
πŸ”„
Updating the Extension: When a new version is available, replace the files in your extension folder with the new ones. Then go to chrome://extensions/ and click the β†Ί refresh icon on the IMGLAB card. Your settings are preserved automatically.
2 Settings Panel

Full Settings Walkthrough

Click the πŸ“· extension icon in your Chrome toolbar to open the popup. The Settings tab has four control groups.

IMGLAB Video Screenshot β€” Settings tab
Settings tab as it appears in Chrome
πŸ–ΌοΈ
IMAGE OUTPUT β€” Format
JPG
WebP
PNG

Choose your screenshot file format:

JPG is the default and best for most uses β€” smallest file size, fast to share, excellent visual quality at 80–90. A slight compression artefact may be visible at very low quality settings, but rarely matters for video frames.

WebP is a modern format developed by Google. At the same quality setting it produces smaller files than JPG. Best for uploading to websites or sharing digitally. Some older apps and Windows Photo Viewer may not support it β€” if you plan to open screenshots in older software, use JPG or PNG.

PNG is completely lossless β€” zero compression, zero quality loss, maximum file size. Use this when you need pixel-perfect accuracy: technical analysis, archiving, post-processing in a photo editor, or capturing text-heavy frames where compression artefacts would be noticeable.

The format selector works like a radio button β€” only one can be active at a time. Changes take effect on the next capture, so no need to re-open the popup.
🎚️
IMAGE OUTPUT β€” Quality
85

The quality slider controls JPEG and WebP compression, on a scale of 10 (maximum compression, smallest file) to 100 (near-lossless, largest file). The default value is 85, which provides excellent visual quality at a reasonable file size β€” suitable for virtually all everyday uses.

Increasing quality beyond 90 produces diminishing returns for most video content. Lowering below 70 may introduce visible compression blocks on fine details and gradients.

The quality slider is automatically disabled and greyed out when PNG is selected, since PNG is always lossless and has no quality setting.
πŸ“
BUTTON POSITION
β†– Top Left
β†— Top Right βœ“
↙ Bottom Left
β†˜ Bottom Right

Choose which corner of the video the πŸ“· camera button appears in. The default is Top Right. All four corners are supported.

Bottom positions are automatically offset 54 pixels upward to clear the player control bars that most video players display along the bottom edge. If our button still overlaps a site’s controls or branding, try a different corner.

⚑
Live update: Position changes apply instantly to all existing camera buttons on every open tab β€” no page refresh needed.
Tip: For YouTube Shorts, switch to Top Left β€” YouTube places its own icon in the top-right corner of Shorts videos, which overlaps our button at the default position.
πŸ“
VIDEO FILTER β€” Minimum Size

Set a minimum video display size (width Γ— height in pixels) before the camera button is injected. The default is 320 Γ— 180 px. Any video element smaller than this will be silently ignored.

This prevents the camera button from cluttering tiny thumbnail preview players, animated ad units, or decorative background video loops that you would never want to screenshot.

If a video you want to screenshot isn’t getting a button, lower the minimum size values (or set both to 0 to capture all videos regardless of size). If too many small videos are getting buttons, increase the threshold.
⌨️
KEYBOARD SHORTCUT

The default keyboard shortcut is Ctrl+G. To change it:

1. Click the shortcut display box β€” it shows “Press keys…”
2. Press your desired key combination (any key + optional Ctrl, Alt, or Shift modifiers)
3. The shortcut saves automatically β€” no Save button needed
4. Click the Γ— button to reset to the default Ctrl+G

If the shortcut doesn’t fire, another extension or the website itself may be consuming the same key combination. Try a different one. Common alternatives: Ctrl+Shift+S or Alt+C.
πŸ’Ύ
Don’t forget to Save Settings β€” click the “Save Settings” button at the bottom of the popup after making any changes. The button turns green and briefly shows “βœ“ Saved!” to confirm. Settings sync to all your Chrome instances automatically via chrome.storage.sync.
3 Block List

Block List & Default Blocks

IMGLAB Video Screenshot β€” Block List tab
Block List tab β€” manage per-site on/off

The Block List tab lets you disable the extension on specific domains. When a domain is blocked, no camera button is injected and the keyboard shortcut does nothing on that site. Blocking covers all subdomains automatically.

🌐
Current Site Quick-Block

The top of the tab always shows the domain of the tab you opened the popup from. Click + Block to add it instantly. The button shows βœ“ Blocked if already listed.

✨
Suggested Chips

One-click chips for common social platforms: instagram.com, x.com, twitter.com. Chips with a βœ“ prefix are already in your list.

✏️
Manual Entry

Type any domain in the input field and press + Add or Enter. The extension strips https://, www. and paths β€” just enter the bare domain.

Why Are These 4 Sites Blocked by Default?

IMGLAB ships with four sites pre-blocked. This isn’t a shortcut or laziness β€” it reflects deep investigation into each platform. These sites have made deliberate engineering decisions at the infrastructure level that make compatibility impossible, not merely difficult. We’ve documented every case so you know exactly what we encountered.

facebook.com 🚫 Blocked
Root cause: Click event hijacking

Facebook’s video player intercepts every click on the <video> element at the browser event level β€” before our button’s handler can fire. When you click our camera icon, Facebook’s proprietary event handler activates first and opens the video in its “cinema mode” fullscreen viewer. Our button is visible but physically unclickable. This is an intentional Facebook design decision to maximise in-platform engagement and prevent third-party tools from working with their media.

πŸ”΄ Not fixable β€” Facebook owns the click event.
tiktok.com 🚫 Blocked
Root cause: Anti-tamper DOM watchdog

TikTok runs an aggressive MutationObserver-based anti-tamper system that monitors every DOM change inside its video container. The instant our camera button is appended, TikTok’s watchdog detects the DOM mutation, resets internal player state β€” and the video immediately pauses and freezes. We confirmed this through three independent debugging sessions, systematically eliminating all other possible causes. The freeze is triggered by the presence of our button element in the DOM β€” nothing else.

πŸ”΄ Not fixable without reverse-engineering TikTok’s proprietary anti-tamper system.
weibo.com 🚫 Blocked
Root cause: Overlay UI capture

Weibo’s player renders a full-screen UI layer β€” progress bar, title card, control buttons β€” at a z-index higher than anything we can inject. When our tab-capture fallback takes a screenshot of the video region, it captures the UI overlay rather than the actual video content. The resulting screenshot is a picture of Weibo’s player controls, not the video frame. This is fundamentally useless as a screenshot tool, so rather than ship a broken experience, we block it by default.

πŸ”΄ Not fixable β€” we cannot access raw video pixels beneath their overlay.
reddit.com 🚫 Blocked
Root cause: No detectable <video> element

Our extension detects videos by scanning for native HTML <video> elements. Reddit’s video player architecture does not expose a <video> tag in a way our content script can find. No button appears, and the keyboard shortcut silently returns “no active video found.” Since the extension provides zero functionality on Reddit, we block it by default to avoid confusion β€” there is nothing broken, there is simply nothing to do.

πŸ”΄ Not fixable without significant reverse-engineering of Reddit’s player.
πŸ’‘
You can remove any default blocks at any time. Open the Block List tab and click the Γ— next to any domain to unblock it. If a future platform update changes any of these sites’ behaviour in a way that makes compatibility possible, we’ll remove them from the default list. You’re always in control of your own list.
4 Capture Engine

How Capture Works

IMGLAB uses two capture methods. It always tries Method A first β€” if that’s blocked by the browser’s security policy, it automatically falls back to Method B. No configuration needed.

Method A β€” Primary
Canvas Capture
Used when: video source is same-origin (loaded from the same domain as the page)

Draws the current video frame directly onto an HTML5 <canvas> element at the video’s full native resolution β€” not the display size. This produces a pixel-perfect copy of the raw frame, including hard-coded subtitles or overlays baked into the video stream. Fast, clean, no browser UI artefacts.

Example: A news site hosting its own .mp4 files, or a blog embedding a video from its own CDN.

Method B β€” Fallback
Tab Capture
Used when: Method A throws SecurityError (cross-origin video source β€” very common)

If the video is hosted on a different domain (e.g. a CDN, or a streaming platform’s separate video servers), the browser’s security policy blocks canvas access. The extension then calls chrome.tabs.captureVisibleTab, takes a full screenshot of the visible browser tab, and precisely crops it to the video element’s exact bounding rectangle using getBoundingClientRect() Γ— device pixel ratio. Even iframe offsets are calculated correctly.

Limitation: This captures what’s on screen, so any player UI overlaid on the video will be included in the screenshot.

1
Click πŸ“· button (or press Ctrl+G)

The extension identifies the target <video> element and attempts canvas capture. If the video is cross-origin, a SecurityError is thrown β€” the extension catches this silently and proceeds to Method B without any visible interruption.

2
Cross-origin iframe support via all_frames

Most video screenshot tools break when the video lives inside an embedded iframe from a different domain β€” the most common setup on modern streaming sites. IMGLAB uses Chrome’s extension privilege (all_frames: true + match_origin_as_fallback: true) to inject its content script directly into cross-origin iframes. This means the camera button appears even inside embedded video players that other tools can’t reach.

3
Smart download relay for sandboxed iframes

Sandboxed iframes silently block direct file downloads β€” no error, just nothing happens. IMGLAB detects when it’s running inside a sandboxed iframe and relays the download request to the top-level frame via postMessage. The top frame triggers a Blob URL + anchor click download, which always works reliably. Your file arrives with the correct filename: IMGLAB-PageTitle-HH-MM-SS.jpg β€” never a generic “download.jpg”.

4
Filename construction β€” even from cross-origin iframes

The filename always uses the top-level page title, even when capturing from inside a cross-origin iframe. The iframe sends a IMGLAB_GET_TITLE message to the top frame, which responds with the page title. This means your files are always meaningfully named by the site you’re watching, not by the CDN domain the video is hosted on.

πŸ“Έ
Screenshot confirmation toast: After every capture a small “πŸ“Έ Screenshot saved!” notification appears briefly. In fullscreen mode, it’s placed inside the fullscreen element so it stays visible even when the browser UI is hidden. On some cross-origin iframe players with Chrome’s repaint suppression, the toast may not visually appear β€” but the file is always saved to Downloads regardless.
5 Keyboard Shortcut

Smart Keyboard Shortcut

The keyboard shortcut Ctrl+G does more than just trigger a capture β€” it includes a smart video selection algorithm that works across the entire page, including embedded iframes.

🎯
Smart Video Picker

When you press the shortcut, the extension evaluates all videos on the page and selects the best candidate: playing videos are preferred over paused ones, and among multiple candidates the one closest to the centre of your screen viewport is chosen. This works intuitively even on feed pages with multiple videos.

πŸ“¦
Works Inside iframes

If no suitable video is found in the main page, the extension broadcasts the shortcut signal via postMessage to all child iframes. The iframe that has an active video captures it and reports back β€” seamlessly, with no visible delay or error. You never need to focus the iframe manually.

πŸŽ›οΈ
Fully Customisable

Open Settings, click the shortcut box, and press any key combination with optional Ctrl, Alt, and Shift modifiers. Click Γ— to reset to default. If your chosen combination conflicts with a website’s own shortcut, the site usually wins β€” pick something unusual or use the click button instead.

6 Limitations

Known Limitations

We believe in being fully transparent. The limitations below are real and acknowledged. The vast majority are caused by browser security architecture, OS-level restrictions, or deliberate platform engineering choices β€” not by anything we chose or could reasonably fix. We’ve documented each one so you know exactly what to expect and why.
🎭
Overlay UI in Tab Capture Screenshots
Medium impact

When Method B (tab capture) is used, the screenshot includes everything visually on screen within the video area β€” including any player UI overlaid on top of the video. Control bars, loading spinners, “Click to expand” banners, or hover-state buttons can appear in the screenshot.

This is a fundamental constraint of captureVisibleTab: it photographs pixels on screen, not raw video data. Chrome provides no API for extensions to access raw cross-origin video frames β€” that data is protected for security and copyright reasons.

Workaround: Pause the video and wait for hover UI to fade before capturing. Most player overlays disappear within 2–3 seconds of no mouse movement.
⬛
DRM-Protected Videos β†’ Black Screenshot
Cannot be fixed

Videos protected by Widevine, PlayReady, or similar DRM systems are rendered on a hardware-protected graphics compositing layer that is intentionally inaccessible to any software running in user space β€” including browser extensions. Canvas capture returns a solid black frame.

This protection is enforced at the OS and GPU driver level and is legally required under content licensing agreements. No browser extension can bypass it. Netflix, Disney+, Amazon Prime, and most major streaming services with premium content use DRM.

This is not fixable by any extension in existence. If you get a black screenshot, the video is DRM-protected.
πŸ“±
Toast Notification Not Visible in Some Fullscreen Modes
Low impact

On certain sites that use cross-origin iframe video players in fullscreen, Chrome suppresses visual repaints inside the iframe when DevTools is not open β€” a known Chrome rendering behaviour. Our “Screenshot saved!” toast is added to the DOM correctly but may not visually appear on screen.

The screenshot is still saved. The toast is purely cosmetic feedback. Check your Downloads folder if you’re unsure whether a capture worked.

Workaround: Check Downloads/. The file will be there. We’re tracking a canvas-based overlay fix for a future update.
🎯
Shortcut May Pick Wrong Video on Multi-Video Feeds
Low impact

On social media feeds (Twitter/X, Instagram) where multiple videos are simultaneously visible and playing, the keyboard shortcut’s smart picker may occasionally select a video you didn’t intend β€” especially when videos are evenly spaced and you’re scrolled between them.

Workaround: Use the click button directly on the specific video you want to capture, rather than the keyboard shortcut.
πŸ”—
Not Guaranteed on Every Site
Varies by site

The web is enormous. Every site engineers their video player differently β€” some use native <video> elements, some use proprietary player frameworks, some use unconventional DOM structures. While we work reliably on the majority of video sites, we cannot test every platform.

Sites using standard HTML <video> elements work reliably. Sites with heavily custom players or unusual iframe architectures may not. We actively want to support more sites β€” see the Support section.

If a specific site isn’t working, report it via our donation pages (Ko-fi / BMC) β€” sites with enough user demand get prioritised.
πŸ“Ί
YouTube Shorts β€” Button Overlap
Easy to fix

YouTube Shorts displays its own icon in the top-right corner of the video player. Our default position (also top-right) causes overlap, making our button hard to click.

Fix: Open Settings β†’ Button Position β†’ select Top Left. Takes 5 seconds.

Site Compatibility Reference

SiteStatusNotes
facebook.com 🚫 Blocked Click hijacked by FB player β€” see Block List section
tiktok.com 🚫 Blocked Anti-tamper system freezes video β€” see Block List section
weibo.com 🚫 Blocked Overlay captured instead of video β€” see Block List section
reddit.com 🚫 Blocked No detectable <video> element β€” see Block List section
7 Support

Support & Donations

FREE Β· OPEN Β· COMMUNITY-SUPPORTED

This Extension
Lives on Your Support

IMGLAB Video Screenshot is and will remain completely free β€” no ads, no subscriptions, no data collection of any kind. All the development, debugging, platform research, and compatibility testing you benefit from is funded by community donations.

πŸ§ͺ Testing and adding compatibility for new streaming platforms and video sites you report
πŸ› Deep-diving into cross-origin iframe edge cases that can take hours to debug per site
πŸš€ New features: overlay button mode, Firefox & Edge port, more format/quality options
πŸ”§ Keeping pace as Chrome and video platforms continuously update their APIs

We’ll be direct: whether this project continues to grow honestly depends on whether enough people support it. If you’ve saved screenshots you’re happy with β€” a one-time coffee is the best way to say “keep going.” No guilt either way β€” but every contribution keeps the update cycle alive.

Quick Troubleshooting
Camera button doesn’t appear on any site
Almost always a permissions issue. Right-click the extension icon β†’ “This can read and change site data” β†’ On all sites. Then refresh the page.
Button is visible but screenshot is black
The video is DRM-protected (Netflix, Disney+, Amazon Prime, etc.). No extension can capture DRM video β€” this is enforced at the OS level. Not fixable.
Screenshot shows player controls, not video
Tab capture was used and captured the UI overlay. Pause the video and wait 2–3 seconds for hover state to fade, then capture.
Ctrl+G doesn’t work
A conflict with another extension or the site’s own shortcut. Open Settings and record a different key combination.
Button overlaps the player controls
Change Button Position in Settings. For YouTube Shorts, Top Left is recommended. For sites with top banners, use a bottom position.
A site I use isn’t working
Send us a message on Ko-fi or BMC with the site URL. We prioritise sites with the most user demand β€” this feedback directly drives which sites get support in future updates.