Zoom MyNotes Sync
approvedby Daemon Behr
Deploy and run Zoom Notes transcript sync into this vault (Python + Playwright backend). - This plugin has not been manually reviewed by Obsidian staff.
Zoom MyNotes Sync
Obsidian desktop plugin that deploys and controls a Python + Playwright backend to download Zoom AI Companion / My Notes transcripts into your vault.
| Plugin ID | zoom-mynotes-sync |
| Platform | Obsidian desktop on Windows, macOS, and Linux (isDesktopOnly) |
| Repo | script-repo/Zoom-MyNotes-Obsidian-plugin |
| Latest release | GitHub Releases |
What it does
- Deploy wizard — creates a Python
.venv, installs dependencies, prepares the transcripts folder, registers a background job every 30 minutes, and ensures the plugin files are in the vault - Background jobs by OS
- Windows — Task Scheduler (or the backend’s
scripts/register-task.ps1when present) - macOS — user LaunchAgent (
launchd) - Linux — user
crontabentry
- Windows — Task Scheduler (or the backend’s
- Sync now / Login commands and a ribbon button
- Settings — path to the Python sync repo, transcripts folder, headless browser mode, auto-sync interval
- Sets
ZOOM_TRANSCRIPTS_DIRto<vault>/<output folder>on every run so notes land in your vault - Sets
ZOOM_BROWSER_CHANNELtomsedgeon Windows andchromiumon macOS/Linux (overridable)
The Python sync backend is bundled inside the plugin. Deploy wizard installs it automatically under your vault config folder — no separate clone or path setup.
Requirements
- Obsidian desktop (Windows, macOS, or Linux)
- Network access on first deploy (downloads portable Python if needed, plus Playwright browser bits)
- Browser:
- Windows: Microsoft Edge preferred
- macOS / Linux: Chromium (installed by deploy)
Install in Obsidian
Option A — Community plugins (after approval)
Once this plugin is listed in the Obsidian community plugin directory:
- Open Settings → Community plugins.
- If needed, turn off Restricted mode.
- Click Browse.
- Search for Zoom MyNotes Sync.
- Click Install, then Enable.
- Continue with First-time setup below.
Option B — BRAT (recommended while waiting for community review)
BRAT installs plugins directly from GitHub releases.
-
Install BRAT from Community plugins (
obsidian42-brat). -
Open Settings → BRAT → Add beta plugin.
-
Paste:
https://github.com/script-repo/Zoom-MyNotes-Obsidian-plugin -
Choose the latest release version when prompted.
-
Enable Zoom MyNotes Sync under Settings → Community plugins.
-
Continue with First-time setup.
Option C — Manual install from a GitHub release
-
Open the latest release.
-
Download these three files (do not download source zip only):
main.jsmanifest.jsonstyles.css
-
In your vault, create this folder (create
.obsidian/pluginsif missing):<YourVault>/.obsidian/plugins/zoom-mynotes-sync/The folder name must match the plugin id:
zoom-mynotes-sync. -
Copy the three files into that folder. You should have:
<YourVault>/.obsidian/plugins/zoom-mynotes-sync/main.js <YourVault>/.obsidian/plugins/zoom-mynotes-sync/manifest.json <YourVault>/.obsidian/plugins/zoom-mynotes-sync/styles.css -
In Obsidian: Settings → Community plugins — turn off Restricted mode if it is on.
-
Click Reload plugins (or restart Obsidian).
-
Find Zoom MyNotes Sync in the installed list and toggle it on.
-
Continue with First-time setup.
Option D — Build from source (developers)
git clone https://github.com/script-repo/Zoom-MyNotes-Obsidian-plugin.git
cd Zoom-MyNotes-Obsidian-plugin
npm install
npm run build
Copy main.js, manifest.json, and styles.css into:
<YourVault>/.obsidian/plugins/zoom-mynotes-sync/
Or install straight into a vault:
# macOS / Linux
npm run install-vault -- "/path/to/your/vault"
# Windows (PowerShell)
npm run install-vault -- "D:\path\to\your\vault"
Then enable the plugin in Obsidian and reload.
First-time setup
- Enable the plugin, then run Open deploy wizard (command palette or settings).
- Click Run full deploy. This automatically:
- installs the bundled Python backend under
<vault>/<configDir>/zoom-mynotes-backend - uses system Python if present, otherwise downloads a portable CPython
- creates
.venv,pip installs dependencies - installs Playwright browser bits (Edge on Windows, Chromium on macOS/Linux)
- creates the vault transcripts folder (default
mynotes) - registers a background job every 30 minutes (Task Scheduler / launchd / cron)
- installs the bundled Python backend under
- Run Login (interactive SSO) once and complete Zoom sign-in in the browser.
- Run Sync now (ribbon or command palette).
Transcripts appear under the configured vault folder (default mynotes/), often with month subfolders.
The only interactive step after deploy is Zoom login (SSO cannot be automated without your credentials).
Commands
| Command | Action |
|---|---|
| Sync now | Run sync.py |
| Login (interactive SSO) | Run login.py (visible browser) |
| Open deploy wizard | Full backend + vault setup |
| Show latest sync log | Tail logs/sync-*.log from the sync repo |
| Open transcripts folder | Focus the vault output folder |
| Cancel running job | Kill the active child process |
Settings
| Setting | Default | Notes |
|---|---|---|
| Sync repo path | (empty / auto) | Absolute path to folder with sync.py |
| Python path | (auto) | .venv/Scripts/python.exe (Windows) or .venv/bin/python3 (macOS/Linux) |
| Transcripts folder | mynotes | Vault-relative |
| Headless sync | on | Login always opens a window |
| Auto-sync (minutes) | 0 (off) | While Obsidian is open; OS job covers background |
| Background job name | ZoomNotesSync | Task Scheduler / LaunchAgent / cron marker |
Privacy
- Meeting titles are not written to logs unless you enable Log meeting titles.
- Auth state is stored by the Python/Playwright backend on disk under the sync repo, not in Obsidian cloud sync by this plugin.
Troubleshooting
| Symptom | What to try |
|---|---|
| Plugin missing after copy | Folder must be named zoom-mynotes-sync; enable under Community plugins; reload Obsidian |
| “Set … Sync repo path” | Point settings at the folder that contains sync.py |
| “Python not found” | Install Python 3.11+ (python3 on macOS/Linux), then re-run Deploy wizard |
| Login / sync browser fails | Re-run deploy (installs Chromium on macOS/Linux; Edge on Windows). Override with env ZOOM_BROWSER_CHANNEL if needed |
| macOS LaunchAgent failed | Check ~/Library/LaunchAgents/com.zoom-mynotes-sync.*.plist and logs/launchd-*.log in the sync repo |
| Linux cron failed | Ensure crontab is available; inspect crontab -l and logs/cron-sync.log |
| No notes in vault | Confirm Transcripts folder and that sync exited successfully (Show latest sync log) |
Development
npm install
npm run dev # watch build → main.js
npm run build # production build
Release checklist (maintainers)
-
Bump
versioninmanifest.jsonandpackage.json(same value, novprefix). -
Add
"<version>": "<minAppVersion>"toversions.json. -
Commit and push to
main. -
Tag and push the version (triggers
.github/workflows/release.yml):git tag 1.0.0 git push origin 1.0.0 -
Confirm the GitHub Release attaches
main.js,manifest.json, andstyles.css.
Obsidian loads community installs from GitHub release assets, not from the git tree alone. The manifest.json at the repo root must match the latest release tag.
Community plugin directory
To list this plugin in Obsidian’s Community plugins browser, a pull request is opened against obsidianmd/obsidian-releases adding an entry to community-plugins.json:
{
"id": "zoom-mynotes-sync",
"name": "Zoom MyNotes Sync",
"author": "DaemonBehr",
"description": "Deploy and run Zoom Notes transcript sync into this vault (Python + Playwright backend).",
"repo": "script-repo/Zoom-MyNotes-Obsidian-plugin"
}
Requirements before/during review:
- Public GitHub repo with a clear README
- At least one GitHub Release whose tag equals
manifest.json→version, withmain.js,manifest.json, andstyles.cssattached idnever changes after publish (zoom-mynotes-sync)- Desktop-only and process-spawning plugins receive stricter review
Until the PR is merged, use BRAT or manual install above.
License
MIT — see LICENSE.
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.