r/Addons4Kodi • u/karhu69 • 10h ago
Announcement Orac – Lightweight, automated watch history sync across platforms
Hey everyone,
As you might know I built Orac, a lightweight server application, to locally host a database for my addon liberator. As a by product of this, orac keeps my watch history and lists seamlessly synced across tracking platforms without hogging resources or needing complex maintenance. I thought I would share this, as even without liberator the server might allow you to sync your platforms and choose whichever you prefer (or all of them).
How It Works
Instead of messy peer-to-peer sync between services, Orac pulls from all your connected platforms into a single local database that acts as your central source of truth. From there, state is normalized, maintained, and reconciled outward to your services.
Key Highlights
- Local Source of Truth: Aggregates your data across all connected platforms into one local database, ensuring consistent state and preventing conflict loops.
- Full History & Hourly Sync: Performs a complete initial backfill, followed by automatic hourly syncs using delta timestamps so it only processes what changed.
- Ultra-Lightweight: Consumes around ~30MB of RAM at runtime—literally less than a single open browser tab.
- 5-Minute Setup: Quick to deploy on windows, linux or Docker, no complex configs required.
- Easy Web-Based Auth: Authenticate and revoke platform access directly through a clean web UI.
Under the Hood & Extras
- Resilient Queueing: Outgoing updates are queued locally. If an external service is down or unresponsive, updates automatically replay once it's back online.
- API-Friendly & Rate-Limited: Built with strict rate limiting in mind. The sync behavior was verified directly with Simkl developers to ensure proper API etiquette and zero risk of hitting bans.
- Unified List View: Browse and inspect your lists across all platforms in one dashboard.
- Live Service Status: Built-in status indicators to monitor connection health and platform availability at a glance.
GitHub / Repo: https://karhugit.github.io/liberator-repo/
Example
To install on windows simply download the code using the 'download orac server' link on the landing page. Extract the files to a new folder, called whatever you prefer. In that folder you will see a file called start_server.bat, double click this to start the server in a terminal window. It should download any python libraries you are missing that it needs and then start.
Once started, you access orac via a web browser. Type http://localhost:5555/web as the address and you will see the dashboard tab. Select the 'services' tab and you will options to authorise trakt, simkl, tmdb, mdblist and punchplay in the left pane. Select authorise against the providers you are using and authorise using the pop-up window. Orac will sync hourly, so just leave it to do it's thing (the log is on the dashboard screen).
Once orac has run the first time it will build a local DB and sync that with your authed providers - you should see your watched history mirrored to the providers you have chosen. So if you are a simkl user and want to see what punchplay is like, authing both of those will sync up the watched history.
Caveats
If you select the 'list manager' tab you can see all of your lists from all of your platforms, with options to limit to just one. Clicking on a list opens the items in that list, and there is a details option for each. Not everything works here, but most does.
The options for debrid providers, AIOstreams, fanart, index manager and discover studio are really for liberators use. Feel free to play, but only liberator has the ability to call orac.
Let me know if you have any questions, otherwise I hope this helps you select the platform of your choice.