Support & documentation | Frame Grabber

Nothing matches that

Try a shorter word, or clear the search and browse the contents list.

Ask a question instead

01 Quick start

Frame Grabber does one thing: it saves the exact frame you are looking at as a real image file. Three steps and it is done.

1

Install and pin it

Add it to your browser, then pin the icon from the puzzle-piece menu so the popup is one click away.

2

Land on the frame

Scrub to the moment you want. On YouTube, , and . step a single frame at a time while paused.

3

Press once

Hit Shift S or click the camera button in the player. The file lands in Downloads.

That is the whole product. Everything below is about bending it to your workflow: the format it writes, the name it uses, the folder it lands in and what it records inside the file.

Nothing is uploaded and nothing is tracked. There is no account, no sign-in and no network request of any kind. Details on the privacy page.

02 Installing

Chrome, Edge, Brave, Opera and Vivaldi

These browsers all run on the same engine, so they all take the same build. Install it from the store listing in one click, then open the puzzle-piece menu in the toolbar and pin Frame Grabber so its icon stays visible. That icon is the popup, which is where the last capture and the format switch live.

Firefox

There is a separate Firefox build produced from the same source. Everything works the same way with one exception: the clipboard helper that Chrome needs an offscreen document for is handled differently by Gecko, so that piece of the code is simply absent from the Firefox package.

Installing an unpacked copy

If you were given a build directly rather than a store link, you can load it yourself. This is also how you would run a development copy.

  1. Open chrome://extensions, or edge://extensions on Edge.
  2. Turn on Developer mode with the toggle in the top right.
  3. Click Load unpacked and select the dist/chrome folder. Not the zip, and not the folder above it.
  4. Pin the extension from the puzzle-piece menu.

On Firefox, open about:debugging#/runtime/this-firefox, click Load Temporary Add-on and select dist/firefox/manifest.json. Firefox drops temporary add-ons when it restarts, so an unpacked Firefox copy has to be loaded again each session unless the build is signed.

What it asks for at install time

Access to YouTube, storage for your settings, and the ability to write downloads. That is the whole default footprint. Access to every other site is a separate, optional permission that is never requested at install time. See where it works for how to turn it on, and the privacy page for why each permission exists.

03 Taking a capture

There are four ways to take the same capture. Use whichever suits the moment.

The YouTube button
A camera button sits in the player control bar, immediately to the left of the settings gear, drawn at the same size and weight as YouTube's own controls. Hover it and the tooltip reads "Take screenshot". One tap saves the frame. It follows you into fullscreen, and it reattaches within about a second when you move to the next video without reloading.
The floating button
Off YouTube, a small camera button sits over the player instead, because only YouTube's control bar is a known structure. Show it on hover or always, place it in any corner, and lift it so it clears the player's own controls.
The in-page key
Press Shift S with the video page focused. The mouse does not need to be anywhere near the player.
The browser shortcut
Press Alt Shift S. This one is registered with the browser itself, so it fires even when the page is not focused.
The toolbar icon
Clicking the extension icon opens the popup, which also captures. This route works on sites you have granted no standing permission for, because the click itself is what grants access to that one tab.

Whichever route you use, the frame is read straight from the video element at its decoded resolution. It is not a picture of your screen, so there are no player controls, no progress bar, no cursor and no scaling in the result. A 1080p stream gives you a 1920x1080 file even if the player is a thumbnail in the corner of a window.

After a capture, a small confirmation appears showing the timestamp, the resolution, the format and a thumbnail of the frame you just took.

04 Keyboard shortcuts

There are two independent shortcut systems, and knowing which is which explains most of the confusion people run into.

The in-page hotkey

Handled by the extension's own code running on the video page. Default is Shift S. To change it, open Settings, click the hotkey box, and press the combination you want. It is recorded as you press it.

It is deliberately ignored while you are typing in a search box, a comment field or any other text input, so it will never fire by accident mid-sentence. That guard is the reason typing the letter s into YouTube's search box does not save a frame.

Avoid single letters that YouTube already binds: k, j, l, f, t, c, m, i, the digits 0 to 9, and the arrow keys. Shift S is safe, which is why it is the default.

The browser-wide shortcuts

Registered with the browser rather than the page, so they fire even when focus is somewhere else in the window.

Capture the current frame
Alt Shift S
Capture to clipboard only
Alt Shift C, which copies the frame without writing a file

Change these at chrome://extensions/shortcuts. The Settings page has a button that takes you straight there. If a shortcut appears dead, another extension has usually claimed the same combination; that page shows you the conflict.

05 Formats and quality

Three export formats, switchable from the toolbar popup without opening Settings at all.

PNG
Lossless. Every pixel kept exactly as the video decoded it. The safest choice for editing, and the default. The quality slider disappears when PNG is selected, because there is nothing to trade away.
JPG
The smallest file, with a quality slider. Good for sharing and for long archives where a few hundred captures add up.
WebP
Roughly a third of the size of PNG at similar quality, and every modern browser reads it. Also has a quality slider.

Dragging the quality slider down shrinks JPG and WebP files noticeably. Around 90 is a sensible default for reference stills; below about 60 the compression starts to show on text and fine detail, which matters if you are capturing slides.

WebP encoding depends on the browser. If a browser cannot encode the format you picked, the capture falls back to PNG, and both the filename and the embedded metadata reflect what was actually written rather than what you asked for.

06 Filenames and tokens

Every capture is named from the video itself using a template you control. The default is {title}_{timestamp}_{resolution}, which produces something like How-I-Built-My-Business_04m32s_1920x1080.png. Settings shows a live preview that updates as you type the template.

The thirteen tokens

TokenWhat it insertsExample
{title}The video titleHow-I-Built-My-Business
{channel}Channel or uploaderRahul-Gautam
{domain}The site domainyoutube
{timestamp}Playhead position, with an hour part only when there is one04m32s, 01h04m32s
{seconds}Playhead in whole seconds272
{resolution}Frame size1920x1080
{width}Frame width alone1920
{height}Frame height alone1080
{date}The capture date2026-08-17
{time}The capture time14-22-10
{videoId}YouTube video iddQw4w9WgXcQ
{format}The format actually writtenpng
{index}A running capture counter7

Recipes worth stealing

{title}_{timestamp}How-I-Built-My-Business_04m32s.png
{title}_{timestamp}_{resolution} How-I-Built-My-Business_04m32s_1920x1080.png
{domain}_{title}_{timestamp}_{resolution} youtube_How-I-Built-My-Business_04m32s_1920x1080.png
{date}_{index}_{title}2026-08-17_7_How-I-Built-My-Business.png
{channel}/{date}_{title}_{timestamp} Rahul-Gautam/2026-08-17_How-I-Built-My-Business_04m32s.png
{videoId}_{seconds}s_{width}x{height}dQw4w9WgXcQ_272s_1920x1080.png

Put a / in the template and the parts before it become folders inside your download location, so captures file themselves by channel, by date or by anything else you can build from a token.

What the engine cleans up for you

  • Characters that are illegal in a filename, such as / in a title, :, ? and *, are stripped automatically. A capture never fails to save because of a title.
  • Spaces become hyphens, so the name survives being pasted into a terminal or a URL.
  • Empty tokens collapse cleanly instead of leaving __ gaps. Using {channel} outside YouTube leaves no trace rather than an awkward hole.
  • Capturing the same frame twice does not overwrite anything. The second file gets a numeric suffix from the browser.

The landing page has a live playground running this exact engine, if you would rather try a template than read about one.

07 Where files are saved

Captures go straight into your Downloads folder with no dialog. As of version 1.2.0 there is no forced subfolder; frames land where you would expect them to.

Downloads, directly
Leave the subfolder field empty and the file lands in Downloads itself.
A subfolder
Name one in Settings and it is created inside Downloads. Combine it with a / in your filename template for a second level.
Anywhere on disk
Turn on Browse for a folder each time and the browser's own save dialog opens with the templated filename already filled in, so you can put the frame wherever you like.
Rename before saving
Turn on Ask for the filename before saving and every capture offers an editable name box, pre-filled from your template with the extension shown separately. Press Enter to save, Escape to discard without writing anything.
Nowhere at all
Turn off Save to disk, or press Alt Shift C, and the frame goes only to your clipboard.

The parent location is your browser's own download folder, not something the extension controls. Change it at chrome://settings/downloads if you want every download, including captures, to land somewhere else.

08 Metadata in the image

A canvas export normally carries no metadata at all. Frame Grabber rewrites the encoded bytes so each capture remembers where it came from, using standard fields that other software already knows how to read.

Title
The video title
Author, Artist, Creator
The fixed credit Frame Grabber by Rahul Gautam, shown but not editable in Settings
Description
Where the frame came from, at which timestamp, at which resolution
Software
Frame Grabber plus the version
Source
A link back to the exact second of the video
Comment, UserComment
The full capture record in a single line
Creation date
When the capture was taken

How each format stores it

  • PNG uses standard tEXt and iTXt chunks for Title, Author, Description, Software, Source, Comment and Creation Time, plus an embedded XMP packet.
  • JPG carries an EXIF APP1 segment with ImageDescription, Artist, Software, DateTimeOriginal and UserComment, together with the Windows XPTitle, XPComment, XPAuthor, XPKeywords and XPSubject tags that Explorer maps into its Title, Comments, Authors, Tags and Subject columns, plus an XMP APP1 segment.
  • WebP files are promoted to the extended VP8X form so that proper EXIF and XMP chunks can be attached at all.

Reading it back

Right click a capture in Windows Explorer, open Properties and then the Details tab. On macOS, open it in Finder and press Command + I, or open the file in Preview and check the inspector. Photoshop, Lightroom and ExifTool all read the same fields. From a terminal, exiftool -a -G1 -s your-capture.png prints everything that is there.

Non-Latin titles survive the round trip: the Unicode text goes into the XP tags and the XMP packet, while a transliterated version fills the ASCII-only EXIF fields that cannot hold it.

No copyright is ever claimed

No copyright or rights field is written in any format. The PNG Copyright chunk, the EXIF Copyright tag and the XMP rights statement are deliberately left empty, because the frame belongs to whoever made the video. The credit line records which tool produced the file, the way a camera records its model, and nothing more.

To turn the whole thing off, switch off Embed metadata into the image in Settings. Captures taken after that are written bare. Remember that metadata travels with a file you share, and that some platforms strip it on upload while others do not.

09 The sidecar file

Turn on the metadata sidecar and every capture also writes a small .txt file next to the image, with the same base name. It holds the full capture record in readable form: the video title, the channel, the timestamp, the resolution, the format and a deep link back to the exact second.

It exists for two situations. The first is citation, where you need the source of a still in a document or a paper and do not want to dig it out later. The second is any workflow that strips embedded metadata, since a plain text file survives what an image pipeline may not. It is off by default, because most people do not need two files per capture.

10 Clipboard

With the clipboard option on, the frame lands on your system clipboard at the same moment it lands on your disk, as a PNG, ready to paste into Photoshop, Figma, a document or a chat before the confirmation has finished fading.

Press Alt Shift C to copy without writing a file at all. The extension only ever writes to your clipboard, and only immediately after a capture you triggered. It never reads it.

On Chrome, a capture triggered by the browser-wide shortcut has no page gesture to piggyback on, so a short lived hidden document performs the clipboard write and closes again. That is what the offscreen permission is for, and it handles nothing but the single image being copied.

11 The toolbar popup

Clicking the extension icon opens a small panel that does three jobs.

  • It shows the last capture, with the video title, the channel, the timestamp, the resolution, the format and the filename, plus a button that reopens the video at that exact second.
  • It copies that record as a block of text, which is the fastest way to cite a frame in notes without opening the file.
  • It switches the export format between PNG, JPG and WebP without opening Settings, which is the setting people change most often.

Only the most recent capture is remembered. There is no capture history, and the record is overwritten by your next frame.

12 Every setting explained

Open Settings from the toolbar popup. Everything below lives on that one page, and every change takes effect on your next capture.

Output

Export format
PNG, JPG or WebP. Default: PNG
Quality
The compression level for JPG and WebP. Hidden while PNG is selected, since PNG is lossless.
Save to disk
Turn it off to make every capture clipboard-only. Default: on
Copy to clipboard
Puts the frame on your clipboard alongside the file. Default: on

Naming and location

Filename template
The token string used to build every name, with a live preview underneath. Default: {title}_{timestamp}_{resolution}
Download subfolder
A folder created inside Downloads. Leave it empty to save directly into Downloads. Default: empty
Browse for a folder each time
Opens the browser save dialog on every capture, pre-filled with the templated name. Default: off
Ask for the filename before saving
Shows an editable name box on every capture. Leave it off for one tap straight to disk. Default: off

Metadata

Embed metadata into the image
Writes the title, credit, source, timestamp and resolution inside the file. Default: on
Credit line
Shown as fixed text and cannot be typed into. It reads Frame Grabber by Rahul Gautam and records the tool, not a rights claim.
Write a metadata sidecar
Saves a matching .txt next to each image. Default: off

Capture controls

In-page hotkey
Click the box and press the combination you want. Ignored while you are typing in an input. Default: Shift + S
Browser shortcuts
A button that opens chrome://extensions/shortcuts, where the browser-wide keys are managed.
Pause the video on capture
Freezes playback at the moment you capture, which helps when you are pulling several frames from one passage.
Button inside the YouTube player
The camera button in the control bar. Turn it off and the floating button takes over. Default: on

The floating button

Visibility
Show it on hover, keep it always visible, or switch it off entirely and use only the keyboard.
Corner
Any of the four corners of the player.
Lift
A slider that raises the button so it clears the player's own control bar.

Scope and housekeeping

Every other site with an HTML5 video
Requests the optional permission at the moment you switch it on. Revoke the permission in your browser and the toggle turns itself back off. Default: off
Capture counter
The running number behind the {index} token. Reset it with the reset control.
Reset to defaults
Puts every option back to how it shipped, including the counter and the last-capture record.

13 Where it works

YouTube, out of the box

YouTube is the primary supported player and it is on by default, including Shorts and embedded players on other people's sites. There the extension reads the real video title, the channel name and the video id, so filenames and metadata are fully populated. The button lives in the control bar, follows into fullscreen, and reattaches when you move to the next video without reloading.

Everywhere else, on request

A generic adapter handles any site with a standard HTML5 <video> element: lecture portals, documentation demos, conference recordings, Vimeo, Twitch VODs, your own uploads. Turn on Every other site with an HTML5 video in Settings and accept the permission prompt that appears at that moment. Off YouTube you get the floating button rather than a control bar button, and {channel} and {videoId} may be empty, which the naming engine handles cleanly.

You do not strictly need that permission. The toolbar button and the browser-wide shortcut work on any site without it, because clicking or pressing them grants one off access to the tab you are actually looking at.

Pages it will not touch

Browser pages such as chrome://extensions, the Web Store and other privileged surfaces are refused deliberately. Pressing the shortcut there does nothing and errors nothing.

14 Known limits

Three honest limitations, stated plainly rather than buried.

  1. DRM protected video cannot be captured. Netflix, Prime Video, Disney+ and similar services render video through a protected path that returns a blocked or black image to any browser extension, without exception. This is not a Frame Grabber limitation and no extension can work around it. Frame Grabber detects the condition and tells you, rather than silently saving a black rectangle.
  2. You get the resolution the player is streaming. The frame is captured at the video's decoded resolution, which is whatever quality is playing at that moment, not the highest quality the video is available in. For a 4K grab, set the player to 4K first, let it settle for a second or two, then capture.
  3. WebP support varies by browser. If a browser cannot encode the chosen format, the capture falls back to PNG, and the filename and metadata record what was actually written.

15 Troubleshooting

Symptoms first, in the order people actually hit them.

Nothing happens when I press the shortcut

Check four things in this order.

One, the page has actually finished loading the video. Two, you are not typing in a search or comment box, since the in-page key is deliberately ignored there. Three, another extension has not claimed the same browser-wide combination; review it at chrome://extensions/shortcuts. Four, if you just installed or reloaded the extension, refresh the video page so the current copy of the capture code is running on it.

The saved image is black

That is DRM. Netflix, Prime Video, Disney+ and similar services deliberately return a blocked frame to any extension. Frame Grabber normally detects this and shows a message instead of writing anything, so a genuinely black file usually means a player that protects its video in a way the detection did not recognise. Write in with the site and it can be added.

The capture is lower resolution than I expected

The frame comes out at the resolution the player is streaming, not the resolution the video is available in. Set the player quality to what you want, give it a second or two to settle, then capture. Adaptive streaming also drops quality on a slow connection, so a capture taken right after seeking can be softer than one taken a moment later.

The button is missing from the YouTube player

Reload the page first; the control bar is rebuilt by YouTube more often than you would think. Then check that Button inside the YouTube player is on in Settings. It sits immediately to the left of the settings gear, and hovering it shows a "Take screenshot" tooltip.

Nothing happens on a site other than YouTube

By default the extension only runs automatically on YouTube. Open Settings, turn on Every other site with an HTML5 video and accept the permission prompt. Alternatively, use the toolbar button or the browser-wide shortcut, which work anywhere without that permission.

The file will not save, or the name looks wrong

Check the filename template for a typo in a token; a misspelled token is treated as literal text rather than replaced. Check the subfolder field for characters your operating system will not accept in a folder name. If the browser is asking where to save on every capture and you did not want that, turn off Browse for a folder each time.

Two files save at once

Two copies of the extension are installed and both are answering the shortcut. This usually means a store install running alongside an unpacked development copy. Remove one of them at chrome://extensions.

The metadata is not showing in file properties

Confirm Embed metadata into the image is on, then re-capture, since the setting only affects files written after it changed. Some tools show a narrower set of fields than others; Windows Explorer reads the XP tags, while ExifTool shows everything. Note also that image editors often drop metadata when they re-save a file, so check the original capture rather than an exported copy.

My settings disappeared

Settings live in the browser profile they were set in. A different profile, a fresh install or a cleared profile starts from defaults. If you use extension sync, a signed in browser restores them on your other devices by itself.

16 Frequent questions

Is it free?

Yes, entirely, with no card, no account and no trial. Unlimited captures at full resolution, all three formats, all thirteen tokens, metadata and the sidecar, on every supported browser. There are no ads and no paid tier waiting to appear. If it saved you an afternoon there is a donate page, and a bug report is just as welcome.

Does it work on Netflix, Prime Video or Disney+?

No, and neither does any other extension. Those players use DRM, which makes the decoded video invisible to the page. Frame Grabber tells you the frame is protected rather than silently saving a black rectangle.

Is the image the same quality as the video?

Yes. The frame is drawn from the <video> element at its native resolution, so a 1080p stream gives you a 1920x1080 file even if the player is a thumbnail in the corner of your screen. Choose PNG and not a single pixel is altered.

Does anything get uploaded?

Nothing. No server, no analytics, no remote code and no network request of any kind. Your settings live in your own browser profile. The full detail is on the privacy page.

Why does the credit say "Frame Grabber by Rahul Gautam"?

It records which tool produced the file, in the author field, the same way a camera records its model. It is not a copyright claim; no copyright or rights field is written at all, because the frame belongs to whoever made the video. If you would rather have no metadata whatsoever, one toggle turns the whole thing off.

Can I capture a burst of frames?

Not automatically, by design, since it keeps the extension honest about only acting when you ask. In practice, stepping frame by frame with . on YouTube and tapping the shortcut is fast enough to grab a run of stills in a few seconds.

Can I use it in Firefox?

Yes. There is a separate Firefox build produced from the same source. Chrome, Edge, Brave, Opera and Vivaldi all run the Chrome build.

Does it work offline?

Once the video has loaded, yes, completely. Nothing in the capture path needs a connection, which is a useful way to confirm for yourself that nothing is being sent anywhere.

Can I capture a local video file?

If you drop the file into a browser tab it becomes an ordinary HTML5 video, so yes, with the toolbar button or the browser-wide shortcut. Tokens such as {channel} and {videoId} have nothing to fill them and collapse out of the filename.

Does it slow the browser down?

No. Nothing happens until you ask for a capture. There is no background polling, no network activity and no service worker sitting awake; Manifest V3 lets it sleep until a shortcut or a click wakes it.

17 Updates and versions

This documentation covers version 1.2.0, the current release, built for Chrome, Edge, Brave, Opera and Vivaldi from one package and for Firefox from a second one produced from the same source.

Updates arrive through the store automatically, usually within a few hours of a release being approved. You can see which version you are running at chrome://extensions, and in the version badge shown next to the name at the top of this page.

The most visible change in 1.2.0 is that captures now land directly in your Downloads folder rather than in a forced subfolder. If you preferred the old behaviour, name a subfolder in Settings and you have it back.

A new permission is never added in a routine update. If a future feature genuinely needs one, it will be requested optionally at the moment you switch that feature on, exactly the way the "every other site" toggle already works.

18 Privacy, in short

No accounts, no analytics, no servers, no network requests and no remote code. The extension reads the current video frame, the video title and the playback position at the moment you ask for a capture, uses them to name the file and write its metadata, and stops there. Your settings live in your own browser profile and your captures live in your own Downloads folder.

The full policy, including a table of every permission, what is stored, your rights under GDPR, the CCPA and India's DPDP Act, and three ways to verify all of it yourself, is on the privacy page.

19 Contact and bug reports

Frame Grabber is built and maintained by one person, so support goes to one address and comes back from a person, usually within a couple of days.

What to include in a bug report

Five lines make the difference between a fix and a conversation. Include as many as you can:

  • Your browser and version, and the extension version from chrome://extensions.
  • The site and, if you can share it, the video you were on.
  • What you pressed or clicked, and what happened instead of a capture.
  • Your export format, filename template and subfolder, if the problem involves saving.
  • Anything red in the console. Press F12 on the video page for capture problems, or open the service worker from chrome://extensions for download and shortcut problems.
Email

Bugs, feature requests, and anything this page did not answer.

Contact page

The form, if you would rather not open your mail client.

Privacy

Permissions, storage, third parties and your rights, in full.

Support the work

The extension stays free either way. Entirely optional.

Found something this page gets wrong, or explains badly? Say so and it will be rewritten. The documentation is part of the product.

Still stuck on something?

One person reads every message, and a question that reaches this page twice usually ends up documented on it.

Free, and it collects nothing.