Export transcripts and AI summaries from plaud.ai recordings
npx claudepluginhub continero/plaud-connectorExport transcripts and AI summaries from plaud.ai recordings. Bulk download, trigger transcription, incremental sync.
CLI tool that bulk-exports transcripts and AI summaries from plaud.ai. Can also trigger transcription for unprocessed recordings.
Plaud doesn't have a public API, so this tool talks to the same endpoints their web app uses (reverse-engineered from browser traffic). It works today, but if they change their API, it might break.
git clone https://github.com/Continero/plaud-connector.git
cd plaud-connector
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
After installation, the plaud command is available in your terminal (while the venv is active).
Copy the example config and fill in your credentials:
cp .env.example .env
Then edit .env with one of these auth methods:
If you signed up with Google, you don't have a password. Grab your token from the browser:
api.plaud.ai, click it, and copy the Authorization header valuePLAUD_TOKEN=bearer eyJhbGciOi...
The token expires after some time. When it does, repeat the steps above to get a fresh one.
If you have a regular account with a password:
[email protected]
PLAUD_PASSWORD=your_password
If your account is on the EU instance (check your browser network tab, the requests go to api-euc1.plaud.ai instead of api.plaud.ai):
PLAUD_API_BASE=https://api-euc1.plaud.ai
The sync command does it all in one go. It finds recordings without transcripts, triggers generation, waits for them to finish, and downloads everything.
plaud sync
╔══════════════════════════════════════════════╗
║ plaud-downloader ║
║ Bulk export transcripts from plaud.ai ║
╚══════════════════════════════════════════════╝
Step 1/3 Fetching recordings from plaud.ai...
165 recordings (188.5 hours total)
162 with transcripts, 3 without
Step 2/3 Generating missing transcripts...
Triggering transcription for 2 recordings:
-> Team standup (3811s)
-> Project review (1820s)
Waiting for 2 transcriptions to complete...
Done: Team standup
Done: Project review
Step 3/3 Downloading transcripts and summaries...
+ Team standup
+ Project review
2 new, 163 already up to date
══════════════════════════════════════════════
Sync complete!
165 recordings | 2 exported | 163 skipped
Output: /Users/you/plaud-downloader/output/
══════════════════════════════════════════════
If you prefer more control:
plaud list # show all recordings
plaud generate --dry-run # preview what would be transcribed
plaud generate # trigger transcription (don't wait)
plaud generate --wait # trigger and wait for completion
plaud download # download to ./output/
plaud download -o ~/plaud-export # download to custom directory
plaud download --force # re-download even if files exist
plaud sync [OPTIONS]
-o, --output TEXT Output directory (default: output)
--min-duration INT Skip recordings shorter than N seconds (default: 10)
--wait / --no-wait Wait for transcription (default: --wait)
plaud generate [OPTIONS]
--min-duration INT Skip recordings shorter than N seconds (default: 10)
--dry-run Show what would be triggered, don't do it
--wait / --no-wait Wait for completion (default: --no-wait)
plaud download [OPTIONS]
-o, --output TEXT Output directory (default: output)
--force Re-download even if files already exist
Each recording produces two files, organized into folders matching your Plaud tags. Untagged recordings go to Unsorted/.
output/
Work/
2026-03-17_Team-standup.json
2026-03-17_Team-standup.md
Unsorted/
2026-03-15_Quick-note.json
2026-03-15_Quick-note.md
Structured data with transcript segments (speaker, text, timestamps) and the AI-generated summary: