Skip to content

marcosaugustoldo/fireflies-obsidian-sync-all

Repository files navigation

⚡ Fireflies.ai to Obsidian Sync (All Meetings Edition)

A robust, state-based (Delta Sync) automation designed to extract transcripts and Artificial Intelligence metadata from Fireflies.ai and inject them directly into Obsidian as structured Markdown notes.

🤝 Credits & Architecture

This project is a deeply refactored architectural fork, born from the excellent foundation built by Ritwik-28. The original repository served as a great starting point for connecting to the Fireflies API.

However, to scale the script's reliability to a production level, fundamental architectural changes were implemented in this version:

  1. From Time to State (Delta Sync): The original version relied on the current date to fetch meetings. If the host machine was offline for a weekend, meetings from that period were lost forever. This version implements a local "Ledger" (synced_ledger.json). The script asks the API for the latest meetings and cross-references them with the local Ledger. What isn't on the disk, it downloads. No meeting is lost, regardless of downtime.
  2. AI Extraction (GraphQL): The request was expanded to pull not just raw transcripts, but the summary blocks (Overview, Action Items, and Shorthands) generated by Fireflies' built-in AI.
  3. Local Timezone Fix (BRT / UTC-3): Corrected the handling of Epoch timestamps received from the API, which previously defaulted to standard UTC, pushing late-night meetings to the next calendar day.

⚙️ Core Features

  • Silent Execution: Designed to run entirely in the background via Systemd without human intervention.
  • Duplicate Prevention: The local Ledger strictly prevents Obsidian from creating duplicate files.
  • YAML Frontmatter: Natively prepares the generated notes for Obsidian's Dataview plugin.
  • Secure Isolation: Code structured to run inside Python virtual environments (venv), making it ideal for immutable systems like Fedora Atomic/Silverblue.

🛠️ Installation (Linux / Systemd Focus)

The following guide assumes deployment on a modern Linux environment (utilizing venv to avoid polluting the root system).

1. Cloning & Virtual Environment

git clone https://github.com/marcosaugustoldo/fireflies-obsidian-sync-all.git
cd fireflies-obsidian-sync-all
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

2. Credentials Configuration

Create your environment variables file:

cp .env.example .env
nano .env

Insert your API key and the absolute path to your Obsidian vault:

FF_API_KEY="your_fireflies_api_key_here"
OBSIDIAN_VAULT_PATH="/absolute/path/to/your/vault"

3. The First Run (Ledger Creation)

The initial execution will download all recent meetings and create the state file synced_ledger.json.

/path/to/your/venv/bin/python sync_fireflies.py

🕒 Automation with Systemd On Linux (Cron Replacement)

To ensure continuous, silent execution, create a Systemd user service.

1. Create the Service (~/.config/systemd/user/fireflies-sync.service):

[Unit]
Description=Fireflies.ai to Obsidian Synchronization

[Service]
Type=oneshot
WorkingDirectory=/absolute/path/to/the/script/folder
ExecStart=/absolute/path/to/your/venv/bin/python sync_fireflies.py

2. Create the Timer (~/.config/systemd/user/fireflies-sync.timer):

[Unit]
Description=Fireflies Sync Timer

[Timer]
OnCalendar=*-*-* 08..22:00:00
Persistent=true

[Install]
WantedBy=timers.target

3. Enable the Automation:

systemctl --user daemon-reload
systemctl --user enable --now fireflies-sync.timer

Your data pipeline is now fault-tolerant and will operate passively in the background.

About

A robust, state-based (Delta Sync) automation designed to extract transcripts and Artificial Intelligence metadata from Fireflies.ai and inject them directly into Obsidian as structured Markdown notes.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages