Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The correct method depends on what “capture” means. For a still image, make the tab you want visible and call chrome.tabs.captureVisibleTab. For audio or video from a known tab, start the extension from that tab and use chrome.tabCapture, retaining that tab’s ID if another tab opens. If the person should choose a tab, window, or screen, use navigator.mediaDevices.getDisplayMedia() and its chooser. Opening a new tab does not automatically authorize capture of the tab you just left.

First decide which tab you mean

“When a new tab opens” can describe two different workflows:

  • Capture the newly opened tab: wait until it is active and capture that visible tab.
  • Capture the tab that was open before the new tab: save the original tab’s ID and target it explicitly. Do not capture whichever tab happens to be active later.

A screenshot is a still image. A recording is a live MediaStream that may contain video and audio. Chrome exposes different APIs for these jobs.

Goal API What it does Important limitation
Still image chrome.tabs.captureVisibleTab Captures the visible area of the currently active tab. The intended tab must be visible and active when the call runs.
Known tab recording chrome.tabCapture Provides a media stream for one tab. The extension must be invoked and have access to that target tab.
User chooses a source getDisplayMedia() Shows Chrome’s tab, window, or screen selection dialog. The user must select the source; selection is not silent.

See Chrome’s tabCapture API reference, the Audio recording and screen capture guide, and Google’s tabCapture sample and screenshot sample.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Capture Card, USB Video Capture Card Device, Audio Video Converter Grabber for RCA to USB-Convert VHS Mini DV VCR Hi8 DVD to Digital, for PC TV Tape Player Camcorder, MAC Windows Vista Compatible
  • AV TO USB Converter: Capture videos and audios from VHS, VCR, Hi8, DV tapes to a PC, with the help of our USB Video Converter. Save room while digitizing your favorite old memories
  • Quality Capture Card: Our USB Video Capture Card converting anolog RCA composite input into HD 720P USB output and capturing audio without any sound card. Advanced signal processing technology provides you with great precision, colors, resolutions, and details.
  • Plug and Play: Automatically install the driver once you hook up this RCA to USB Converter to a PC. No external power is needed. User-friendly and easy to operate
  • Wide Compatibility: The Video Capture Card can work with video devices with RCA connector or S-Video connector, such as VHS, VCR, Hi8, camcorder, compatible with Windows and Mac OS. Support video formats like NTSC, PAL, and support brightness, contrast, hue, and saturation control
  • Note: The Video Converter is used with acquisition software. We recommend OBS Studio or PotPlayer for Windows, and QuickTime Player for Mac. They can be downloaded for free online. Please operate according to the steps in User Manual or contact us if you have any questions

Take a screenshot of the tab that opens

captureVisibleTab works on the active tab in a window. Therefore, activate the newly opened tab first, then invoke your extension action or other user-triggered code.

  1. Open or create the tab.
  2. Make sure it is the selected tab and the page has finished rendering.
  3. Invoke the extension while that tab is active.
  4. Call chrome.tabs.captureVisibleTab and save the returned data URL or convert it to a Blob.

A minimal Manifest V3 example uses the activeTab grant, which is temporary access associated with the user invoking the extension:

{
  "manifest_version": 3,
  "name": "Active Tab Screenshot",
  "version": "1.0.0",
  "permissions": ["activeTab"],
  "action": { "default_title": "Capture active tab" },
  "background": { "service_worker": "service-worker.js" }
}
chrome.action.onClicked.addListener(async (tab) => {
  if (!tab.windowId || tab.id === undefined) return;
  try {
    const dataUrl = await chrome.tabs.captureVisibleTab(tab.windowId, {
      format: "png"
    });
    await chrome.downloads.download({
      url: dataUrl,
      filename: `tab-${tab.id}.png`,
      saveAs: true
    });
  } catch (error) {
    console.error("Screenshot failed", error);
  }
});

Add downloads to the manifest if you use the download call. The API captures only what is visible in the active tab, not the entire page below the fold. For a full-page image, you need a separate scrolling or page-rendering design; do not assume this API produces a full document screenshot.

Capture the tab that was open before a new tab appeared

A newly created tab has a different ID. Chrome’s documented persistence for tabCapture applies to navigation within the same tab, not to a separate tab created with a new-tab command. Save the original ID before opening anything else and start capture from an invocation on that original tab.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
Capture Card, 4K HDMI Video Capture Card, Game Capture Card, 1080P 60FPS Video Capture Device, HDMI to USB 3.0 Capture Card for Streaming, Work with Camera/Xbox/PS4/PS5/PC/OBS
  • 【1080P HD High Quality】Capture resolution up to 1080p for video source and it is ideal for all HDMI devices such as PS4, PS3, Xbox One, Xbox 360, Wii U, DVDs, DSLR, Camera, Security Camera and set top box. Note: Video input supports 4K30/60Hz and 1080p120/144Hz. Does not support 4K120Hz/144Hz. Output supports up to 2K30Hz.
  • 【Plug and Play】No driver or external power supply required, true PnP. Once plugged in, the device is identified automatically as a webcam. Detect input and adjust output automatically. Won't occupy CPU, optional audio capture. No freeze with correct setting.
  • 【Compatible with Multiple Systems】suitable for Windows and Mac OS. High speed USB 3.0 technology and superior low latency technology makes it easier for you to transmit live streaming to Twitch, Youtube, Facebook, Twitter, OBS, Potplayer and VLC.
  • 【HDMI LOOP-OUT】Based on the high-speed USB 3.0 technology, it can capture one single channel HD HDMI video signal. There is no delay when you are playing game live.
  • 【Support Mic-in for Commentary】Rybozen capture card has microphone input and you can use it to add external commentary when playing a game. Please note: it only accepts 3.5mm TRS standard microphone headset.
let sourceTabId;

chrome.action.onClicked.addListener(async (tab) => {
  // The click occurs while the source tab is active.
  sourceTabId = tab.id;
  if (sourceTabId === undefined) return;

  try {
    const streamId = await chrome.tabCapture.getMediaStreamId({
      targetTabId: sourceTabId
    });
    // Pass streamId to an offscreen document or another extension context.
    await chrome.runtime.sendMessage({ type: "capture-stream", streamId });
  } catch (error) {
    console.error("Could not obtain stream ID", error);
  }
});

The extension must declare both tabCapture and a way to access the invoked tab:

{
  "manifest_version": 3,
  "name": "Known Tab Recorder",
  "version": "1.0.0",
  "permissions": ["tabCapture", "activeTab", "offscreen"],
  "action": { "default_title": "Record this tab" },
  "background": { "service_worker": "service-worker.js" }
}

In Manifest V3, Chrome 116 and later allow a service worker to obtain the stream ID and pass it to an offscreen document for consumption. The stream ID is single-use and short-lived, so create the consumer promptly and do not store it for a later browser event. The exact recording pipeline—creating a MediaRecorder, collecting chunks, and closing the stream—belongs in that offscreen document.

Capture stops when the tab closes or the extension closes the media stream. Navigating within that same tab can be covered by the tab-capture flow; opening a separate tab is not the same operation.

Let the user choose a tab, window, or screen

Use getDisplayMedia() when automatic targeting is undesirable or unavailable. Chrome displays a chooser in which the person selects a tab, window, or screen.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
ClearClick Video to USB 1080P Audio Video Capture & Live Streaming Device - Input HDMI, AV, RCA, S-Video, VCR, VHS, Camcorder, Video8, Hi8, DVD, Gaming Systems - USB-C Plug & Play
  • [HDMI Capture] Record or Live Stream Audio & Video at up to 1080P from HDMI Sources up to 4K 30 FPS (NOTE: Does NOT Support HDMI Sources That Are Copyrighted or Content-Protected)
  • [AV & S-Video Capture] Record or Live Stream from Analog Video Sources Such As VCR, VHS, Camcorders, Video8, Hi8, DVD, Gaming Systems (Device Automatic Upscales to HD Resolution)
  • [USB-C Plug & Play] Modern USB-C Plug and Play Interface (Works with Laptops and Desktops - Full Size USB-A Adapter Included)
  • [Software Included] Video Capture & Live Streaming Software & Step By-Step Instructions Included
  • [Compatible with PC, Mac, & Linux] Works with Windows 10/11/12, OS X 11.0 or higher, and Ubuntu 14.04 or higher
const stream = await navigator.mediaDevices.getDisplayMedia({
  video: true,
  audio: true
});

const recorder = new MediaRecorder(stream);
const chunks = [];
recorder.ondataavailable = event => {
  if (event.data.size) chunks.push(event.data);
};
recorder.onstop = () => {
  const blob = new Blob(chunks, { type: recorder.mimeType });
  const url = URL.createObjectURL(blob);
  const link = document.createElement("a");
  link.href = url;
  link.download = "chrome-capture.webm";
  link.click();
  URL.revokeObjectURL(url);
};
recorder.start();

This route requires an explicit user choice. It is useful when the source may be a tab that your extension cannot directly target, but it is not a silent way to follow every newly opened tab.

Permissions, invocation, and browser-controlled pages

tabCapture requires the tabCapture permission, and Chrome expects capture to follow an extension invocation such as clicking its action button. activeTab access applies to the tab associated with that invocation; opening a new tab does not transfer the grant to another tab.

Some browser-controlled pages and restricted contexts are unavailable to extension code. Do not promise that an extension can silently record every URL. If direct capture is rejected, use Chrome’s display-media chooser where supported or ask the user to select an accessible page.

When Chrome supplies a tab media stream, audio from that tab no longer plays locally by default. If the recorder must hear the audio while the user hears it too, implement the local playback-preservation method described in Chrome’s API documentation.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #4
acer USB 3.0 HDMI Capture Card, 4K HDMI Loop-Out, 1080P 60Hz for Streaming
  • 【4K Clarity, 1080P Performance】Enjoy stunning clarity with our USB 3.0 Video Capture Card—featuring 4K input and smooth 1080P@60Hz output. Featuring YUY2 technology, it delivers richer colors than MJPEG for lifelike live streaming and recording. Plus, it delivers high-quality video with minimal latency, making it perfect for gamers and content creators.
  • 【Mic-in for Easy Commentary】Plug in a headset or mic directly to stream/record voice easily—no extra adapters. Great for real-time gaming commentary, online classes, or vlog dubbing. Paired with its low-latency tech, it keeps voice synced perfectly with video, eliminating post-editing hassle from mismatched audio-visuals. Fits most 3.5mm devices—ideal for gamers, teachers, creators.
  • 【Plug and Play, no Extra-Drivers】No extra drivers or external power—just plug in and start capturing instantly. Small and lightweight, it fits easily in your bag for outdoor live streams, on-the-go recordings, or emergencies. Ideal for game capture, video conferences, and online teaching, it saves hassle while delivering smooth results.
  • 【Wide Compatibility: Apps & Devices】No extra adapters—works flawlessly with your go-to platforms and gear. It pairs with streaming/recording apps like Twitter, YouTube, Facebook, OBS, XSplit, and VLC, plus devices including Switch/Switch2, PS5/PS4, Xbox, DSLR cameras, PC, macOS, and Android. Whether gaming, streaming, or hosting video calls, it keeps HD quality intact, eliminating "compatibility headaches".
  • 【Worry-Free After-Sales Support】We are committed to delivering exceptional quality products that combine sophisticated design with affordable pricing, offering you the best solutions for seamlessly connecting your work and life. Whether you're a newcomer or a seasoned user, feel free to reach out anytime with any questions—your satisfaction is our top priority.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Common failures and fixes

The screenshot shows the wrong tab

Cause: the call ran after focus moved to the new tab, or another window was active. Fix: capture immediately while the intended tab is active, pass the correct window ID, and log the tab ID received by the action handler.

tabCapture returns a permission or access error

Cause: the extension was not invoked on that tab, the manifest lacks tabCapture, or the target is restricted. Fix: click the extension action while the source tab is selected, verify the permission, and try getDisplayMedia() for a user-selected source.

The new tab is captured instead of the original

Cause: code queried the active tab after the new tab opened. Fix: retain the original numeric tab ID before creating the new tab and pass it explicitly to the capture flow.

The stream works once, then fails on retry

Cause: a stream ID was reused or allowed to expire. Fix: request a fresh ID for each attempt and hand it to the offscreen consumer immediately.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Best Value
Capture Card 4K HDMI Video Streaming to USB 3.0 1080P 60FPS Capture Device
  • High-Quality Video Capture, 4K HDMI Capture Card Ready: Capture smooth and vibrant video with this 4K HDMI capture card, engineered for gamers and content creators who demand crisp 1080P 60FPS video quality. Whether you're streaming to Twitch or recording gameplay for YouTube, your footage will look professional and detailed
  • Plug-and-Play USB Capture Card, No Drivers Needed: Designed as a USB capture card for streaming, this device works instantly out of the box, just plug into your PC or laptop and start capturing. Fully compatible with popular software like OBS Studio, Streamlabs, and XSplit, making setup quick and stress-free for beginners and pros alike
  • Universal Compatibility PS5, Xbox, Switch & More: Stream or record gameplay from virtually any HDMI-enabled device including Nintendo Switch, PS5, Xbox Series X, DSLR cameras, and PCs. The video capture card for gaming supports seamless passthrough so you can play without lag while your audience watches every frame in real time
  • Low-Latency Performance for Smooth Streaming: This capture card for streaming minimizes delay between gameplay and broadcast, so you get reliable, low-latency capture that works well for competitive gaming, live broadcasts, and podcast sessions. Suitable for those building their channel with high-quality, engaging content
  • Compact & Portable Design for Content Creators: Lightweight and portable, this USB 3.0 capture card works well for creators who travel or switch gaming setups often. Throw it in your bag and stream or record wherever you are, at home, events, LAN parties, streaming or studio sessions

The recording has no local audio

Cause: Chrome changes tab-audio playback when a tab media stream is acquired. Fix: add the documented audio-routing code that preserves local playback, or tell users that recording audio changes what they hear.

Capture ends after navigation

Cause: a content-script display capture is tied to the page lifecycle. Fix: for background capture across navigations, use the MV3 service-worker and offscreen-document pattern, subject to the user invocation requirement.

Reliability and privacy checklist

  • Record the source tab ID and window ID at invocation time.
  • Check that the tab still exists before consuming a stream.
  • Handle cancellation from the display chooser and stop tracks when recording ends.
  • Use a visible start/stop control; do not design around silent capture.
  • Expect restricted browser pages to fail and provide a clear fallback.
  • Keep stream IDs in memory only and discard them after use.

Or skip the browser setup

If your actual goal is a current webpage image—not a live recording of a user’s Chrome session—ScreenshotNeo returns a screenshot or PDF from one HTTP request. It is not a replacement for tabCapture when you need tab audio, cursor state, or an interactive person’s session; it is a simpler server-side option for documenting URLs.

ScreenshotNeo removes cookie/consent banners, newsletter popups, and chat widgets before capture. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers identify the page verdict and billing result. Its MCP server provides take_screenshot, get_page_info, and capture_pdf tools for Claude, Cursor, and other MCP clients. Every plan includes the features; the free plan includes 1,000 screenshots per month without a card, and paid plans start at $5 for 3,000 shots.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

cURL

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

Python

import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)

Node.js

const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);

See the ScreenshotNeo documentation for authentication and options. Sign up free to get 1,000 screenshots a month with no card.

Frequently Asked Questions

Can an extension capture a tab after the user closes it?

No. Capture ends when the target tab closes or the extension closes its media stream; save the recording before closing the tab.

Does capture continue if the user switches to another window?

A visible-tab screenshot must target the active tab at capture time. A tab MediaStream can continue according to the tab-capture lifecycle, but it still depends on the original invocation and target tab remaining available.

Is ScreenshotNeo suitable for recording a live Chrome tab?

No. ScreenshotNeo captures a URL as an image or PDF. Use Chrome’s tabCapture or getDisplayMedia APIs for live audio/video.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.