A powerful IPTV plugin for IINA media player, supporting the Xtream Codes API for live TV, movies (VOD), and series.
- 📺 Live TV - Watch live channels with EPG support
- 🎬 Movies (VOD) - Browse and play video on demand content
- 📺 Series - Navigate seasons and episodes
- ⭐ Favorites - Save your favorite content for quick access
- 📜 History - Resume where you left off
- 🔍 Search - Search across all content types
- 🎨 Modern UI - Beautiful dark theme sidebar interface
- 🔌 Modular Architecture - Built with ES Modules and bundled with esbuild
- macOS 10.14 or later
- IINA 1.4.0 or later
- An IPTV subscription with Xtream Codes API support
- Open IINA
- Go to IINA → Preferences → Plugins
- Click + and enter the repository URL
- The plugin will be installed automatically
- Download or clone this repository
- Install dependencies:
npm install
- Build the plugin:
npm run build
- Pack the plugin:
/Applications/IINA.app/Contents/MacOS/iina-plugin pack . - Double-click the generated
.iinaplgzfile to install
- Open IINA → Preferences → Plugins → IPTV Settings
- Enter your IPTV credentials:
- Server URL: Your provider's server URL (e.g.,
http://example.com:8080) - Username: Your IPTV username
- Password: Your IPTV password
- Name: Optional display name
- Server URL: Your provider's server URL (e.g.,
Alternatively, configure directly in the sidebar when first launching.
- Click the IPTV tab in IINA's sidebar
- Or use the menu: Plugins → IPTV → Open IPTV Browser
- Live TV Tab - Browse live channels by category
- Movies Tab - Browse movies/VOD content by category
- Series Tab - Browse series, seasons, and episodes
- Favorites Tab - Access your saved content
- History Tab - Resume recently watched content
IPTV_IINA/
├── dist/ # Compiled output (generated)
├── src/ # Source code
│ ├── browser/ # UI Logic (Browser window)
│ ├── global/ # Plugin Backend (Node.js/IINA API)
│ ├── main/ # Main Window Entry
│ └── shared/ # Shared Utilities
├── styles.css # Stylesheet
├── scripts/ # Build scripts
├── Info.json # Plugin manifest
└── package.json # Dependencies & Scripts
npm run buildThis uses esbuild to bundle the modular code in src/ into the dist/ directory (or root for legacy support).
- Enable Safari's Develop menu
- Open Develop → IINA → your-plugin-context
- Use the Web Inspector to debug JavaScript
- Check IINA Console (Window → Console) for errors starting with
[IPTV]. - verify "iina.menu API not available" -> Update IINA.
iina.utils.exec API not available: Update IINA.Failed to register menu item: Reinstall plugin.
If you need to completely remove the plugin:
rm -rf ~/Library/Application\ Support/com.colliderli.iina/plugins/com.iptv.iina-plugin.iinaplugin*Plugin files are located in: ~/Library/Application Support/com.colliderli.iina/plugins/
MIT License - see LICENSE for details.
- IINA - The modern media player for macOS
- Xtream Codes API - API documentation