Privacy Policy — Transcripta Browser Extension

Last updated: 2026-05-12 · Extension version: 2.0.0 · Contact: support@transcripta.ru

This page is the public mirror of the Transcripta browser extension privacy policy. The canonical version lives in the extension repository at PRIVACY_POLICY.md. If the two diverge, the version in the repository is authoritative.


English version

1. Who we are

Transcripta ("we", "us") is a SaaS platform for recording and AI-based transcription of audio and video. The Transcripta browser extension (cghnjkcehengejbgdglcmjbdlfbdfmkh) is a companion to the web application hosted at https://app.transcripta.ru (production) and https://app.staging.transcripta.ru (staging). The extension does not work as a stand-alone product — it requires an authenticated Transcripta account.

2. What data the extension handles

  • Audio recordings — captured from the user's microphone via the standard getUserMedia browser API after explicit user consent. Used solely to produce a transcript of the recorded session.
  • Screen recordings — captured via getDisplayMedia after the user selects a tab/window/screen to share. Used solely to produce a transcript and to associate it with a recorded session.
  • Authentication token (JWT) — read from the Transcripta web app's localStorage by the extension's content script. Used to authenticate recording uploads against the Transcripta backend. Not transmitted anywhere except to the Transcripta backend.
  • User email — read from the same authenticated session and shown in the extension popup so the user can verify which account is active.
  • Recording state metadata — non-sensitive UI state (recording mode, timer, processing status). Stored locally for popup state continuity.

The extension does not collect: browsing history, page contents outside of Transcripta domains, cookies, financial data, location, contacts, keystrokes, mouse activity, or any third-party-site data.

3. Browser permissions and why we need them

PermissionWhy we need it
storagePersist UI state (recording mode, timer), the JWT token, and tokenExpiry in chrome.storage.local. Necessary to survive popup close/reopen and service-worker shutdown.
tabsDetect whether a Transcripta tab (app.transcripta.ru or app.staging.transcripta.ru) is open. Used to (a) decide whether to redirect to login and (b) pick the active environment. We do not read tab URLs of unrelated sites.
offscreenManifest V3 service workers cannot host MediaRecorder. The extension creates an offscreen document to run MediaRecorder in the background while the popup is closed.
notificationsShow a system notification when a long upload completes or fails, so the user does not have to keep the popup open.
scriptingProgrammatically inject the floating recording widget (widget.js) into the currently active browser tab when recording starts. The widget lets the user control recording (pause/stop/minimize) without returning to the popup.
activeTabGrant temporary access to the active tab's URL so the extension can inject the floating widget only when recording is active. The permission is ephemeral and does not persist.

Host permissions: https://app.transcripta.ru/* and https://app.staging.transcripta.ru/* — required to inject the content script (read JWT) and to upload recordings to the backend. The extension does not request <all_urls>, webRequest, cookies, history, bookmarks, geolocation, or any other broad permission.

4. Data flow

  1. User signs in to app.transcripta.ru (or staging) in a regular browser tab.
  2. The extension's content script reads the JWT token from the page's localStorage and sends it to the extension service worker.
  3. The service worker stores the token and its tokenExpiry in chrome.storage.local (local to the user's browser profile).
  4. When the user starts a recording, a floating widget is injected into the current browser tab to provide recording controls (pause/stop/minimize). Simultaneously, the offscreen document captures audio and/or screen via standard browser APIs.
  5. Audio/video chunks are uploaded over HTTPS to the Transcripta backend (/api/transcribe) using the stored JWT.
  6. The backend transcribes the recording. The transcript appears in the user's Transcripta web account.
  7. On 401 Unauthorized the extension clears its stored auth and prompts the user to sign in again.

5. Where data is sent

User data leaves the user's machine only to one destination: the Transcripta backend at https://app.transcripta.ru (production) or https://app.staging.transcripta.ru (staging). The extension does not send data to any third party, advertising network, analytics provider, or external transcription provider. Transcripta processes audio internally through its own AI pipeline.

6. Retention

  • Locally stored data (token, UI state) lives in chrome.storage.local. It is removed when the user uninstalls the extension or clears browser data. The token is also cleared when it expires or when the backend returns 401 Unauthorized.
  • Recordings and transcripts are stored in the user's Transcripta account on the Transcripta backend, subject to the main Transcripta privacy policy. Users can delete their recordings and transcripts at any time from the web application, or contact support@transcripta.ru for account deletion.

7. Third parties

The extension does not load remote code, does not embed analytics SDKs, and does not communicate with any third party. All scripts are bundled in the extension package and the content_security_policy is script-src 'self'; object-src 'self'.

8. Data sold or shared

We do not sell user data. We do not share user data with third parties for advertising, profiling, or any unrelated purpose.

9. Children

The service is not directed at children under 13. We do not knowingly collect data from children under 13.

10. Changes to this policy

When this policy changes, the "Last updated" date is updated. The canonical version lives in the extension repository. Material changes are also reflected in the corresponding extension version's release notes.

11. Contact

For privacy-related questions, data deletion, or any complaint: support@transcripta.ru.


Русская версия

1. О нас

Transcripta — SaaS-сервис для записи и автоматической транскрипции аудио/видео. Браузерное расширение Transcripta (cghnjkcehengejbgdglcmjbdlfbdfmkh) дополняет веб-приложение https://app.transcripta.ru (prod) и https://app.staging.transcripta.ru (staging). Расширение не работает самостоятельно — нужен авторизованный аккаунт Transcripta.

2. Какие данные обрабатывает расширение

  • Аудиозаписи — захватываются с микрофона через getUserMedia после явного согласия пользователя. Используются только для построения транскрипта.
  • Запись экрана — захватывается через getDisplayMedia после того, как пользователь сам выбрал вкладку/окно/экран. Используется только для построения транскрипта и привязки к сессии записи.
  • Токен авторизации (JWT) — читается content-скриптом из localStorage страницы Transcripta. Используется только для аутентификации загрузок на backend Transcripta.
  • Email пользователя — читается из той же авторизованной сессии и показывается в попапе.
  • Состояние UI — нечувствительные данные о текущем режиме записи и таймере. Хранятся локально для непрерывности UX.

Расширение не собирает: историю браузера, содержимое страниц вне доменов Transcripta, cookies, финансовые данные, геолокацию, контакты, нажатия клавиш, движения мыши, данные сторонних сайтов.

3. Разрешения браузера

РазрешениеЗачем нужно
storageСохранять состояние UI, JWT-токен и tokenExpiry в chrome.storage.local. Нужно для переживания закрытия попапа и остановки service worker.
tabsОпределить, открыта ли вкладка Transcripta. Это нужно, чтобы показать редирект на логин и выбрать активное окружение (prod/staging). URL посторонних сайтов мы не читаем.
offscreenВ Manifest V3 нельзя запустить MediaRecorder в service worker. Расширение создаёт offscreen-документ и в нём ведёт запись, пока попап закрыт.
notificationsПоказать системное уведомление, когда длинная загрузка завершилась или упала.
scriptingПрограммно инжектировать плавающий виджет записи (widget.js) в активную вкладку браузера при старте записи. Виджет позволяет управлять записью (пауза/стоп/свернуть) без возврата в попап.
activeTabВременный доступ к URL активной вкладки для инъекции виджета только во время записи. Разрешение используется эфемерно.

Host-разрешения: https://app.transcripta.ru/* и https://app.staging.transcripta.ru/* — нужны для инъекции content-скрипта (чтение JWT) и для загрузки записей на backend. Расширение не запрашивает <all_urls>, webRequest, cookies, history, bookmarks, geolocation.

4. Поток данных

  1. Пользователь логинится на app.transcripta.ru в обычной вкладке.
  2. Content-скрипт читает JWT из localStorage страницы и передаёт его в service worker расширения.
  3. Service worker сохраняет токен и tokenExpiry в chrome.storage.local.
  4. При старте записи плавающий виджет инжектируется в текущую вкладку браузера для управления записью (пауза/стоп/свернуть). Одновременно offscreen-документ захватывает аудио/экран стандартными API браузера.
  5. Чанки загружаются по HTTPS на backend (/api/transcribe) с JWT в заголовке.
  6. Backend транскрибирует запись. Транскрипт появляется в личном кабинете пользователя.
  7. При 401 Unauthorized расширение очищает токен и предлагает пользователю снова авторизоваться.

5. Куда уходят данные

Данные пользователя уходят с устройства только на backend Transcripta (https://app.transcripta.ru для prod, https://app.staging.transcripta.ru для staging). Расширение не отправляет данные в третьи стороны, рекламные сети, аналитические сервисы или внешние транскрипционные провайдеры. Аудио обрабатывается внутренним AI-конвейером Transcripta.

6. Хранение

  • Локальные данные (токен, состояние UI) хранятся в chrome.storage.local. Удаляются при удалении расширения или очистке данных браузера. Токен также удаляется по истечении срока или при 401 Unauthorized.
  • Записи и транскрипты хранятся в аккаунте пользователя на стороне backend Transcripta, согласно основной политике конфиденциальности. Пользователь может удалить записи в личном кабинете или запросить удаление аккаунта по адресу support@transcripta.ru.

7. Третьи стороны

Расширение не загружает удалённый код, не подключает аналитику и не общается со сторонними сервисами. Все скрипты входят в пакет расширения, content_security_policy script-src 'self'; object-src 'self'.

8. Продажа и передача данных

Мы не продаём данные пользователей. Мы не передаём данные третьим сторонам для рекламы, профилирования или иных не связанных с сервисом целей.

9. Дети

Сервис не предназначен для детей до 13 лет. Мы сознательно не собираем данные детей до 13 лет.

10. Изменения политики

При изменении политики обновляется поле "Last updated". Канонический файл — в репозитории расширения. Существенные изменения отражаются в release notes соответствующей версии расширения.

11. Контакт

Вопросы по конфиденциальности, удаление данных, жалобы: support@transcripta.ru.