This is a feature request for Seerr, a media request management system, to add support for Tracearr as an alternative to Tautulli for fetching watch history data. Tracearr is an emerging tool that supports Plex, Emby, and Jellyfin, offering more flexibility and reducing reliance on a single third-party intermediary.
A starter prompt for Claude Code, what you'll need, and how to reach them.
You are an expert full-stack developer specializing in Node.js applications. Your task is to implement support for Tracearr within the existing Seerr application as an alternative to Tautulli for fetching watch history data. The core functionality should allow Seerr to retrieve watch history from Tracearr for Plex, Emby, and Jellyfin media servers, mirroring the current Tautulli integration. Focus on clean code, testability, and adherence to Seerr's existing architecture. Here's the plan: 1. **Understand Existing Integration:** Analyze `seerr-team/seerr` to identify how Tautulli is currently integrated. Pinpoint relevant files for API interaction, data mapping, and configuration. 2. **Tracearr API Client:** Implement a new module for interacting with the Tracearr API. This should handle authentication (API key) and fetch watch history data. Use `axios` or `node-fetch`. 3. **Configuration:** Extend Seerr's settings to include Tracearr-specific options: enable/disable, API URL, API Key. Ensure these settings are securely stored. 4. **Watch History Service Integration:** Modify Seerr's watch history service to conditionally use either Tautulli or Tracearr based on user configuration. Ensure the data structure returned by Tracearr is mapped correctly to Seerr's internal data model. 5. **Testing:** Write unit tests for the new Tracearr API client and integration tests to ensure watch history fetching and display work correctly when Tracearr is enabled. 6. **Documentation:** Provide a brief update to Seerr's documentation on how to configure Tracearr support. Use TypeScript for development, following Seerr's existing code style. The database is likely MongoDB, so ensure data interactions are consistent. Focus on delivering a robust, production-ready integration. Assume the latest stable versions of Seerr's dependencies.
### Description I would like to request support for Tracearr as an alternative to Tautulli, allowing Seerr to retrieve watch history data directly from Tracearr. Tracearr supports Plex, Emby, and Jellyfin, and it also allows importing data from Jellyseer and Tautulli simultaneously. Currently, Tautulli is commonly used as the intermediary for fetching Plex watch history data. However, Tracearr is emerging as a viable alternative and is actively being adopted by some users. Supporting Tracearr would provide additional flexibility and reduce dependency on a single third-party tool. Specifically, this feature would allow Seerr to: - Fetch user watch history data from Tracearr - Support media servers such as Plex, Emby, and Jellyfin through Tracearr - Provide the same functionality currently available via Tautulli integration Adding Tracearr support would give users more choice in how they manage and expose watch history data, while also improving resilience by avoiding reliance on a single integration path. Thank you for considering this enhancement. ### Desired Behavior Add Tracearr Support as an Alternative to Tautulli. ### Additional Context _No response_ ### Search Existing Issues
Standard for open-source contributions.
Standard for Next.js/React development.
Need to set up and configure a Tracearr instance for testing purposes - ~half a day.
Learn it: Search getting-started ↗
Get set up: Create the account/instance, generate the API key or credentials, and add them to your project's environment variables.
Familiarize with Seerr's codebase and local dev setup - ~1 day.
Learn it: Search getting-started ↗
Comment directly on the GitHub issue #2449 (https://github.com/seerr-team/seerr/issues/2449).
“I've reviewed issue #2449 for Tracearr support in Seerr and have developed a working prototype for fetching watch history from Tracearr. I'm keen to contribute this as a pull request, ensuring it's robust and aligns with Seerr's architecture. Would you be open to reviewing a draft PR soon?”
Open the original ↗