Skip to content

[Feature]: Geo Playback History Map per User - QB v4 #24

@mophawka

Description

@mophawka

💡 Feature Description

Enhance the user profile view in the WSD to include a Geo Playback History map panel, showing historical and current session locations. This would visualize where the user has accessed the media server from over time, improving monitoring, security, and decision-making around Geo Lock enforcement.

📈 Motivation and Context

This ties directly into the previously proposed feature request for a full user management panel. While that request included IP tracking and Geo Lookup, this extends the idea into a visual, map-based timeline of user session locations.

This is critical for:

  • Monitoring suspicious account access across regions
  • Verifying location patterns before enforcing Geo Lock
  • Allowing admins to visually inspect playback locations and session history
  • Strengthening audit capabilities

🛠️ Suggested Implementation (if known)

Data Collection

  • Use Emby’s /Sessions, playback logs, or internal WSD database to track:
    • user_id, ip, timestamp, device_id, lat, lon, region, city, country
  • Resolve IPs using GeoIP provider (e.g., iplocate.io or MaxMind)
  • Store resolved data in a geo_playback_history table

UI

  • Within the User Profile Pane, add a "Location History" tab
  • Render interactive map using Leaflet.js or Mapbox GL JS
  • Markers show:
    • City/region, session time, device ID, stream type
  • Allow filtering:
    • Last 7 days, 30 days, 90 days
    • Device types or session types
  • Optionally draw lines connecting sessions to show movement

Admin Actions

  • Geo Lock user to a specific city or country
  • Flag sessions from new regions (manually or auto)
  • Send alert via Signal or Android App if outlier location detected
  • Terminate session outside of trusted regions

🖼️ Visuals or References (optional)

User: @MediaFan99

🌍 Map: LA → Chicago → NYC
🕑 Last 30 days
📱 Devices: Roku TV, iPhone
🔒 Geo Lock: Not active

🔗 Related Issues or Discussions

🧩 Additional Notes

This map-based approach complements WSD’s emphasis on admin-focused control. It avoids the need for CLI-only inspection of logs and provides a rich visual tool for account auditing.

All IP lookups must be cached to avoid quota overruns and stored with appropriate TTL (e.g., 24h).

Metadata

Metadata

Assignees

Labels

In ProgressActively being worked on — Someone is currently developing this.enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions