An open API service indexing awesome lists of open source software.

https://github.com/exwhyzed9/prysm

Prysm is a modern, lightweight M3U IPTV player built with Expo / React Native for Android and Android TV.
https://github.com/exwhyzed9/prysm

android android-tv expo iptv iptv-player m3u react-native

Last synced: 2 months ago
JSON representation

Prysm is a modern, lightweight M3U IPTV player built with Expo / React Native for Android and Android TV.

Awesome Lists containing this project

README

          

# 📺 Prysm

![Platform: Android & Android TV](https://img.shields.io/badge/Platform-Android%20%7C%20Android%20TV-green.svg)
![Framework: Expo](https://img.shields.io/badge/Framework-Expo%20%7C%20React%20Native-000020?logo=expo)
![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)

Prysm is a modern, lightweight **M3U IPTV player** built with **Expo / React Native** for **Android and Android TV**.

It is designed for large playlists, fast channel browsing, smooth playback, and a clean TV-friendly experience.

---

## ✨ Features

- **M3U / M3U8** playlist support.
- **Flexible Loading:** Load playlists from a URL or a local file.
- **Fast Channel Browsing:** Optimized specifically to handle large playlists.
- **Organization:** Channel categories and filtering.
- **Search & Favorites:** Quickly find and save the channels you love.
- **Persistent Storage:** Saves your playlists automatically.
- **Auto-Refresh:** Keeps your playlist data up to date.
- **Advanced Video Playback Controls:**
- Quality selection
- Aspect ratio adjustments
- Audio track selection
- Subtitle support
- **Network Stream Player:** Play any stream directly with custom HTTP headers (Cookie, Referer, Origin), User-Agent presets, and DRM support (Widevine, PlayReady, ClearKey).
- **TV Optimized:** Full Android TV remote and D-pad navigation support.
- **UI:** Sleek, modern Dark Mode interface.

---

## 📱 Screenshots


Add Playlist
Channels
Categories
Favorites
Settings


Player
Player Settings

---

## 🎯 Supported Platforms

- ✅ **Android**
- ✅ **Android TV**

*Note: iOS and Web are not primary targets for this project.*

---

## 💡 Why Prysm?

- Handles **very large playlists** (10k+ channels) smoothly without lagging.
- Built specifically with the **Android TV experience** in mind from day one.
- Uses a lightweight **Expo architecture** for easy building and deployment.
- Clean, maintainable **TypeScript** codebase.
- **100% Open Source.**

---

## 🚀 Getting Started

### 📋 Requirements

- **Node.js** 18 or higher
- **Android Studio** (for emulator testing or deploying to a physical device)

### 📦 Installation

1. Clone the repository and navigate into the directory:

```bash
git clone https://github.com/ExWhyZed9/prysm.git
cd prysm
```

2. Install dependencies:
```bash
npm install
```

### ▶️ Run the App

Start the Expo development server:

```bash
npm start
```

Or, run directly on Android:

```bash
npm run android
```

---

## 🛠️ Tech Stack

- **Framework:** Expo SDK 54 / React Native
- **Language:** TypeScript
- **Navigation:** React Navigation
- **Lists:** FlashList (for high-performance rendering)
- **Media:** Expo Video
- **Storage:** AsyncStorage

---

## 🤝 Contributing

Contributions are always welcome!

1. Fork the repository.
2. Create a feature branch (`git checkout -b feature/AmazingFeature`).
3. Commit your changes.
4. Open a pull request.

**Note:** For major changes or refactors, please open an issue first to discuss what you would like to change.

---

## ⚠️ Disclaimer

**Prysm is a media player only.** It does not provide, host, or distribute any content, streams, or playlists. Users must supply their own legally obtained IPTV sources.

---

## 📄 License

This project is licensed under the MIT License.

---

## 💬 Support

If you find Prysm useful, consider giving it a ⭐ on GitHub!

**Author:** ExWhyZed9