Radek Davidek 76f33b7f18 EPG fix
2026-03-10 17:43:59 +01:00
2026-03-10 16:05:47 +01:00
2026-03-10 17:43:59 +01:00
2026-03-04 13:47:51 +01:00
2026-03-04 13:47:51 +01:00
2026-03-04 13:52:50 +01:00
2026-03-10 17:19:35 +01:00
2026-03-10 15:47:10 +01:00
2026-03-10 17:18:16 +01:00
2026-03-10 15:15:20 +01:00

Xtream Player (Java + com.sun.httpserver)

Self-hosted HTML5 app for Xtream IPTV:

  • User authentication - Built-in login with username/password (stored in H2 database)
  • provider settings/login
  • manual source preload (button Load sources) with progress bar
  • sources are stored in local H2 DB and the UI reads them only through local API
  • tabs for Live, VOD, Series, and Custom streams
  • search + filtering
  • EPG (get_short_epg) for live channels
  • playback of Xtream streams and custom URLs

Requirements

  • Java 17+
  • Maven 3.9+

Run

mvn -q compile exec:java

The app runs on:

  • http://localhost:8080

Default login credentials (first run):

  • Username: admin
  • Password: admin

Optional: change port:

PORT=8090 mvn -q compile exec:java

User Management

User management is now available via /user CRUD API protected by a fixed bearer token:

  • Bearer token: MujBearer852654
# List users
curl -H "Authorization: Bearer MujBearer852654" \
  http://localhost:8080/user

# Get one user
curl -H "Authorization: Bearer MujBearer852654" \
  "http://localhost:8080/user?username=admin"

# Create user
curl -X POST -H "Authorization: Bearer MujBearer852654" \
  -H "Content-Type: application/json" \
  -d '{"username":"user","password":"pass123"}' \
  http://localhost:8080/user

# Update password
curl -X PUT -H "Authorization: Bearer MujBearer852654" \
  -H "Content-Type: application/json" \
  -d '{"username":"user","newPassword":"newPass123"}' \
  http://localhost:8080/user

# Delete user
curl -X DELETE -H "Authorization: Bearer MujBearer852654" \
  "http://localhost:8080/user?username=user"

See USERS_MANAGEMENT.md for detailed user management documentation.

Docker (JRE 17)

Build image:

docker build -t xtream-player:latest .

Run container:

docker run --rm -p 8080:8080 \
  -e PORT=8080 \
  -v xtream-player-data:/home/app/.xtream-player \
  xtream-player:latest

Notes

  • Config is stored in ~/.xtream-player/config.properties.
  • User credentials are stored in ~/.xtream-player/users.db (H2 database).
  • Preloaded sources (live/vod/series categories + lists) are stored in ~/.xtream-player/library/xtream-sources.mv.db.
  • Custom streams are stored in browser localStorage.
  • Some Xtream servers/streams may not be browser-friendly (for example ts). m3u8 is usually better for browsers.
Description
No description provided
Readme 732 KiB
Languages
Java 50%
JavaScript 43%
CSS 3.6%
HTML 3.1%
Dockerfile 0.2%