@fanboynz/xtreme-iptv 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/.gitkeep +1 -0
- package/package.json +50 -0
- package/readme.md +341 -0
package/bin/.gitkeep
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Binary will be downloaded on install
|
package/package.json
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@fanboynz/xtreme-iptv",
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "Fast, lightweight, cross-platform IPTV player with Xtream Codes API support",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"iptv",
|
|
7
|
+
"xtream",
|
|
8
|
+
"xtream-codes",
|
|
9
|
+
"streaming",
|
|
10
|
+
"tv",
|
|
11
|
+
"video",
|
|
12
|
+
"player",
|
|
13
|
+
"rust",
|
|
14
|
+
"cross-platform"
|
|
15
|
+
],
|
|
16
|
+
"author": "fanboynz",
|
|
17
|
+
"license": "GPL",
|
|
18
|
+
"repository": {
|
|
19
|
+
"type": "git",
|
|
20
|
+
"url": "git+https://github.com/ryanbr/xtream_rust.git"
|
|
21
|
+
},
|
|
22
|
+
"bugs": {
|
|
23
|
+
"url": "https://github.com/ryanbr/xtream_rust/issues"
|
|
24
|
+
},
|
|
25
|
+
"homepage": "https://github.com/ryanbr/xtream_rust#readme",
|
|
26
|
+
"bin": {
|
|
27
|
+
"xtreme-iptv": "bin/xtreme-iptv"
|
|
28
|
+
},
|
|
29
|
+
"scripts": {
|
|
30
|
+
"postinstall": "node scripts/install.js"
|
|
31
|
+
},
|
|
32
|
+
"files": [
|
|
33
|
+
"bin/",
|
|
34
|
+
"scripts/",
|
|
35
|
+
"README.md",
|
|
36
|
+
"LICENSE"
|
|
37
|
+
],
|
|
38
|
+
"os": [
|
|
39
|
+
"darwin",
|
|
40
|
+
"linux",
|
|
41
|
+
"win32"
|
|
42
|
+
],
|
|
43
|
+
"cpu": [
|
|
44
|
+
"x64",
|
|
45
|
+
"arm64"
|
|
46
|
+
],
|
|
47
|
+
"engines": {
|
|
48
|
+
"node": ">=14"
|
|
49
|
+
}
|
|
50
|
+
}
|
package/readme.md
ADDED
|
@@ -0,0 +1,341 @@
|
|
|
1
|
+
# Xtreme IPTV Player - Rust Edition
|
|
2
|
+
|
|
3
|
+
A fast, lightweight, cross-platform IPTV player with Xtream Codes API support built in Rust.
|
|
4
|
+
|
|
5
|
+

|
|
6
|
+

|
|
7
|
+

|
|
8
|
+
[](https://www.npmjs.com/package/xtream-rust)
|
|
9
|
+
|
|
10
|
+
## Features
|
|
11
|
+
|
|
12
|
+
- 🔐 **Xtream Codes API** - Full support for login, live TV, movies, and series
|
|
13
|
+
- 📺 **Live TV** - Browse categories and play live streams
|
|
14
|
+
- 🎬 **Movies & Series** - Browse VOD content with seasons/episodes
|
|
15
|
+
- ⭐ **Favorites** - Star your favorite channels for quick access
|
|
16
|
+
- 📚 **Address Book** - Save multiple server credentials
|
|
17
|
+
- 🔍 **Search** - Filter channels and content
|
|
18
|
+
- 🎨 **Dark/Light Mode** - Toggle UI theme
|
|
19
|
+
- 🎮 **Hardware Acceleration** - GPU-accelerated video decoding
|
|
20
|
+
- 🌐 **User Agent Spoofing** - 35+ preset user agents
|
|
21
|
+
- 📶 **Connection Quality Presets** - Optimized buffering for your connection
|
|
22
|
+
- 🖥️ **Multi-Player Support** - VLC, mpv, ffplay, and more
|
|
23
|
+
- 💾 **Save State** - Remember login and settings
|
|
24
|
+
- 📋 **M3U Support** - Parse and play M3U/M3U8 playlists
|
|
25
|
+
- 🖱️ **Single Window Mode** - Auto-close previous player
|
|
26
|
+
|
|
27
|
+
## Screenshots
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
31
|
+
│ Xtreme IPTV Player - Rust Edition │
|
|
32
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
33
|
+
│ Server: [http://example.com:8080 ] [Login] [📚 Address Book]│
|
|
34
|
+
│ User: [username] Pass: [••••••••] │
|
|
35
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
36
|
+
│ 🎬 Player: [vlc ] [📁] | 📶 Connection: [Normal] (5s) │
|
|
37
|
+
│ ☑ HW Acceleration │
|
|
38
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
39
|
+
│ [📺 Live TV] [🎬 Movies] [📺 Series] [⭐ Favorites] │
|
|
40
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
41
|
+
│ Categories │ Channels │
|
|
42
|
+
│ ────────────────── │ ──────────────────────────────────── │
|
|
43
|
+
│ > Sports │ ⭐ ESPN HD │
|
|
44
|
+
│ > News │ ⭐ CNN International │
|
|
45
|
+
│ > Entertainment │ BBC World News │
|
|
46
|
+
│ > Kids │ Discovery Channel │
|
|
47
|
+
│ > Movies │ National Geographic │
|
|
48
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Comparison: Rust vs Other IPTV Players
|
|
52
|
+
|
|
53
|
+
| Feature | Xtreme IPTV (Rust) | Typical Electron App | Native C++ App |
|
|
54
|
+
|---------|-------------------|---------------------|----------------|
|
|
55
|
+
| **Binary Size** | ~4 MB | ~150+ MB | ~10-20 MB |
|
|
56
|
+
| **RAM Usage** | ~30-50 MB | ~200-500 MB | ~50-100 MB |
|
|
57
|
+
| **Startup Time** | <1 second | 3-5 seconds | 1-2 seconds |
|
|
58
|
+
| **CPU Idle** | <1% | 2-5% | 1-2% |
|
|
59
|
+
| **Dependencies** | None (standalone) | Node.js, Chromium | Various libs |
|
|
60
|
+
| **Cross-platform** | ✅ Single codebase | ✅ Single codebase | ❌ Per-platform |
|
|
61
|
+
| **Memory Safety** | ✅ Guaranteed | ✅ (JS runtime) | ❌ Manual |
|
|
62
|
+
| **HW Acceleration** | ✅ GPU decoding | ⚠️ Varies | ✅ GPU decoding |
|
|
63
|
+
| **No Console Window** | ✅ Windows | ✅ | ⚠️ Varies |
|
|
64
|
+
|
|
65
|
+
## Supported Platforms
|
|
66
|
+
|
|
67
|
+
| Platform | Architecture | Status | Binary |
|
|
68
|
+
|----------|--------------|--------|--------|
|
|
69
|
+
| Windows | x64 (Intel/AMD) | ✅ Optimized | `xtreme_iptv_windows_x64.exe` |
|
|
70
|
+
| Windows | ARM64 (Snapdragon) | ✅ Optimized | `xtreme_iptv_windows_arm64.exe` |
|
|
71
|
+
| Linux | x64 (Intel/AMD) | ✅ Optimized | `xtreme_iptv_linux_x64` |
|
|
72
|
+
| Linux | ARM64 (RPi, Snapdragon) | ✅ Optimized | `xtreme_iptv_linux_arm64` |
|
|
73
|
+
| Linux | RISC-V 64 | ✅ Optimized | `xtreme_iptv_linux_riscv64` |
|
|
74
|
+
| macOS | x64 (Intel) | ✅ Optimized | `xtreme_iptv_macos_x64` |
|
|
75
|
+
| macOS | ARM64 (Apple Silicon) | ✅ Optimized | `xtreme_iptv_macos_arm64` |
|
|
76
|
+
| macOS | Universal | ✅ Fat Binary | `xtreme_iptv_macos_universal` |
|
|
77
|
+
|
|
78
|
+
### CPU Optimizations
|
|
79
|
+
|
|
80
|
+
| Platform | Optimizations |
|
|
81
|
+
|----------|---------------|
|
|
82
|
+
| **Windows/Linux x64** | AVX, AVX2, BMI1, BMI2, FMA, LZCNT, POPCNT (x86-64-v3) |
|
|
83
|
+
| **Windows/Linux ARM64** | NEON, AES, SHA2, CRC32, LSE, FP16, DotProd (Snapdragon/Apple Silicon optimized) |
|
|
84
|
+
| **Linux RISC-V 64** | RV64GC (General + Compressed + Multiply + Atomic + Float + Double) |
|
|
85
|
+
| **macOS x64** | AVX, AVX2 (x86-64-v3) |
|
|
86
|
+
| **macOS ARM64** | Apple M1/M2/M3/M4 optimized (NEON, AES, SHA2, CRC32, LSE, FP16, DotProd) |
|
|
87
|
+
|
|
88
|
+
### Supported Hardware
|
|
89
|
+
|
|
90
|
+
| Platform | Devices |
|
|
91
|
+
|----------|---------|
|
|
92
|
+
| **Windows ARM64** | Snapdragon X Elite/Plus, Snapdragon 8cx, Microsoft SQ3, Surface Pro X |
|
|
93
|
+
| **Linux ARM64** | Raspberry Pi 4/5, NVIDIA Jetson, Apple Silicon (Asahi), Ampere Altra, AWS Graviton |
|
|
94
|
+
| **Linux RISC-V** | StarFive VisionFive 2, SiFive HiFive, Milk-V Mars/Pioneer, LicheeRV |
|
|
95
|
+
| **macOS ARM64** | MacBook Air/Pro (M1/M2/M3/M4), Mac Mini, Mac Studio, iMac, Mac Pro |
|
|
96
|
+
| **macOS x64** | Intel MacBook, iMac, Mac Mini, Mac Pro (2012-2020) |
|
|
97
|
+
|
|
98
|
+
## Installation
|
|
99
|
+
|
|
100
|
+
### Via npm (Easiest)
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
# Global install
|
|
104
|
+
npm install -g xtream-rust
|
|
105
|
+
|
|
106
|
+
# Run
|
|
107
|
+
xtreme-iptv
|
|
108
|
+
|
|
109
|
+
# Or run directly without installing
|
|
110
|
+
npx xtream-rust
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Pre-built Binaries
|
|
114
|
+
|
|
115
|
+
Download from the [Releases](https://github.com/ryanbr/xtream_rust/releases) page.
|
|
116
|
+
|
|
117
|
+
### Build from Source
|
|
118
|
+
|
|
119
|
+
#### Prerequisites
|
|
120
|
+
|
|
121
|
+
- [Rust](https://rustup.rs/) 1.70+
|
|
122
|
+
- For Windows cross-compile: `mingw-w64`
|
|
123
|
+
- For Windows ARM64 cross-compile: `llvm-mingw`
|
|
124
|
+
|
|
125
|
+
#### Build Commands
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
# Linux x64
|
|
129
|
+
./build.sh linux
|
|
130
|
+
|
|
131
|
+
# Linux ARM64 (Raspberry Pi, Snapdragon, etc.)
|
|
132
|
+
./build.sh linux-arm
|
|
133
|
+
|
|
134
|
+
# Linux RISC-V 64
|
|
135
|
+
./build.sh linux-riscv
|
|
136
|
+
|
|
137
|
+
# Windows x64 (cross-compile from Linux)
|
|
138
|
+
./build.sh windows
|
|
139
|
+
|
|
140
|
+
# Windows ARM64 (cross-compile from Linux)
|
|
141
|
+
./build.sh windows-arm
|
|
142
|
+
|
|
143
|
+
# macOS x64 (Intel) - requires macOS
|
|
144
|
+
./build.sh macos
|
|
145
|
+
|
|
146
|
+
# macOS ARM64 (Apple Silicon) - requires macOS
|
|
147
|
+
./build.sh macos-arm
|
|
148
|
+
|
|
149
|
+
# macOS Universal binary (x64 + ARM64) - requires macOS
|
|
150
|
+
./build.sh macos-universal
|
|
151
|
+
|
|
152
|
+
# All Linux platforms
|
|
153
|
+
./build.sh all-linux
|
|
154
|
+
|
|
155
|
+
# All Windows platforms
|
|
156
|
+
./build.sh all-windows
|
|
157
|
+
|
|
158
|
+
# All macOS platforms (requires macOS)
|
|
159
|
+
./build.sh all-macos
|
|
160
|
+
|
|
161
|
+
# Everything (all platforms)
|
|
162
|
+
./build.sh everything
|
|
163
|
+
|
|
164
|
+
# Show help
|
|
165
|
+
./build.sh help
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
#### Install Dependencies (Linux)
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
# Ubuntu/Debian - x64 cross-compile tools
|
|
172
|
+
sudo apt install mingw-w64
|
|
173
|
+
|
|
174
|
+
# Ubuntu/Debian - ARM64 cross-compile tools
|
|
175
|
+
sudo apt install gcc-aarch64-linux-gnu
|
|
176
|
+
|
|
177
|
+
# Ubuntu/Debian - RISC-V cross-compile tools
|
|
178
|
+
sudo apt install gcc-riscv64-linux-gnu
|
|
179
|
+
|
|
180
|
+
# Fedora
|
|
181
|
+
sudo dnf install mingw64-gcc gcc-aarch64-linux-gnu gcc-riscv64-linux-gnu
|
|
182
|
+
|
|
183
|
+
# Arch
|
|
184
|
+
sudo pacman -S mingw-w64-gcc aarch64-linux-gnu-gcc riscv64-linux-gnu-gcc
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
#### macOS Cross-Compilation (from Linux)
|
|
188
|
+
|
|
189
|
+
To cross-compile for macOS from Linux, you need [OSXCross](https://github.com/tpoechtrager/osxcross):
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
# Clone OSXCross
|
|
193
|
+
git clone https://github.com/tpoechtrager/osxcross
|
|
194
|
+
cd osxcross
|
|
195
|
+
|
|
196
|
+
# Download Xcode SDK (requires Apple Developer account)
|
|
197
|
+
# Place SDK in osxcross/tarballs/
|
|
198
|
+
|
|
199
|
+
# Build OSXCross
|
|
200
|
+
./build.sh
|
|
201
|
+
|
|
202
|
+
# Add to PATH
|
|
203
|
+
export PATH="$PWD/target/bin:$PATH"
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
Alternatively, build natively on a Mac for best results.
|
|
207
|
+
|
|
208
|
+
## Usage
|
|
209
|
+
|
|
210
|
+
### Quick Start
|
|
211
|
+
|
|
212
|
+
1. Launch the application
|
|
213
|
+
2. Enter your Xtream Codes server details:
|
|
214
|
+
- Server: `http://yourserver.com:port`
|
|
215
|
+
- Username: your username
|
|
216
|
+
- Password: your password
|
|
217
|
+
3. Click **Login**
|
|
218
|
+
4. Browse Live TV, Movies, or Series
|
|
219
|
+
5. Double-click a channel to play
|
|
220
|
+
|
|
221
|
+
### Player Configuration
|
|
222
|
+
|
|
223
|
+
Enter your preferred media player in the **Player** field:
|
|
224
|
+
|
|
225
|
+
| Player | Value | Notes |
|
|
226
|
+
|--------|-------|-------|
|
|
227
|
+
| VLC | `vlc` | Auto-detected on Windows |
|
|
228
|
+
| mpv | `mpv` | Recommended, best performance |
|
|
229
|
+
| ffplay | `ffplay` or leave empty | Default player |
|
|
230
|
+
| Custom | Full path | e.g., `C:\Program Files\VLC\vlc.exe` |
|
|
231
|
+
|
|
232
|
+
### Connection Quality Presets
|
|
233
|
+
|
|
234
|
+
| Preset | Buffer | Best For |
|
|
235
|
+
|--------|--------|----------|
|
|
236
|
+
| ⚡ Fast | 2s | Fiber, high-speed connections |
|
|
237
|
+
| 📶 Normal | 5s | Standard broadband |
|
|
238
|
+
| 🐢 Slow | 15s | DSL, congested networks |
|
|
239
|
+
| 🦥 Very Slow | 30s | Mobile, satellite, poor connections |
|
|
240
|
+
| ⚙️ Custom | 1-120s | Manual configuration |
|
|
241
|
+
|
|
242
|
+
### Hardware Acceleration
|
|
243
|
+
|
|
244
|
+
Enable **HW Acceleration** checkbox to use GPU video decoding:
|
|
245
|
+
|
|
246
|
+
| Platform | Decoder |
|
|
247
|
+
|----------|---------|
|
|
248
|
+
| Windows | DXVA2 / D3D11VA |
|
|
249
|
+
| Linux | VA-API / VDPAU |
|
|
250
|
+
| macOS | VideoToolbox |
|
|
251
|
+
|
|
252
|
+
Disable if you experience playback issues with certain streams.
|
|
253
|
+
|
|
254
|
+
### Keyboard Shortcuts
|
|
255
|
+
|
|
256
|
+
| Key | Action |
|
|
257
|
+
|-----|--------|
|
|
258
|
+
| `Enter` | Play selected channel |
|
|
259
|
+
| `Escape` | Go back |
|
|
260
|
+
| `Ctrl+F` | Focus search |
|
|
261
|
+
| `Ctrl+S` | Save settings |
|
|
262
|
+
|
|
263
|
+
## Configuration
|
|
264
|
+
|
|
265
|
+
Settings are stored in:
|
|
266
|
+
|
|
267
|
+
| Platform | Location |
|
|
268
|
+
|----------|----------|
|
|
269
|
+
| Windows | `%APPDATA%\xtreme_iptv\config.json` |
|
|
270
|
+
| Linux | `~/.config/xtreme_iptv/config.json` |
|
|
271
|
+
| macOS | `~/Library/Application Support/xtreme_iptv/config.json` |
|
|
272
|
+
|
|
273
|
+
### Config Options
|
|
274
|
+
|
|
275
|
+
```json
|
|
276
|
+
{
|
|
277
|
+
"external_player": "vlc",
|
|
278
|
+
"buffer_seconds": 5,
|
|
279
|
+
"connection_quality": "Normal",
|
|
280
|
+
"dark_mode": true,
|
|
281
|
+
"hw_accel": true,
|
|
282
|
+
"single_window_mode": true,
|
|
283
|
+
"save_state": true,
|
|
284
|
+
"pass_user_agent_to_player": true
|
|
285
|
+
}
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
## Troubleshooting
|
|
289
|
+
|
|
290
|
+
### VLC won't start
|
|
291
|
+
- Use full path: `C:\Program Files\VideoLAN\VLC\vlc.exe`
|
|
292
|
+
- Or add VLC to system PATH
|
|
293
|
+
|
|
294
|
+
### Video buffering/stuttering
|
|
295
|
+
1. Increase buffer: Change **Connection** to **Slow** or **Very Slow**
|
|
296
|
+
2. Try different player (mpv often performs better)
|
|
297
|
+
3. Disable HW Acceleration if GPU issues
|
|
298
|
+
|
|
299
|
+
### Hardware acceleration errors
|
|
300
|
+
```
|
|
301
|
+
hardware acceleration picture allocation failed
|
|
302
|
+
```
|
|
303
|
+
- Uncheck **HW Acceleration** to use CPU decoding
|
|
304
|
+
- Update GPU drivers
|
|
305
|
+
|
|
306
|
+
### Stream won't play
|
|
307
|
+
- Check User Agent settings
|
|
308
|
+
- Try different User Agent preset
|
|
309
|
+
- Verify stream URL works in browser
|
|
310
|
+
|
|
311
|
+
## Building with Internal Player (Optional)
|
|
312
|
+
|
|
313
|
+
The internal FFmpeg player is optional and requires FFmpeg development libraries:
|
|
314
|
+
|
|
315
|
+
```bash
|
|
316
|
+
# Install FFmpeg dev libs (Linux)
|
|
317
|
+
sudo apt install libavcodec-dev libavformat-dev libavutil-dev libswscale-dev pkg-config clang
|
|
318
|
+
|
|
319
|
+
# Build with internal player
|
|
320
|
+
./build.sh linux --internal-player
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
Note: Internal player is video-only (no audio) and mainly for testing.
|
|
324
|
+
|
|
325
|
+
## License
|
|
326
|
+
|
|
327
|
+
MIT License - See [LICENSE](LICENSE) for details.
|
|
328
|
+
|
|
329
|
+
## Credits
|
|
330
|
+
|
|
331
|
+
- Built with [egui](https://github.com/emilk/egui) - Immediate mode GUI
|
|
332
|
+
- [eframe](https://github.com/emilk/egui/tree/master/crates/eframe) - Native framework
|
|
333
|
+
- Rust community for excellent crates
|
|
334
|
+
|
|
335
|
+
## Contributing
|
|
336
|
+
|
|
337
|
+
Contributions welcome! Please open an issue or PR.
|
|
338
|
+
|
|
339
|
+
---
|
|
340
|
+
|
|
341
|
+
**Disclaimer:** This software is for personal use with legally obtained IPTV subscriptions only. The developers are not responsible for misuse.
|