Landing page: https://fgbm.github.io/tabaudio-forge/
TabAudio Forge is a minimal Manifest V3 extension for Chrome and Edge that records audio from the active browser tab and saves it locally as a WebM file.
The MVP uses chrome.tabCapture.getMediaStreamId(), an offscreen document, and MediaRecorder. The default recording target is audio/webm;codecs=opus, with a fallback to audio/webm if Opus is not reported as supported by the browser.
- Record audio from the active tab.
- Start, pause, resume, and stop from a small popup.
- Keep recording after the popup is closed.
- Save the result with
chrome.downloads.download. - English and Russian UI through Chrome's built-in extension i18n.
- No external services, accounts, ads, analytics, or telemetry.
- No host permissions.
- Open
chrome://extensionsoredge://extensions. - Enable Developer mode.
- Click Load unpacked.
- Select this repository folder.
- Open a tab with audio, click the TabAudio Forge action, and press Start.
Validate and package the extension with:
npm run validate
npm run packageRelease automation, GitHub Pages deployment, and Chrome Web Store publication are described in
RELEASE.md.
Files are named like:
tabaudioforge_untitled-tab_2026-04-29_13-55-00.webm
If the active tab title is available to the extension, it is sanitized and included in the filename. Otherwise untitled-tab is used.
- Audio is processed locally on the device.
- Audio is not uploaded anywhere.
- The extension does not initiate network requests.
- The captured stream is used only for local recording and download.
- This records browser tab audio, not full system audio.
- Protected or DRM-backed media may behave unpredictably.
- "No artificial limit" means the extension does not impose a fixed recording duration. Actual limits still depend on browser stability, memory, Blob size, available disk space, and the current tab session.
- Long recordings are buffered as chunks in the extension's local IndexedDB storage and assembled into a final Blob on Stop. Peak memory still rises during final file assembly, so browser stability, Blob size, and disk space remain practical limits.
- PCM/lossless format selection is intentionally outside this MVP.
tabCapture: capture audio from the active tab.offscreen: keepMediaRecorderrunning outside the popup.downloads: save the resulting.webmfile locally.activeTab: read the active tab title and URL after the user starts recording.storage: keep recording state across Manifest V3 service worker restarts.alarms: clean up temporary offscreen resources after downloads.
The extension uses Chrome extension i18n files:
_locales/en/messages.json_locales/ru/messages.json
Chrome or Edge selects the UI language from the browser locale. English is the default locale.
MIT