Tracearr: The Universal Playback Tracker for Jellyfin, Emby, and Plex (2026 Setup Guide)

Tracearr: The Universal Playback Tracker for Jellyfin, Emby, and Plex (2026 Setup Guide)

Tracearr: The Universal Playback Tracker for Jellyfin, Emby, and Plex (2026)

Every media server has its own playback tracking: Jellyfin has the Playback Reporting plugin, Plex has Tautulli, Emby has its built-in activity log. But what if you run multiple servers? What if you want one unified view of all viewing activity across platforms? What if you want playback data that survives server rebuilds and migrations?

Tracearr is a standalone playback tracking application that connects to Jellyfin, Emby, and Plex simultaneously, recording all viewing activity into a single database with a unified API.


What Tracearr Does

Tracearr is a dedicated playback history service:

  • Multi-platform - tracks Jellyfin, Emby, and Plex from one instance
  • Unified database - all history in one place regardless of source server
  • Long-term retention - keeps history indefinitely (not limited by server plugin retention)
  • API-first - REST API for integration with other tools
  • Webhook receiver - receives real-time playback events from media servers
  • User mapping - maps users across platforms (same person on Jellyfin and Plex)

Why Use Tracearr Instead of Built-In Tracking?

FeatureServer pluginsTracearr
Cross-platformNo (one server only)Yes (all servers)
Survives server rebuildNo (lost with config)Yes (independent database)
Unified user viewNoYes (user mapping)
Long-term retentionLimited (plugin settings)Unlimited
API for integrationsVariesConsistent REST API
Works with Emby WrappedIndirectDirect integration
Works with ReclaimerrNoYes (watch data source)

How It Works

[Jellyfin] --webhook--> [Tracearr] --stores--> [Database]
[Emby]     --webhook--> [Tracearr]
[Plex]     --webhook--> [Tracearr]
                              |
                              v
                    [API for integrations]
                    [Emby Wrapped, Reclaimerr, custom scripts]

Tracearr receives webhook events from your media servers whenever playback starts, pauses, stops, or completes. It stores this data with full metadata: user, title, duration, completion percentage, device, client app, and playback method.


Docker Setup

services:
  tracearr:
    image: ghcr.io/tracearr/tracearr:latest
    container_name: tracearr
    ports:
      - "7600:7600"
    volumes:
      - ./tracearr/data:/data
    environment:
      - TZ=Europe/Paris
    restart: unless-stopped
docker compose up -d

Access at http://your-server:7600.


Step 1: Connect Your Media Servers

Jellyfin

  1. Install the Webhook plugin in Jellyfin
  2. Add a Generic Destination:
    • URL: http://tracearr:7600/api/webhook/jellyfin
    • Events: Playback Start, Playback Stop, Item Added
  3. Save

Emby

  1. Dashboard > Webhooks (requires Premiere)
  2. Add webhook:
    • URL: http://tracearr:7600/api/webhook/emby
    • Events: Playback events
  3. Save

Plex

  1. Settings > Webhooks
  2. Add webhook: http://tracearr:7600/api/webhook/plex
  3. Save

Step 2: User Mapping

If the same person has accounts on multiple servers:

  1. Open Tracearr dashboard
  2. Navigate to Users
  3. Link accounts: "john" on Jellyfin = "john_doe" on Plex = "john" on Emby
  4. All their history appears under one unified profile

Step 3: Historical Import

Tracearr can import existing history from your servers:

From Jellyfin (Playback Reporting plugin)

curl -X POST http://tracearr:7600/api/import/jellyfin \
  -H "Content-Type: application/json" \
  -d '{"url": "http://jellyfin:8096", "apiKey": "your_key"}'

From Plex (Tautulli database)

curl -X POST http://tracearr:7600/api/import/tautulli \
  -H "Content-Type: application/json" \
  -d '{"url": "http://tautulli:8181", "apiKey": "your_key"}'

This gives you historical data going back as far as your existing tracking tools have recorded.


Integrations

Emby Wrapped

Emby Wrapped can use Tracearr as its data source instead of the Emby Playback Reporting plugin:

# In Emby Wrapped docker-compose.yml
environment:
  - TRACEARR_URL=http://tracearr:7600
  - TRACEARR_API_KEY=trr_pub_your_key_here

This gives Emby Wrapped access to longer history and cross-platform data.

JellyWatchTry JellyWatch — Your Jellyfin companion, everywhere.

Reclaimerr

Reclaimerr uses Tracearr to determine what has been watched across all platforms before flagging content for deletion:

  • A movie watched on Plex is not flagged as "unwatched" just because Jellyfin users have not seen it
  • Tracearr provides the unified view Reclaimerr needs for accurate cleanup decisions

Custom Scripts and Dashboards

The Tracearr API provides endpoints for:

  • /api/history - all playback events with filters
  • /api/users/{id}/stats - per-user statistics
  • /api/items/{id}/plays - play count and history for specific content
  • /api/stats/overview - global statistics

Build custom Grafana dashboards, Discord bots, or automation scripts using this API.


Tracearr vs Jellystat vs Tautulli

FeatureTracearrJellystatTautulli
Jellyfin supportYesYesNo
Emby supportYesNoNo
Plex supportYesNoYes
Multi-platformYes (all three)No (Jellyfin only)No (Plex only)
Web dashboardBasicFullFull
Historical graphsAPI-basedYesYes
Push notificationsNoNoYes
Emby Wrapped integrationYesNoNo
Reclaimerr integrationYesNoNo
PurposeData collection + APIAnalytics dashboardAnalytics dashboard

Tracearr is not a replacement for Jellystat or Tautulli. It is a data layer that other tools consume. Use Tracearr for unified data collection, Jellystat/Tautulli for visualization.


Data Retention and Storage

Tracearr stores all events indefinitely by default:

  • Storage usage: ~1 MB per 1,000 playback events
  • Typical server (5 users, daily use): ~50-100 MB per year
  • Large server (20 users): ~200-500 MB per year

Storage is negligible. There is no reason to purge historical data.


API Key Types

Tracearr uses two types of API keys:

  • Public keys (trr_pub_*) - read-only access for integrations (Emby Wrapped, Reclaimerr)
  • Private keys (trr_prv_*) - full access for administration

Always use public keys for third-party integrations. Never expose private keys.


FAQ

Does Tracearr replace the Jellyfin Playback Reporting plugin? No. The Playback Reporting plugin provides data within Jellyfin itself (for JellyWatch statistics, for example). Tracearr is an external system for cross-platform tracking and long-term retention.

Can I run Tracearr without webhooks? Tracearr can also poll media server APIs on a schedule, but webhooks provide real-time tracking with lower latency.

Does Tracearr affect playback performance? No. Tracearr receives webhook events asynchronously. It does not sit in the playback path.

Is Tracearr free? Yes. Open source and free to self-host.

Does JellyWatch use Tracearr? JellyWatch connects directly to the Jellyfin API for real-time session data. It does not use Tracearr. They serve different purposes: JellyWatch for real-time monitoring, Tracearr for historical data collection.


Track history with Tracearr. Monitor sessions with JellyWatch. Download JellyWatch on Google Play - real-time session monitoring and push notifications for Jellyfin.

On Emby? Download EmbyWatch on Google Play

Comments

No comments yet. Be the first to share your thoughts.

Leave a comment

Never displayed publicly.
0 / 2000 · Supports limited Markdown: **bold**, *italic*, `code`, [link](url), lists, > quote.