Skip to content

Repository files navigation

MeetScribe Client

Десктоп-клиент для MeetScribe: одновременно записывает микрофон и системный звук в два отдельных трека, встраивает web UI и загружает записи в него. Авторизация — вход на встроенном сайте (cookie переживает перезапуск).

Запуск

npm install
npm start

Адрес сервера настраивается в панели (по умолчанию http://127.0.0.1:8080).

Как это работает

  • Захват системного звука — setDisplayMediaRequestHandler + audio: 'loopback' (Chromium):
    • Windows — WASAPI loopback. Захват не следует за сменой устройства вывода по умолчанию — при подозрительной тишине панель предложит «Переподключить».
    • macOS 14.2+ — CoreAudio process tap; нужно разрешение «Запись системного звука» (не «Запись экрана»). На 13.0–14.1 автоматически откатываемся на ScreenCaptureKit.
    • Linux — монитор дефолтного sink через PulseAudio/pipewire-pulse (флаг PulseaudioLoopbackForScreenShare); сам следует за сменой sink.
  • Оба канала пишутся MediaRecorder'ами (webm/opus) чанками по 3 с на диск (userData/recordings/<stamp>/) — при краше теряется не больше 3 с, запись попадает в «Незагруженные».
  • Загрузка: POST /api/session + multipart в /api/session/{id}/tracks из main-процесса с cookie сайта; при повторе после сбоя догружаются только отсутствующие файлы.

Сборка дистрибутивов

npm run dist

Windows: nsis; macOS: dmg/zip (подпись/нотаризация не настроены); Linux: AppImage/deb.

Поддержка

Windows 10+, macOS 13+ (полноценно — 14.2+), Linux с PulseAudio или PipeWire. При бампе Electron обязательно проверять, что loopback даёт не-тишину на всех трёх ОС.

About

Desktop client for MeetScribe: records mic + system audio, uploads to the web UI

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages