تخطَّ إلى المحتوى

ɳTV

هذا المحتوى غير متوفر بلغتك بعد.

ɳTV is an open-source media player built on ɳSelf. It runs on six platforms, iOS, Android, macOS, Windows, Linux, and Web, from a single Flutter codebase. Users self-host the backend with the ɳSelf CLI and the ɳTV plugin bundle.

GitHub: nself-org/ntv License: MIT Status: Active


ɳTV turns your ɳSelf backend into a personal media server you control. Your media library lives on your hardware. The ɳTV client on any supported device plays it back with server-side adaptive streaming, automatic metadata enrichment, and an electronic program guide for live TV.

Add any IPTV M3U playlist URL in Settings and browse live channels immediately. No account, no license key, no backend needed for this path.

With a self-hosted ɳSelf backend running the ɳTV plugin bundle:

FeatureWhat You Get
LibraryBrowse your full media catalog with TMDB poster art, ratings, and genres
Adaptive streamingHLS/DASH with server-side transcoding for any bitrate
EPGElectronic Program Guide for live channels, including recording with the recording plugin
Progress syncResume any title from any device
Media acquisitionAutomated download and organization via torrent-manager and content-acquisition
Subtitle searchAuto-download subtitles from OpenSubtitles and sync them to playback

PlatformVideo EngineHLSDASHBackground Play
iOSAVPlayerYesYesYes (Info.plist audio)
macOSAVPlayerYesYesYes
AndroidExoPlayerYesYesYes (foreground service)
Windowsplatform video_playerPartialPartialTBD
Linuxplatform video_playerPartialPartialTBD
WebHTML5 + HLS.jsYes (polyfilled)Partialn/a

+---------------------------------------------+
| nTV Flutter Client (6 platforms) |
| - Library browser |
| - Video / audio player (chewie + video_player) |
| - IPTV M3U channel browser |
| - EPG viewer |
| - Progress sync engine |
+------------------+--------------------------+
|
| Hasura GraphQL + plugin REST
|
+------------------v--------------------------+
| nSelf Backend (user-hosted) |
| |
| PostgreSQL <-- library schema |
| Hasura <-- GraphQL API + permissions |
| Auth <-- JWT issuance |
| Nginx <-- TLS + routing |
| |
| nTV Plugins: |
| streaming HLS/DASH segment server |
| stream-gateway stream URL routing |
| epg electronic program guide |
| tmdb metadata enrichment |
| media-processing encoding pipeline |
| torrent-manager BitTorrent client (free) |
| content-acquisition download orchestration (free) |
| subtitle-manager subtitle search (free) |
+---------------------------------------------+

The Flutter client speaks Hasura GraphQL for library data, watch state, and user preferences. Playback goes through the streaming plugin, which serves HLS segments from transcoded files stored in MinIO or a local media directory. Progress sync is a Hasura mutation sent every 10 seconds during playback.


ɳTV requires the ɳTV bundle for all backend features. The bundle costs $0.99/mo or $9.99/yr as part of the ɳSelf Pro tier.

Paid plugins (require license key):

PluginPurpose
streamingLibrary API, HLS/DASH streaming, progress sync
stream-gatewayStream URL routing and access control
epgElectronic Program Guide for live channels
tmdbTMDB metadata lookup and poster art
media-processingServer-side encoding pipeline
recordingDVR recording from live streams

Free plugins (no key needed):

PluginPurpose
torrent-managerBitTorrent client for media acquisition
content-acquisitionAutomated download orchestration
subtitle-managerSubtitle search, download, and sync

Terminal window
# Backend
nself init ntv-backend && cd ntv-backend
nself license set nself_pro_xxxxx...
nself plugin install streaming stream-gateway epg tmdb
nself plugin install torrent-manager content-acquisition subtitle-manager
nself build && nself start
# Flutter app
git clone https://github.com/nself-org/ntv && cd ntv
flutter pub get
flutter run

On first launch, the Library screen prompts you to enter your backend URL. For local dev use http://localhost:8000. For a remote server use your full https:// URL.