ScreenshotNeo

BlogScreenshots on your device

How to Record Your Screen in Google Chrome

Record your screen on a Chromebook with ChromeOS Screen Capture, or use Chrome's browser APIs on Windows and macOS.

By the ScreenshotNeo team1 October 20263 min read

Short answer: the built-in screen-recording shortcut documented by Google is a ChromeOS/Chromebook feature. Press Ctrl + Shift + Show windows, choose Screen record, select the full screen, a region, or a window, then start recording. On Windows or macOS, Chrome does not provide the same universal toolbar; use a Chrome extension or a page that calls the browser’s getDisplayMedia() API.

This guide covers both cases, including audio, file locations, permissions, a runnable browser example, troubleshooting, and alternatives.

Record your screen on a Chromebook

1. Open Screen Capture

  1. Press Ctrl + Shift + Show windows. The Show windows key usually has a rectangle with two vertical lines beside it.
  2. If your Chromebook has a dedicated screenshot key, press it instead, or open the system interface and choose Screen Capture.
  3. In the toolbar at the bottom, select Screen record (the video-camera option).

Google’s instructions describe this workflow for ChromeOS, not for the Chrome browser running on every desktop operating system. See the official Chromebook instructions if your keyboard layout differs.

2. Choose what to record

  • Full screen: records everything on the selected display.
  • Partial screen: drag around the area you want. A partial recording can be saved as a WebM video or a GIF.
  • Window: records one application window.

3. Configure audio and optional controls

Open Settings in the Screen Capture toolbar before starting. Depending on your device and ChromeOS version, you can choose device audio, microphone audio, or both. The toolbar may also provide front-camera capture and controls to show clicks and keystrokes.

A connected external microphone can be selected when you need narration. Check that ChromeOS recognizes it before recording.

4. Start and stop

  1. For a full-screen capture, click the screen.
  2. For a partial capture, drag to select the area and confirm.
  3. For a window capture, click the window.
  4. Stop with the on-screen Stop recording control, or press Search + Shift + X.

Recordings are saved in Downloads by default. Screen Capture settings let you choose another folder. ChromeOS also copies screenshots and recordings to the clipboard in supported workflows.

Use Screencast for transcripts, editing, and sharing

Screencast is a separate ChromeOS app rather than the quick Screen Capture toolbar. Google says it is available on ChromeOS devices with Chrome version 104 or later, although an administrator can disable it on managed devices. It can record the full screen, a window, or a region, then provide transcripts, search, translation, trimming, muting, and title overlays. Recordings are stored in Google Drive.

Sharing rules depend on the account. With a personal account, a shared screencast link can be visible to anyone who has the link. Managed work or school accounts generally limit access to people in the managed domain who have the link. Check the sharing setting before sending a recording.

Choose Best for Storage and sharing
Screen Capture A quick local video or GIF Downloads by default; folder can be changed
Screencast Lessons, demos, transcripts, search, and light editing Google Drive; access depends on account sharing settings

Record a Chrome tab, window, or screen on Windows or macOS

Chrome on a non-Chromebook computer does not expose the Chromebook shortcut as a universal browser control. A web page or extension can request capture with navigator.mediaDevices.getDisplayMedia(). The browser then shows a permission picker so the user chooses a tab, window, or screen.

Complete runnable example

Save this as screen-recorder.html and open it from a secure context (HTTPS or http://localhost). The buttons must be clicked by the user; browsers block display capture started automatically.

<!doctype html>
<html lang="en">
<meta charset="utf-8">
<title>Chrome screen recorder</title>
<button id="start">Choose screen and start</button>
<button id="stop" disabled>Stop</button>
<a id="download" hidden>Download recording</a>
<script>
let recorder;
let chunks = [];

const start = document.querySelector('#start');
const stop = document.querySelector('#stop');
const download = document.querySelector('#download');

start.onclick = async () => {
  try {
    const stream = await navigator.mediaDevices.getDisplayMedia({
      video: { frameRate: 30 },
      audio: true
    });

    chunks = [];
    recorder = new MediaRecorder(stream, { mimeType: 'video/webm' });
    recorder.ondataavailable = event => {
      if (event.data.size > 0) chunks.push(event.data);
    };
    recorder.onstop = () => {
      const blob = new Blob(chunks, { type: 'video/webm' });
      const url = URL.createObjectURL(blob);
      download.href = url;
      download.download = 'chrome-screen-recording.webm';
      download.hidden = false;
      download.textContent = 'Download recording';
    };
    stream.getVideoTracks()[0].addEventListener('ended', () => {
      if (recorder.state !== 'inactive') recorder.stop();
      stop.disabled = true;
    });
    recorder.start(1000);
    start.disabled = true;
    stop.disabled = false;
  } catch (error) {
    console.error(error);
    alert(`Capture failed: ${error.name}: ${error.message}`);
  }
};

stop.onclick = () => {
  recorder.stop();
  recorder.stream?.getTracks().forEach(track => track.stop());
  start.disabled = false;
  stop.disabled = true;
};
</script>

The API and permission behavior are documented in Chrome's screen-capture documentation. Some browsers do not accept every codec or option, so check MediaRecorder.isTypeSupported() and fall back to a supported MIME type when necessary.

Adding microphone narration

getDisplayMedia() controls the shared display stream. If you need a microphone as well, request it separately and mix the tracks:

const display = await navigator.mediaDevices.getDisplayMedia({ video: true, audio: true });
const mic = await navigator.mediaDevices.getUserMedia({ audio: true });
const mixed = new MediaStream([
  ...display.getVideoTracks(),
  ...display.getAudioTracks(),
  ...mic.getAudioTracks()
]);
const recorder = new MediaRecorder(mixed);

Whether tab or system audio is available depends on the browser, operating system, and source selected in the permission dialog.

Or skip the browser setup

If you need a still image of a web page rather than a video recording, ScreenshotNeo captures it with one HTTP request. Its consent step accepts cookie banners and removes more than 60 known consent platforms, newsletter popups, and chat widgets before the shot. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers identify the page verdict and billing result.

See the ScreenshotNeo API documentation for all options, including full-page capture, device presets, custom viewport and retina scale, dark mode, CSS selectors, custom CSS and JavaScript, clicks, waits, request blocking, headers, cookies, user agents, geolocation, PDFs, caching, signed links, asynchronous jobs, bulk capture, and usage reporting.

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,
)
r.raise_for_status()
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}`);
if (!res.ok) throw new Error(`Screenshot failed: ${res.status}`);
const data = Buffer.from(await res.arrayBuffer());
require('fs').writeFileSync('shot.webp', data);

ScreenshotNeo also provides an MCP server with take_screenshot, get_page_info, and capture_pdf tools for Claude, Cursor, and other MCP clients. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000. Create a free ScreenshotNeo account.

Common problems and fixes

Problem Likely cause Fix
The Chromebook shortcut does nothing The key is different on your model, or you are using Chrome on Windows/macOS Use the dedicated screenshot key or system interface on ChromeOS. On other systems, use getDisplayMedia() or an extension.
No Screen record option Screen Capture is not open, or ChromeOS policies restrict it Open Screen Capture from the system menu and check administrator restrictions.
No microphone or tab audio The source was not enabled, permission was denied, or the platform does not expose that audio Open Screen Capture settings, choose the microphone/device audio, and grant permission. Test the selected source first.
The browser example throws NotAllowedError The user cancelled the picker, denied permission, or capture was not triggered by a click Start from a user gesture and choose a source in the picker.
SecurityError or unavailable API The page is not in a secure context Serve it over HTTPS or use http://localhost.
Recording stops when the shared window closes The selected display track ended Choose another source or handle the track's ended event and save the data collected so far.
Recording will not play The chosen MIME type is unsupported Check MediaRecorder.isTypeSupported() and use a supported WebM or browser-supported type.
Screencast link exposes the recording Link sharing is broader than intended Review Drive/Screencast sharing before sending; personal links may be visible to anyone with the link.
ScreenshotNeo returns an error Invalid key, URL, timeout, or target blocking automation Check the access key and URL, inspect X-Page-Verdict and X-Billed, then adjust waits, headers, cookies, or user agent using the docs.

Quality, performance, and privacy checklist

  • Close unrelated tabs and notifications before recording.
  • Choose a fixed window or region when you do not want private content captured.
  • Use 30 frames per second for ordinary demonstrations; higher rates create larger files.
  • Keep the device plugged in for long recordings and verify free disk space.
  • Make a short test recording to confirm microphone level and system audio.
  • Do not share recordings containing passwords, private messages, personal data, or confidential tabs.
  • For Screencast, verify the audience before copying the link.
  • For browser code, revoke object URLs after downloads in a long-running app and stop every media track when finished.

FAQ

Can I record Chrome with the Chromebook shortcut on Windows?

No. That shortcut belongs to ChromeOS Screen Capture. Windows and macOS users need a browser API, extension, or operating-system recorder.

Can Chrome record only one tab?

Yes, when the getDisplayMedia() picker offers tab capture and you select that tab. The exact choices depend on the browser and platform.

Where are Chromebook recordings saved?

Downloads is the default location. Screen Capture settings let you select another folder.

Does a GIF include audio?

No. The Chromebook partial-screen GIF option does not include audio or video input.

Is ScreenshotNeo a video recorder?

No. ScreenshotNeo captures web pages as PNG, JPEG, WebP, or PDF. It is useful when your deliverable is a page image or document instead of a screen video.