skrylkovs/trippi-oss

Reference build of Trippi's browser-audio-capture pipeline: MV3 tabCapture -> offscreen AudioWorklet -> Deepgram STT -> DeepL MT, live translated captions on Meet/Zoom/Teams. No backend, no account -- bring your own API keys.

0

stars

2

commits

JavaScript

primary language

Aug 28, 2026

updated

chrome-extension
deepgram
deepl
google-meet
live-captions
manifest-v3
meeting-transcription
microsoft-teams
speech-to-text
tabcapture
translation
zoom

README

Trippi — Direct (BYO-key reference build)

The capture trick behind Trippi — open. A reference build: tabCapture + offscreen AudioWorklet → Deepgram STT → DeepL MT. No backend, no account — bring your own keys.

Real-time translated live captions on top of Google Meet, Zoom, and Microsoft Teams calls — the original speech on top, the translation underneath, with per-speaker attribution. No Google Workspace or Teams Premium plan required, no bot joins the call, and no sign-up. It's built for people on personal or free accounts, and for small teams with no built-in call-translation feature, who still want captions without giving a bot a seat in the meeting. Instead of scraping a platform's own captions, it does its own tab-audio capture and runs its own speech-to-text + translation pipeline.

Why this is open

This is a trimmed reference build of the core technique — tabCapture + an offscreen AudioWorklet + a pluggable STT/MT pipeline — not a crippled trial. It's fully functional with your own Deepgram and DeepL API keys, just without Trippi's hosted backend, account system, or free-tier quota.

Quick start

  1. Clone or download this repository.
  2. Open chrome://extensions and enable Developer mode.
  3. Click Load unpacked and point it at this folder.
  4. Open the extension's Options page and paste a Deepgram API key and a DeepL API key.
  5. Join a Google Meet, Zoom, or Microsoft Teams call, open the popup, and press Start captions.

Architecture

  • src/offscreen/offscreen.js + src/offscreen/pcm-worklet.js — tab-audio capture via an AudioWorklet. No bot, no screen share: Chrome's tabCapture API hands the extension the tab's own audio stream directly.
  • src/engine/streaming-engine.js — the direct pipeline: audio frames stream straight over a WebSocket to Deepgram for speech-to-text, and finished phrases go to DeepL for translation.
  • src/content/overlay.js — the caption overlay, rendered in a Shadow DOM on top of the call page so the host page's styles can't clash with it (and vice versa).

Bring your own keys

Everything runs straight from your browser to Deepgram and DeepL — no server in between. Grab a key from Deepgram (speech-to-text) and DeepL (translation), paste them into the extension's Options page, and you're set. Your calls, your keys — nothing about either goes anywhere else.

Want it without managing your own API keys?

Trippi's hosted version does the same capture-and-caption trick, with a managed backend, a generous free tier, and priority support — no keys to find, rotate, or pay for separately.

gettrippi.app

License

MIT — see LICENSE.

Contributors

skrylkovs

2 commits

skrylkovs/trippi-oss

Reference build of Trippi's browser-audio-capture pipeline: MV3 tabCapture -> offscreen AudioWorklet -> Deepgram STT -> DeepL MT, live translated captions on Meet/Zoom/Teams. No backend, no account -- bring your own API keys.

0

stars

2

commits

JavaScript

primary language

Aug 28, 2026

updated

chrome-extension
deepgram
deepl
google-meet
live-captions
manifest-v3
meeting-transcription
microsoft-teams
speech-to-text
tabcapture
translation
zoom

README

Trippi — Direct (BYO-key reference build)

The capture trick behind Trippi — open. A reference build: tabCapture + offscreen AudioWorklet → Deepgram STT → DeepL MT. No backend, no account — bring your own keys.

Real-time translated live captions on top of Google Meet, Zoom, and Microsoft Teams calls — the original speech on top, the translation underneath, with per-speaker attribution. No Google Workspace or Teams Premium plan required, no bot joins the call, and no sign-up. It's built for people on personal or free accounts, and for small teams with no built-in call-translation feature, who still want captions without giving a bot a seat in the meeting. Instead of scraping a platform's own captions, it does its own tab-audio capture and runs its own speech-to-text + translation pipeline.

Why this is open

This is a trimmed reference build of the core technique — tabCapture + an offscreen AudioWorklet + a pluggable STT/MT pipeline — not a crippled trial. It's fully functional with your own Deepgram and DeepL API keys, just without Trippi's hosted backend, account system, or free-tier quota.

Quick start

  1. Clone or download this repository.
  2. Open chrome://extensions and enable Developer mode.
  3. Click Load unpacked and point it at this folder.
  4. Open the extension's Options page and paste a Deepgram API key and a DeepL API key.
  5. Join a Google Meet, Zoom, or Microsoft Teams call, open the popup, and press Start captions.

Architecture

  • src/offscreen/offscreen.js + src/offscreen/pcm-worklet.js — tab-audio capture via an AudioWorklet. No bot, no screen share: Chrome's tabCapture API hands the extension the tab's own audio stream directly.
  • src/engine/streaming-engine.js — the direct pipeline: audio frames stream straight over a WebSocket to Deepgram for speech-to-text, and finished phrases go to DeepL for translation.
  • src/content/overlay.js — the caption overlay, rendered in a Shadow DOM on top of the call page so the host page's styles can't clash with it (and vice versa).

Bring your own keys

Everything runs straight from your browser to Deepgram and DeepL — no server in between. Grab a key from Deepgram (speech-to-text) and DeepL (translation), paste them into the extension's Options page, and you're set. Your calls, your keys — nothing about either goes anywhere else.

Want it without managing your own API keys?

Trippi's hosted version does the same capture-and-caption trick, with a managed backend, a generous free tier, and priority support — no keys to find, rotate, or pay for separately.

gettrippi.app

License

MIT — see LICENSE.

Contributors

skrylkovs

2 commits

Languages

JavaScript

91.9%

CSS

4.1%

HTML

4.0%