Privacy policy for Mireki
- Summary
Mireki is designed with data minimization in mind.
- Mireki does not use advertising, analytics, telemetry, or behavioral profiling.
- Mireki does not sell personal data.
- Mireki does not collect unrelated browsing history.
- Playback observation is limited to explicitly supported streaming services.
- Raw playback observations remain local and expire automatically.
- Connecting a Trakt account is optional.
- When Trakt is connected, only information required for media matching, authentication, and scrobbling is sent externally.
- Data processed locally
On supported streaming services, Mireki may process:
- Media title, series title, artist, or album metadata
- Season and episode information
- Page title
- Source URL and hostname
- Media type, such as video or audio
- Playback state, such as playing, paused, or ended
- Current playback time, duration, and progress
- Artwork URLs exposed by the website or Media Session API
- Tab and frame identifiers assigned by Firefox
This information is used to identify the current media, display playback status, select one active playback source, match media with Trakt, and determine when the watched threshold has been reached.
Raw tab and frame observations are stored only in extension memory and normally expire within 30 seconds after playback observations stop.
Mireki does not create or retain a general history of websites visited.
- Trakt authentication data
If the user chooses to connect a Trakt account, Mireki processes:
- OAuth authorization codes
- Access tokens
- Refresh tokens
- Token type, scope, creation time, and expiration information
OAuth tokens are stored in Firefox extension-controlled local storage. They are accessible only to Mireki's background context and are not exposed to streaming websites, page scripts, the popup, or logs.
Firefox extension storage is not encrypted against someone who already has access to the user's Firefox profile, operating system account, or device.
- Data sent to Trakt
When a Trakt account is connected, Mireki may send the following information to the Trakt API:
- Media titles and related matching metadata
- Season and episode numbers
- Trakt media identifiers
- Playback progress
- Playback events such as start, pause, and stop
Mireki marks media as watched only after its configured completion threshold is reached.
Trakt processes this information under its own privacy policy: Mireki does not control how Trakt processes data after it has been submitted.
- OAuth broker
Mireki uses a controlled HTTPS OAuth broker hosted at: https://mireki-auth-colif.bunny.run
The broker is used only for operations that require Trakt's confidential client secret, including:
- Exchanging an authorization code for tokens
- Refreshing expired tokens
- Attempting to revoke access during disconnection
The broker does not receive playback observations or browsing history.
The application is designed not to log OAuth codes, tokens, or confidential credentials. However, the hosting and network infrastructure may process normal connection metadata, such as IP address, timestamp, and user agent, as required to provide the service.
Bunny.net's privacy policy is available at: https://www.bunny.net/privacy
- Local synchronization state
Mireki may store a limited number of Trakt media identifiers and timestamps after Trakt acknowledges that media was watched. This prevents duplicate watched entries after Firefox restarts the extension background.
Mireki may also temporarily retain failed matching results in memory to avoid repeatedly calling the Trakt API. This temporary cache is not browsing history and expires automatically.
Disconnecting Trakt removes locally stored OAuth credentials and completion state. Mireki also attempts to revoke remote access through Trakt. Local data is removed even if remote revocation fails.
- Artwork requests
When the popup displays externally hosted artwork, the image is loaded directly from its HTTPS host without a referrer.
The artwork host may still receive standard network information, including:
- IP address
- User agent
- Request time
- Requested image URL
Mireki does not control the privacy practices of third-party artwork hosts.
- Website permissions
Mireki requests access only to an explicit list of supported streaming-service domains. This access is required to detect playback without requiring the popup to remain open.
Mireki does not request access to:
- Unrelated websites
- Generic Amazon retail pages
- Unencrypted HTTP pages
- Local files
- FTP resources
- Firefox internal pages
Background-only access to https://api.trakt.tv/ is used for matching and scrobbling.
- Data sharing
Mireki shares data only when necessary to provide features explicitly enabled by the user:
- Trakt: authentication, media matching, and scrobbling
- OAuth broker: token exchange, refresh, and revocation
- Artwork hosts: image loading when artwork is displayed
Mireki does not share data with advertisers, analytics providers, or data brokers.
- Data retention and deletion
- Raw playback observations normally expire after 30 seconds without an update.
- Failed matching results are retained temporarily in memory.
- OAuth tokens remain until they expire, are replaced, or the user disconnects Trakt.
- A bounded set of acknowledged completion identifiers remains until removed during disconnection or extension data deletion.
Users can delete Mireki's stored Trakt data by disconnecting the account from Mireki's preferences.
- Security
Mireki uses HTTPS for external communication, validates messages and API responses, isolates OAuth tokens in its background context, and does not include Trakt's confidential client secret in the extension.
No method of local storage or network transmission can be guaranteed to be completely secure.
- Children's privacy
Mireki is not designed to collect personal information from children. It does not knowingly collect names, email addresses, precise locations, or similar identifying information.
Streaming services and Trakt may apply their own age requirements and privacy policies.
- Changes to this policy
This policy may be updated when Mireki's features, supported services, or external integrations change. The effective date and last updated date will be revised when material changes are made.