Skip to content

Redact IPTV credentials from logs and debug output #99

Description

@dwizzle204

Summary

The app should redact IPTV credentials before writing URLs, API requests, playback URLs, or raw provider responses to logs/debug output.

Xtream-style APIs commonly include credentials in query parameters or path segments, for example:

player_api.php?username=<user>&password=<pass>

/live/<user>/<pass>/<stream_id>.ts
/movie/<user>/<pass>/<stream_id>.mp4
/series/<user>/<pass>/<stream_id>.mkv

If these values are logged, credentials can be exposed through local device logs, screenshots, crash reports, support bundles, CI logs, or developer console output.

Proposed behavior

  • Do not log full provider URLs containing credentials.
  • Redact username and password query parameters before logging.
  • Redact Xtream path credentials before logging playback URLs.
  • Avoid logging raw provider response bodies unless explicitly needed for debugging and safely redacted.
  • Ensure release builds do not emit credential-bearing debug output.

Suggested redaction examples

player_api.php?username=<redacted>&password=<redacted>

/live/<user>/<pass>/123.ts
/movie/<user>/<pass>/456.mp4
/series/<user>/<pass>/789.mkv

Suggested implementation direction

Add a small shared helper per client/platform:

redactCredentials(input: String) -> String

It should handle at least:

  • username=<value>
  • password=<value>
  • /live/{username}/{password}/{stream}
  • /movie/{username}/{password}/{stream}
  • /series/{username}/{password}/{stream}

Then require all logging/debug output that may include provider URLs or API responses to pass through the redaction helper first.

Acceptance criteria

  • No log/debug statement prints raw IPTV username/password values.
  • API URLs are redacted before logging.
  • Playback URLs are redacted before logging.
  • Raw JSON/body logging is removed, gated, or redacted.
  • A basic unit test validates that sample Xtream URLs are redacted correctly.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions