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, andCustom 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).m3u8is usually better for browsers.
Description
Languages
Java
50%
JavaScript
43%
CSS
3.6%
HTML
3.1%
Dockerfile
0.2%