iptvS

Native macOS · SwiftUI · VLCKit 4

Every signal your subscription carries, in one Mac window.

iptvS brings Live TV, Movies, Series and the program guide into one native app. Connect over Xtream Codes, M3U or a Stalker / Ministra portal. Playback runs on LibVLC.

iptvS 0.5.dmg · Apple Silicon & Intel · macOS 13+ Ad-hoc signed — first run: right-click the app → Open
iptvS Live TV — a now-playing banner over the channel grid, with EPG timings on each card

The signal chain

Four kinds of content, one catalog.

iptvS sorts everything your provider serves into the right section and caches it locally. It opens instantly on the next launch.

Live TV

Category browser with favourites, a live hero banner, and an EPG that maps automatically to your channels — List or classic Timeline grid.

xtream · m3u · stalker

Movies

TMDB posters, plots and cast. Provider metadata fills in where TMDB has no match. Resume to the exact second.

lazy per-category

Series

Series, seasons and episodes from any source, with TMDB stills. Playback continues from one season's finale into the next.

tmdb stills + titles

Guide

XMLTV or the portal's own get_epg_info. Set a native macOS reminder for any upcoming programme, five minutes ahead.

list · timeline · reminders

New in 0.5

Your MAG portal, native on the Mac.

Enter a portal URL and a MAC address. iptvS handles the rest of the portal protocol the way a set-top box does.

  • MAC-address handshake to a bearer token, then the itv / vod / series catalog and the guide.
  • Endpoint auto-detection across portal.php, server/load.php and stalker_portal/…, probed in parallel.
  • Stream links minted at play time with create_link — portal URLs are short-lived, so the player re-mints on error.
  • Test button reports subscription status and expiry. Built-in MAC generator for providers that bind on first contact.

Inside the app

Native SwiftUI, every screen.

Under the hood

Tuned for real-world providers.

LibVLC playback

VLCKit 4 with VideoToolbox hardware decode — HLS, MPEG-TS, MP4, MKV, RTMP. Or send any stream straight to VLC.app.

Buffering indicator

The overlay tracks real frame progress, so it appears only when playback has actually stalled.

Instant server switching

The last three playlists stay warm in memory. A timestamped disk cache means a switch only touches the network for data that's gone stale.

Setup progress

First load shows staged progress with live counts — 1,861 channels · 18 categories12,450 programmes — behind a determinate bar.

Lazy catalogs

Movies and Series load a category at a time with infinite scroll. A 75,000-title provider opens in about a second.

In-place recording

Records straight from the active player connection with zero-copy MPEG-TS. One connection is enough.

Language
Swift 5.9+ · SwiftUI (macOS 13 Ventura+)
Playback
VLCKit 4 (LibVLC) · VideoToolbox decode
Sources
Xtream Codes API · Stalker / Ministra portal · M3U / M3U8
Guide
XMLTV · Stalker get_epg_info
Metadata
TMDB API
Caching
Per-playlist JSON + timestamps · warm in-memory snapshots (LRU 3)

Download

Drag it to Applications. Add a playlist. Watch.

One universal build for Apple Silicon and Intel. No installer, no account, no telemetry.

SHA-256
96287fb7c7901f1565fc1742f2eb2ce5b9804b542950977fd19bc73360111caa
shasum -a 256 "iptvS 0.5.dmg"

Requirements

macOS 13.0 Ventura or later. Apple Silicon (M1–M4) or Intel. An active IPTV subscription — Xtream, Stalker portal, or M3U.

First launch

This build is ad-hoc signed, not notarised. On first launch, right-click iptvS.app and choose Open.

Homebrew

brew install --cask sstoicsnapshots-lang/tap/iptvs

Bugs, feature requests, or just want to talk about IPTV on the Mac? Join the Telegram group.

iptvS is free and always will be. If it earns a place on your Dock, you can leave a tip.

Buy Me a Coffee at ko-fi.com