# Meeting Recording & Notes
## How It Works
```
Debian laptop Linux workstation (Brain)
───────────── ──────────────────────────
OBS records meeting → ~/meetings/ Syncthing auto-syncs file
→ Whisper transcribes audio
→ Frames extracted from video
→ Claude analyzes visuals
→ Structured notes delivered
```
## Setup — Laptop Side (One-Time)
### 1. Install OBS Studio
```bash
sudo apt install obs-studio
```
### 2. Configure OBS Sources
**New Scene → Add Sources:**
| Source | Type | Settings |
|---|---|---|
| Screen | Screen Capture (PipeWire) | Select your display |
| Audio | Monitor Audio Capture (PipeWire) | Select "Built-in Audio Analog Stereo Monitor" |
> **Important:** Make sure "Monitor Audio" is selected, not just "Mic". The monitor captures everything you hear through speakers/headphones — the meeting audio. Mic is optional if you want your own voice separate.
### 3. Recording Settings
`Settings → Output → Recording:`
| Setting | Value |
|---|---|
| Type | Standard |
| Recording Path | `~/meetings/` |
| Recording Format | `mkv` |
| Video Bitrate | `5000` Kbps (enough for UI detail) |
| Audio Bitrate | `192` Kbps |
> **Why MKV?** If OBS crashes mid-recording, MKV files are recoverable. MP4 gets corrupted. You can remux to MP4 after: `ffmpeg -i recording.mkv -c copy recording.mp4`
### 4. Syncthing Folder
On the laptop, add a new folder:
| Field | Value |
|---|---|
| Folder ID | `meetings` |
| Folder Path | `~/meetings/` |
| Device | Brain (IT3C62R-...) |
This mirrors the `incoming` folder on the workstation. When OBS drops a recording here, it syncs automatically.
## Workflow — Each Meeting
### Before the meeting
1. Open OBS → verify sources are showing screen + audio
2. Hit **Record**
3. Join meeting as normal
### After the meeting
1. Hit **Stop Recording** in OBS
2. OBS saves to `~/meetings/`
3. Syncthing syncs to workstation
4. Tell me: *"Meeting recorded — process it"*
5. I run the pipeline → you get notes on Telegram
### What I Deliver
```
MEETING NOTES — [Date]
TIMELINE
───────────────────────────────────────────
[00:00] Speaker introduces topic
[02:15] Screen share: opens Application X
[04:30] Demo: showing integration flow A → B
...
WHAT WAS SHOWN
───────────────────────────────────────────
• App X: [description of what was demonstrated]
• Integration: [how components connected]
• Issues: [any bugs or problems observed]
DECISIONS
───────────────────────────────────────────
• [Decision 1]
• [Decision 2]
ACTION ITEMS
───────────────────────────────────────────
• [Task] — [Owner] — [Deadline]
OPEN QUESTIONS
───────────────────────────────────────────
• [Question that needs follow-up]
```
## Processing Script
Located at `~/meetings/process_meeting.py` on the workstation.
```bash
source ~/.venvs/meeting-notes/bin/activate
python3 ~/meetings/process_meeting.py /path/to/recording.mkv
```
Outputs:
- Transcript (JSON) with timestamps
- Key frames (JPG) from scene changes
- Draft notes (Markdown)
- Vision prompt for Claude delegation
## Troubleshooting
### OBS not capturing system audio
- Check `Settings → Audio → Desktop Audio` is not set to "Disabled"
- In the Sources panel, verify the Monitor Audio source shows levels moving
- On GNOME, you may need to set "Output Device" in OBS to match your active output
### Syncthing not syncing
- Check Syncthing GUI (`http://127.0.0.1:8384` on either machine)
- Verify both sides show the "Meetings" folder as connected
- Large files sync fine — no size limit on local network
### Video too large
- 1 hour at 5000 Kbps ≈ ~2.25 GB video + ~50 MB audio
- For longer meetings, reduce video bitrate to 2500 Kbps
- Audio is the important part for transcription; video is only for frame extraction