Rapture Inbox

pending

by NoiseMeld

Import Rapture voice notes from Google Drive. Uses a mailbox pattern: notes are downloaded and then removed from Drive.

Updated 3mo agoMITDiscovered via Obsidian Unofficial Plugins
View on GitHub

Rapture Inbox for Obsidian

Automatically sync your Rapture voice notes from Google Drive to your Obsidian vault.

Rapture is a hands-free voice capture app for Android that records your thoughts and transcribes them using AI. Rapture Inbox is the official Obsidian plugin that brings those voice notes into your personal knowledge management system.

Features

  • Mailbox Sync Pattern: Notes are downloaded from Drive and then removed, keeping your Drive folder clean
  • Automatic Sync: Configurable polling intervals (1, 5, 10, 15, or 30 minutes)
  • Sync on Vault Open: Optionally sync when you open your vault
  • Manual Sync: Trigger sync anytime via command palette or settings
  • YAML Frontmatter: Preserves all metadata from Rapture (date, duration, title, content types, source)
  • Duplicate Handling: Automatically handles filename conflicts by appending timestamps
  • Secure Authentication: OAuth 2.0 with Google, tokens stored locally

How It Works

Rapture Android App
        |
        v
Google Drive (Rapture/Obsidian folder)
        |
        v
Rapture Inbox Plugin (downloads files)
        |
        v
Your Obsidian Vault (files appear here)
        |
        v
Google Drive (files deleted after successful download)

This "mailbox" pattern ensures:

  • Your Drive folder stays clean (no duplicate management needed)
  • Notes appear in your vault automatically
  • No data loss (files only deleted after successful vault write)
  • One-way sync keeps things simple and predictable

Installation

From Obsidian Community Plugins (Recommended)

  1. Open Obsidian Settings
  2. Go to Community Plugins
  3. Click Browse and search for "Rapture Inbox"
  4. Click Install, then Enable

Manual Installation

  1. Download main.js, styles.css, and manifest.json from the latest release
  2. Create a folder called rapture-inbox in your vault's .obsidian/plugins/ directory
  3. Copy the downloaded files into this folder
  4. Restart Obsidian
  5. Enable the plugin in Settings > Community Plugins

BRAT Installation (Beta Testing)

  1. Install BRAT plugin
  2. Add this repo: NoiseMeldOrg/rapture-obsidian-plugin
  3. Enable Rapture Inbox in Community Plugins

Quick Start

Step 1: Enable Obsidian in Rapture

  1. Open the Rapture app on your Android device
  2. Go to Settings > Obsidian
  3. Enable the Obsidian destination toggle
  4. Rapture will create a Rapture/Obsidian folder in your Google Drive

Step 2: Connect Obsidian Plugin

  1. Open Obsidian Settings > Rapture Inbox
  2. Click Connect to sign in with your Google account
  3. Authorize access to Drive files created by Rapture
  4. Verify your email appears in settings

Step 3: Configure Sync

  1. Set your destination folder (default: Rapture/)
  2. Choose your preferred sync interval
  3. Optionally enable sync on vault open
  4. Click Sync Now to test

Step 4: Start Capturing

  1. Use Rapture to record a voice note
  2. Wait for Rapture to process and upload to Drive
  3. Your note will automatically appear in Obsidian at the next sync

Settings

SettingDescriptionDefault
Google AccountConnect/disconnect your Google account-
Destination folderWhere synced files go in your vaultRapture/
Sync intervalHow often to check for new notes5 minutes
Sync on vault openSync when you open ObsidianEnabled

Commands

Access these via the command palette (Ctrl/Cmd + P):

  • Rapture: Sync now - Manually trigger a sync
  • Rapture: Open settings - Quick access to plugin settings

File Format

Rapture creates markdown files with YAML frontmatter containing metadata:

---
date: 2025-12-24T10:30:00-05:00
duration: 45
title: Meeting Notes
content_types:
  - MEETING_NOTES
  - TASKS
source: rapture-android
---

## Meeting Notes

- Discussed project timeline
- [ ] Follow up with team
- [x] Review documentation

Frontmatter Fields

FieldDescriptionExample
dateRecording timestamp (ISO 8601)2025-12-24T10:30:00-05:00
durationRecording length in seconds45
titleAI-extracted titleMeeting Notes
content_typesDetected content categoriesMEETING_NOTES, TASKS, IDEAS, etc.
sourceOrigin of the noterapture-android

Requirements

  • Obsidian: Version 1.0.0 or later (desktop only)
  • Rapture app: Download from Google Play
  • Google account: With Google Drive access
  • Obsidian destination: Enabled in Rapture settings

Privacy & Security

  • Local token storage: OAuth tokens are stored locally in your vault's plugin data (data.json)
  • Minimal permissions: Uses drive.file scope - only accesses files created by Rapture
  • No external servers: Direct communication with Google Drive API
  • No data collection: NoiseMeld never sees your notes or credentials
  • Easy revocation: Sign out anytime to clear tokens, or revoke via Google Account settings

Troubleshooting

Notes not appearing

  1. Check Rapture settings: Ensure Obsidian destination is enabled
  2. Verify Drive folder: Check that Rapture/Obsidian folder exists in Google Drive
  3. Check for files: Verify files appear in the Drive folder after recording
  4. Try manual sync: Use "Rapture: Sync now" command
  5. Check destination folder: Ensure the vault folder path is correct

Authentication issues

  1. Sign out and back in: Settings > Rapture Inbox > Sign Out, then Connect
  2. Check internet connection: OAuth requires network access
  3. Revoke and reauthorize: Go to Google Account permissions, revoke Rapture Inbox, then reconnect

Sync failures

  1. Check console: Open DevTools (Ctrl+Shift+I) and check for errors
  2. Verify permissions: Ensure the destination folder is writable
  3. Check token expiry: Sign out and reconnect if tokens might be invalid
  4. Reduce sync frequency: If rate limited, try a longer sync interval

Files not deleted from Drive

  1. Check sync result: If download fails, files won't be deleted
  2. Manual cleanup: Files can be manually deleted from Drive
  3. Check permissions: Ensure the plugin has delete permission (should be included in drive.file scope)

Duplicate files appearing

  • This is expected behavior when the same filename already exists
  • Duplicate files get a timestamp suffix (e.g., meeting-1703453400000.md)
  • Consider using unique titles in Rapture to avoid duplicates

FAQ

Why do I need a plugin? Why doesn't Rapture write directly to my vault?

This is a common question! The short answer: Google Drive API limitations.

Rapture uses the drive.file OAuth scope, which only grants access to files/folders that:

  1. The app itself created
  2. The user explicitly selected via Google Picker API

The problem: Most Obsidian vaults are stored locally (not in Google Drive), and even if your vault IS in Drive, the Rapture Android app cannot write to folders it didn't create. The Google Picker API (which would grant this access) is web-only with no native Android SDK.

The solution: This two-component architecture:

  • Rapture creates files in its own Rapture/Obsidian folder (which it created, so it has access)
  • This plugin runs on your computer with its own OAuth credentials and can download those files
  • The plugin places files wherever you want in your vault

This approach:

  • Avoids requesting broad drive scope (which would access all your Drive files)
  • Works with any vault location (local, synced, wherever)
  • Keeps the Android app's permissions minimal and secure

For more technical details, see ARCHITECTURE.md.

Why isn't there bidirectional sync?

By design, Rapture Inbox uses a one-way "mailbox" pattern. Voice notes flow from Rapture to Obsidian, not the other way around. This simplifies the architecture and prevents sync conflicts.

Can I use this on mobile Obsidian?

The plugin is desktop-only for now. Mobile support may work but is untested. Use Obsidian Sync or another solution to sync your vault to mobile.

What happens if sync fails mid-way?

Successfully downloaded files are saved to your vault. Files that fail to download remain in Drive for the next sync attempt. Files are only deleted from Drive after successful vault write.

Can I sync to multiple vaults?

Currently, the plugin stores settings per-vault. You would need to authenticate separately in each vault, but they would download from the same Drive folder.

Does this work with Obsidian Sync?

Yes! Rapture Inbox writes files to your local vault. Obsidian Sync (or any other sync solution) can then sync those files across devices.

Development

# Clone repository
git clone https://github.com/NoiseMeldOrg/rapture-obsidian-plugin.git
cd rapture-obsidian-plugin

# Install dependencies
npm install

# Development mode (watches for changes)
npm run dev

# Run tests
npm test

# Production build
npm run build

# Lint
npm run lint

Project Structure

rapture-obsidian-plugin/
├── src/
│   ├── main.ts           # Plugin entry point
│   ├── settings.ts       # Settings tab UI
│   ├── driveApi.ts       # Google Drive API wrapper
│   ├── syncEngine.ts     # Sync logic
│   └── oauth.ts          # OAuth flow
├── tests/                 # Jest tests
├── manifest.json         # Plugin metadata
├── package.json
└── README.md

Testing

# Run all tests
npm test

# Run with coverage
npm test -- --coverage

# Run specific test file
npm test -- tests/syncEngine.test.ts

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

See CONTRIBUTING.md for detailed guidelines.

Support

License

MIT License - see LICENSE for details.


Made with voice by NoiseMeld

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.