@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.
Files changed (3) hide show
  1. package/bin/.gitkeep +1 -0
  2. package/package.json +50 -0
  3. 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
+ ![Platform](https://img.shields.io/badge/platform-Windows%20|%20Linux%20|%20macOS-blue)
6
+ ![Language](https://img.shields.io/badge/language-Rust-orange)
7
+ ![License](https://img.shields.io/badge/license-MIT-green)
8
+ [![npm](https://img.shields.io/npm/v/xtream-rust)](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.