Smart Windows meeting recorder with per-app audio capture, voice-activity detection, and local/cloud transcription. Used by vaultlab as the meeting-context layer.
Project description
vaultlab-meetings
Smart Windows meeting recorder with per-app audio capture, voice-activity detection, and local-or-cloud transcription. Originally built standalone; now also serves as the meeting-context layer for vaultlab.
Install name:
vaultlab-meetings(PyPI) Import name:meeting_recorder(Python)
pip install vaultlab-meetings
import meeting_recorder
The split is intentional — meeting-recorder was already taken on PyPI, so the package ships under the vaultlab-meetings name while keeping the original import name for stability across existing scripts.
What it does
- Captures per-app audio on Windows (Zoom, Teams, browser-based meetings, anything that goes through Windows audio)
- Voice-activity detection trims silence and skips empty stretches
- Local transcription via faster-whisper or cloud via OpenAI
- Optional speaker diarization via pyannote.audio
- System-tray app with hotkey controls; saves recordings + transcripts to a configurable folder
- Optional Outlook calendar integration: auto-tags recordings with the meeting that was on your calendar
Install
Base install (recording only, no transcription backend):
pip install vaultlab-meetings
With local transcription (faster-whisper + torch):
pip install "vaultlab-meetings[local]"
With cloud transcription (OpenAI Whisper API):
pip install "vaultlab-meetings[cloud]"
With Outlook calendar tagging (Windows + Outlook Classic):
pip install "vaultlab-meetings[outlook]"
Combine extras as needed: pip install "vaultlab-meetings[local,outlook,gdrive]".
Quick start
meeting-recorder
Drops a tray icon. Hotkeys (configurable in config.toml):
- Start/stop recording
- Mark a moment (saves a timestamped flag in the transcript)
- Open the recordings folder
Recordings + transcripts land at the path set in config.toml (default: ~/MeetingRecordings/).
Use from vaultlab
When vaultlab[meetings] is installed (which pulls vaultlab-meetings), vaultlab's vaultlab.context.meetings module wraps this package and ingests transcripts into your KB:
from vaultlab.context.meetings import is_available, start_recording
if is_available():
start_recording(project="codex-pdac")
Transcripts land at <kb>/Sources/Meetings/<YYYY-MM-DD>-<slug>.md with frontmatter (date, attendees, project, recording_path, duration, transcription_model) so they're searchable from any vaultlab slash command.
Platform
Currently Windows-only. Per-app audio capture relies on PyAudioWPatch, pycaw, and mss, which are Windows-specific. macOS/Linux support is planned via a different recording backend; PRs welcome.
License
MIT. See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vaultlab_meetings-0.1.0.tar.gz.
File metadata
- Download URL: vaultlab_meetings-0.1.0.tar.gz
- Upload date:
- Size: 497.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
909ad41260ab123c9eb7117e07d582f6611b001c71053721789efd47931c009f
|
|
| MD5 |
5548534fcdcd5eab664ecbddd272b94d
|
|
| BLAKE2b-256 |
0017592f1296f60df4d0283969052d1402e300b7d77b80a1e66851ba54f7222e
|
Provenance
The following attestation bundles were made for vaultlab_meetings-0.1.0.tar.gz:
Publisher:
publish.yml on bobbyni819/meeting-recorder
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vaultlab_meetings-0.1.0.tar.gz -
Subject digest:
909ad41260ab123c9eb7117e07d582f6611b001c71053721789efd47931c009f - Sigstore transparency entry: 1411518766
- Sigstore integration time:
-
Permalink:
bobbyni819/meeting-recorder@4034d294c96f61004318d9ddb6046c7b847e9ae2 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/bobbyni819
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4034d294c96f61004318d9ddb6046c7b847e9ae2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file vaultlab_meetings-0.1.0-py3-none-any.whl.
File metadata
- Download URL: vaultlab_meetings-0.1.0-py3-none-any.whl
- Upload date:
- Size: 395.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
df885b147e0df7e51204dbe8883e2900fd43474444715d67c55ea757d5150d68
|
|
| MD5 |
e19bd0b49c1305d92e16080552080fd3
|
|
| BLAKE2b-256 |
56e0df341b510a0d7805165b07838b0c7b4b77e726c98837ea04b0a35746d909
|
Provenance
The following attestation bundles were made for vaultlab_meetings-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on bobbyni819/meeting-recorder
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vaultlab_meetings-0.1.0-py3-none-any.whl -
Subject digest:
df885b147e0df7e51204dbe8883e2900fd43474444715d67c55ea757d5150d68 - Sigstore transparency entry: 1411518860
- Sigstore integration time:
-
Permalink:
bobbyni819/meeting-recorder@4034d294c96f61004318d9ddb6046c7b847e9ae2 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/bobbyni819
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4034d294c96f61004318d9ddb6046c7b847e9ae2 -
Trigger Event:
push
-
Statement type: