Admin access
Unlock your archive
Enter the Cloudflare `ADMIN_TOKEN` to query D1, import Trakt history, and receive webhook appends.
Now Playing
Live playback sessions across Plex, Emby, and JellyfinWatch history
Latest 6 watched itemsMost Active Playback Platforms
Ranked by stored watch eventsTop 5 Most Watched TV Series
Top 5 by distinct logged episodesWatch Activity
Monthly archive volumeHistory Explorer
Folder-style archive drill-downAdmin Token
Stored locally in this browser after unlockRuntime Variables
Cloudflare bindings used by the portalADMIN_TOKEN
Unlocks the dashboard, import route, config route, and cron sync endpoint.
SYNC_CONFIG_KV
Stores saved Plex, Emby, and Jellyfin credential settings.
DB
Cloudflare D1 binding for canonical watch history and live cache rows.
Webhook Listener
Append new watches automaticallyhttps://plembfin.pages.dev/api/webhook
Point Plex, Emby, and Jellyfin played/scrobble webhooks at this endpoint. Valid watched events are inserted into D1.
The listener logs the event first, then coordinates sync to the other platforms while blocking echo loops.
Web-Cron Trigger
Link to an external 1-minute monitorhttps://plembfin.pages.dev/api/cron-sync?token=YOUR_ADMIN_TOKEN
Use this secure endpoint with a free external cron monitor set to a 1-minute loop so the live cache stays fresh.
The request must include your admin token in the query string or authorization header.
Database Status
D1 bindingDB
Trakt History Importer
Upload unzipped CSV or JSON export files[idle] Waiting for files.
System Integrity Check
Probes the core Cloudflare bindings plus each configured media serverUse this when you want a quick health pass over the dashboard's backend dependencies before making a change.
Repair History Rows
Re-type mislabeled TV rows, then backfill any missing poster URLsRuns the database repair pass that asks TMDB what the row actually is, updates the stored media type, and then refreshes poster URLs where possible.
Idle
Backfill Trakt Imports
Fetch poster URLs for `trakt_import` rows using TMDB lookupsUse this after a Trakt import if rows are missing artwork. It only touches imported rows and leaves live webhook history alone.
Idle
Debug Logs
Local diagnostic stream for connection tests and now-playing polling