A Chrome extension that records Google Meet calls with both your microphone and computer audio (remote participants) merged into a single .webm file — no virtual audio drivers required.
- Click the extension icon on a Google Meet tab
- Click Start Recording — Chrome asks for mic permission once
- Both your mic and the Meet tab audio are captured and mixed in real time
- Click Stop & Save — the recording downloads automatically to your Downloads folder
- Google Chrome (version 116 or later)
- Node.js (only needed to run tests or regenerate icons)
- Clone or download this repository to your machine
- Open Chrome and navigate to
chrome://extensions - Enable Developer mode using the toggle in the top-right corner
- Click Load unpacked
- Select the project folder (
chrome-extension/) - The Meet Recorder icon (purple circle) will appear in your Chrome toolbar
If you don't see the icon, click the puzzle piece icon in the toolbar and pin Meet Recorder.
- Open a Google Meet call at
https://meet.google.com - Click the Meet Recorder icon in the toolbar
- Click ⏺ Start Recording
- Grant microphone access when Chrome prompts (first time only)
- The popup switches to the recording view with a live timer
- When done, click ⏹ Stop & Save
- The file
meet-recording-YYYY-MM-DD-HH-MM.webmdownloads automatically to your Downloads folder - Open the file in VLC, QuickTime, or any media player — both your voice and remote participants will be audible
npm installnpm test10 unit tests covering formatTime and generateFilename.
node create-icons.jsRecreates icons/icon-16.png, icons/icon-48.png, and icons/icon-128.png (purple circle on dark background).
manifest.json Extension config and permissions (Manifest V3)
background.js Service worker — coordinates recording, manages offscreen document
offscreen.html Hidden document host for audio processing
offscreen.js Captures tab + mic audio, mixes via Web Audio API, records as WebM
popup.html Extension popup UI (3 states: idle, recording, saved)
popup.js Popup logic — start/stop, live timer, state sync
utils.js Pure utilities: formatTime, generateFilename
utils.test.js Jest unit tests
create-icons.js Dev script to generate PNG icons
icons/ Extension icons (16×16, 48×48, 128×128)
- Recording quality depends on the browser's Opus encoder (~64 kbps by default)
- The extension only activates on
meet.google.comtabs - Very long recordings (> 1 hour) may produce large files; disk space is the only constraint
- If the Meet tab is closed mid-recording, the recording stops automatically and saves whatever was captured