KDTIVI - Unify IPTV & VOD
Connect IPTV, Emby & Plex
Free · In-App Purchases · Designed for iPad. Not verified for macOS.
KDTIVI – The Ultimate Unified Streaming Hub
Tired of jumping between apps for your IPTV, Plex, Emby and Jellyfin? KDTIVI brings your entire streaming library under one roof — with a single Continue Watching row that actually remembers where you left off, no matter which source you played it from.
Built natively for Apple TV, iPhone and iPad. KDTIVI is a fast, premium media player for the modern streamer. Load an M3U playlist, connect your home media server, or plug in your favourite addons, including catalogs, subtitles and metadata support
LIVE TV, DONE PROPERLY
• Full EPG guide with a fast, scrollable timeline, now/next info and instant channel switching
• Pause, rewind and catch back up to live — real timeshift on live streams, on Apple TV and iPhone
• Catch-Up TV (Beta) — jump back into programmes that have already aired via native archive support
• Multiview — watch several streams side by side, made for match day
• Live Sports rail — today's fixtures surfaced on the home screen, tap to jump straight to the channel showing the game
• Recents, favourites, custom category order and hidden categories, so your guide only shows what you watch
EVERY SOURCE, ONE APP
• IPTV: M3U and Xtream Codes, including series and VOD catalogues
• Plex, Emby and Jellyfin: sign in, link your libraries, browse them natively
• Metadata addons enrich posters, artwork, cast and descriptions across your whole library
• Trakt: scrobble playback automatically and keep your watched history in sync
PICKS UP WHERE YOU LEFT OFF — EVERYWHERE
• Resume points and watched status sync across Apple TV, iPhone and iPad via iCloud
• Watched state is shared across sources: finish an episode on your server, and it's marked watched on your playlist too
• Smart Up Next surfaces the next episode of every show you're partway through
WEB DASHBOARD
Manage your playlists and servers from any computer at your leisure — changes appear on your Apple TV instantly, no fiddling with the remote.
BUILT FOR SPEED
• Hardware-accelerated playback with multiple player engines for maximum stream compatibility
• Subtitle and audio track selection, including addon-sourced subtitles
• Genuinely Apple-native UI — proper tvOS focus handling, no clutter, no ads
• Available in 9 languages
Download KDTIVI today and upgrade your living room.
Important Notice
KDTIVI is a media player application. It does not provide, host, or include any content or playlists. Users must supply their own legally sourced material.
KDTIVI is designed to work only with playlists that users create themselves using legally obtained content. We do not permit the streaming of copyrighted material without permission from the copyright holder. Any copyright infringement complaints are handled swiftly, and offending accounts may be suspended or deleted. Only user-supplied content is displayed or played within KDTIVI. Please ensure all content used within the app is legal and appropriately licensed.
https://www.apple.com/legal/internet-services/itunes/dev/stdeula/
https://kdtapps.com/privacy-policy
more - Bug fixes
- Profile isolation
- Remove from library fixes
- Delete addon fixes
- Settings fixes
2.14 2 days ago
Fix to tab bar not showing settings
2.13 3 days ago
- Beta SIMKL support
- Fixed: Resuming an episode you had already finished (or that Trakt had marked watched) no longer drops the show out of Continue Watching — it comes back with your resume position instead
- Fixed: Continue Watching now lists titles from every playlist consistently — some shows only appeared after switching to the playlist they came from, and a show with several part-watched episodes could crowd others off the row entirely
- Fixed: Catalog rows no longer keep loading pages on their own — appending a page revealed more posters, which each asked for another page, so a single row could run away fetching hundreds of titles nobody scrolled to
- Improved: Skipping quickly along a row no longer downloads and saves details for every title you pass — a title's details are only fetched once you actually settle on it
- Improved: Moving down through Movies and TV Shows stays fast however far you scroll — each row used to redraw every other row on screen whenever any one of them finished loading, so the more rows you passed the slower the next one got
- Improved: With a Trakt account connected, importing your Trakt progress and watch history no longer freezes the app — the download and decoding now happen in the background instead of on screen
- Improved: Scrolling quickly down through Movies and TV Shows is far smoother — rows no longer fetch several pages ahead the instant they appear on screen, so passing over a row costs one request instead of a dozen, and the row you actually stop on loads first
- Fixed: Movies and TV Shows froze for up to half a second at a time while scrolling — each page of a row was being saved to disk on the main thread as it arrived. Saving now happens in the background
- Fixed: The "Updating EPG" notification no longer lingers over full-screen playback — it now hides as soon as you start watching a live channel or VOD, while the finished result still shows if it fails
2.11 4 days ago
- Fixed: Catalog rows no longer keep loading pages on their own — appending a page revealed more posters, which each asked for another page, so a single row could run away fetching hundreds of titles nobody scrolled to
- Improved: Skipping quickly along a row no longer downloads and saves details for every title you pass — a title's details are only fetched once you actually settle on it
- Improved: Moving down through Movies and TV Shows stays fast however far you scroll — each row used to redraw every other row on screen whenever any one of them finished loading, so the more rows you passed the slower the next one got
- Improved: With a Trakt account connected, importing your Trakt progress and watch history no longer freezes the app — the download and decoding now happen in the background instead of on screen
- Improved: Scrolling quickly down through Movies and TV Shows is far smoother — rows no longer fetch several pages ahead the instant they appear on screen, so passing over a row costs one request instead of a dozen, and the row you actually stop on loads first
- Fixed: Movies and TV Shows froze for up to half a second at a time while scrolling — each page of a row was being saved to disk on the main thread as it arrived. Saving now happens in the background
- Fixed: The "Updating EPG" notification no longer lingers over full-screen playback — it now hides as soon as you start watching a live channel or VOD, while the finished result still shows if it fails
2.00 28 Aug
- Fixed: Shows you've finished no longer linger in Continue Watching (and the Home hero) when there's no next episode
- New: Spoiler-free episode thumbnails — blur the stills for episodes you haven't started yet. Turn it on in Settings › KDTIVI Settings › Spoilers
- Fixed: "Test Subscription Revoked" now explains you need the App Store build (not TestFlight/beta) to fix it, instead of a misleading "subscribe again"
- Fixed: Live TV guide showing "No program info" after the app had been in the background — programme data now refreshes on return instead of needing a force-close
- Improved: Home is much smoother on Plex — hub rows are fetched once instead of twice, and Continue Watching no longer recalculates on every redraw
- Fixed: Nuvio Continue Watching now matches Nuvio itself — titles you'd just started no longer go missing, and finished shows leave both apps' rows
- New: Library — save shows and films for later from any detail page. It's its own row on Home (Settings › Home) and in Movies/TV Shows, so it never clutters Continue Watching
- New: Your Library syncs across your devices via iCloud and your KDTIVI account, and two-way with Nuvio if it's connected
- Changed: Favourites has been replaced by Library — your existing favourites now appear there automatically
- Improved: Continue Watching is ordered by what you watched most recently, instead of always putting next episodes first
- New: "Auto use first stream" for addons — Play starts the top-ranked stream instead of opening the picker. Toggle it in the stream picker or Settings › Addons
- New: If a stream fails, a "Stream Failed" card offers the next stream in the list
- New: Home now has a Favourite Channels row, on by default — customise it in Settings › Home alongside Recent Channels
1.96 24 Aug
- New: Live TV search now remembers your recent searches on iOS and tvOS, so you can quickly search again without retyping
- Fixed: with poster size set to Largest, a show's title logo could overlap the top bar in the VOD hero
- Specials no longer affect Continue Watching — watching one is still recorded, but it won't change your place in a series
- Removing something from Continue Watching now clears it on your Nuvio account too, so it stays gone on every device
- Fixed: shows you'd finished could stay stuck in Continue Watching. A series now appears only when an episode is part-watched, or the next episode actually exists
- Continue watching computation was causing lags, was syncing some unnecessary items, causing data to look changed when it wasn't, fixed and much quicker now.
- New: set your preferred audio language in Settings › Player, and a matching track is selected automatically even when it isn't first in the file
- New: subtitles can turn on by themselves — "Smart" shows them only when the audio isn't in one of your languages
- Audio and subtitle languages take a first choice and a fallback, and manually switching a track during playback is remembered for the rest of that show
- Subtitle background and size can now be changed from the player's Subtitles tab while watching, not just in Settings
- New: Stremio addons that serve live TV (live events, IPTV) now appear as Live TV channels. Set the addon playlist as your Live TV source in Settings › Playlists
- Faster, smoother startup: cached data loads with far less disk work, and addon channel lists and show details are no longer rebuilt on every launch
1.91 7 Aug
- New: Stremio addons that serve live TV (live events, IPTV) now appear as Live TV channels. Set the addon playlist as your Live TV source in Settings › Playlists
- New: a full-screen hero banner at the top of Home that rotates through your titles, with Play and Open buttons. Scroll down for your usual rows
- New: choose what the hero shows in Settings › Home — Continue Watching, or any category from your playlist
- Continue Watching now shows the episode or movie length on each thumbnail and in the hero
- Fixed: pairing a device to the dashboard no longer fails with a device-limit error after subscribing, and your subscription is now recognised automatically when it renews, lapses or is refunded
- Added Settings › Sync › "Rebuild iCloud Sync" to reset and cleanly rebuild bloated iCloud data if the app is slow to launch (keeps your watch history and playlists)
- Faster: closing a movie or show now returns focus to the same poster instantly on Apple TV, instead of a noticeable pause
- Performance: opening a movie or TV show is much faster, especially from Continue Watching, and now reveals the artwork with a smooth fade instead of a black loading screen
- Fixed: the playlist/category dropdowns on Movies & TV Shows could become unreadably squished on iPhone in portrait
- All round speed improvements, and smoother transitions
1.90 4 Aug
- New (opt-in): "Pause Live TV" — a lighter alternative to full Pause & Rewind. Turn it on in the Live TV player's Buffering settings to pause and resume Live TV and skip back to live, buffering only from the moment you pause. Off by default so normal channel tune-in stays fast
- Fixed: the Live TV guide sometimes showed "No Program" until you force-closed and reopened the app — it now populates on its own once EPG data is ready, and manually refreshing the EPG repaints the guide immediately
- Performance: smoother Live TV and browsing on Apple TV — the programme guide now builds off the main thread, channel search is debounced, large movie libraries load without stalling, and full-resolution artwork is scaled before display to eliminate multi-second freezes
- Apple TV Text Size now has a Custom option: pick your own size beyond the preset Smallest–Largest steps, adjustable from the Live TV Text Size menu or Settings
- CarPlay: browse and play Live TV, Movies and TV Shows on your car's display while parked — video plays over AirPlay when your car supports it. I don't have a compatible car to test this so let me know if it works
1.86 25 Jul
- Trailers on Apple TV: movies and TV shows with a YouTube trailer now show a "Trailers" row on the detail screen — selecting one opens it in the YouTube app
- New VLC player engine (Apple TV, experimental): choose "VLC (Experimental)" in the Live TV player settings menu for an alternative playback engine with broad stream compatibility — supports Pause & Rewind Live TV just like KSPlayer, with an optional "VLC Native Timeshift" mode that uses libVLC's built-in timeshift for faster tune-in (rewind reaches back to your first pause)
- VLC engine now fully wired into the player settings menu: working audio and subtitle track pickers, zoom modes (Normal/Zoom/Stretch), aspect ratio overrides (16:9/21:9/4:3), and live stream info (resolution, frame rate, bitrate, audio channels) on the Info tab and Now Playing card
- Opening Live TV is much faster: the guide appears and responds to the remote immediately, with the mini player and background sync work starting quietly afterwards instead of competing with it
- Fixed the TV guide showing outdated programmes after the Apple TV wakes from sleep — channel rows now refresh to the current time as soon as you come back
- Pause & Rewind Live TV (Apple TV, beta): turn it on in the player settings menu and you can pause live channels and rewind up to 40 minutes, this does slow down channel opening speeds
- Episodes that haven't aired yet are now clearly marked: dimmed artwork with an "Airs {date}" badge, and pressing play shows a heads-up (with Play Anyway) instead of failing silently
- Pausing Live TV without Pause & Rewind enabled now shows the Now Playing card with a pause indicator on the progress bar, so pausing no longer looks like nothing happened
1.85 19 Jul
- Rich metadata (posters, backdrops, logos, trailers, season posters, episode names/thumbnails/air dates, age ratings) now comes from TMDB automatically when no metadata addon is installed — every source gets the upgraded detail screens
- Episodes that haven't aired yet are now clearly marked: dimmed artwork with an "Airs {date}" badge, and pressing play shows a heads-up (with Play Anyway) instead of failing silently
- Metadata Stremio addons (e.g. AIOMetadata) now act as the default metadata provider everywhere: posters, backdrops, logos, descriptions, ratings, and episode names/thumbnails on detail screens come from the addon for Xtream, Plex, Emby and Jellyfin content too, falling back to the provider's own info where the addon has none
- Settings menu simplified: Home, Live Sports, and KDTIVI Settings are now combined into one "General" screen with collapsible sections that start collapsed
- Big launch performance improvements when Nuvio, dashboard sync and iCloud sync are all enabled: sync updates are now batched instead of processed one-by-one
- Stremio/Nuvio streams now preload in the background while you're on the detail screen, so the stream picker opens instantly when you press play
- New "Streams (N)" button next to Play/Resume for Stremio/Nuvio content — pick a different link without replaying a broken one
1.84 16 Jul
- Stremio addons of every kind are now fully supported: catalog-only, stream-only, subtitle-only, and metadata addons all install and work, with badges showing what each addon provides
- Configure addons natively on any platform: addons that declare settings now get a built-in configuration form (no more copying links to a computer on Apple TV), and reconfiguring keeps your ordering and enabled state
- Hide individual catalogs per addon so only the rails you want appear in the Nuvio source
- Addon detail screen: tap any addon to enable/disable it, hide catalogs, rename, configure, reorder, refresh, or remove it — one shared implementation in both the Addons and Nuvio settings pages
- Fixed in-progress shows from Nuvio not appearing in Continue Watching (episode numbers are now recovered from Nuvio's video ids, and shows without episode info surface as series bookmarks)
- The aggregated "Nuvio" VOD playlist is now automatically created and selected upon Nuvio sign-in, and bypasses the 2-playlist paywall
- New Nuvio integration (BETA): sign in with your Nuvio account from Settings or onboarding to sync watch progress and watched history both ways, pick which Nuvio profile to sync, and browse your Nuvio library
- Full Stremio/Nuvio addon support: all your addons now appear together as a single "Nuvio" source in Movies & TV Shows (instead of one playlist per addon), with catalogs from every enabled addon
- New Addons settings screen: install addons by manifest URL, enable/disable, reorder, refresh, configure, and remove them — synced with your Nuvio account when signed in
- Stream results now come from every addon that can serve the title, grouped by addon in the stream picker
- Subtitle addons (e.g. OpenSubtitles v3) now work: their subtitles appear in the player's subtitle menu for addon content
1.82 14 Jul
- Continue Watching now appears instantly on launch and updates smoothly instead of flickering while it loads
- Improved the alternate sources dialog on apple tv
- Much faster poster and artwork loading from Emby and Jellyfin servers (images are now server-resized instead of full resolution)
- Posters that fail to load now fall back to TMDB artwork instead of showing a blank placeholder
- Watched status is now consistent for the same show across different sources (e.g. switching between Stremio and Plex)
- Various bug fixes
- Latest KSPlayer version
- New "Video Decoding" setting (Hardware / Hardware + Async / Software) replaces the separate Hardware Decoding and Async Decompression toggles
- Big big speed improvements everywhere
1.81 8 Jul
- Fixed Settings on Apple TV kicking you back to Home whenever a sub-screen (e.g. "Add New Playlist") briefly lost focus during loading — Settings sections now only switch when you actually select one, not just when focus passes through
- Fixed the TV guide showing stale program info after the app was in the background for a while or after watching a channel for a long time — it now refreshes the visible channels' Now/Next when you return
- Jellyfin integration (UNTESTED, let me know if there's issues)
- Fixed Jellyfin movie detail view incorrectly showing a "Missing Xtream movie identifier" error instead of loading Jellyfin metadata
- Fixed restore purchases
1.79 6 Jul
- Jellyfin integration (UNTESTED, let me know if there's issues)
- Added a new match switcher to now playing, so if we find channels playing the same match you're watching you can easily switch between
- Support for old Emby API endpoint
- Full EPG program titles now shown in the sports channel picker — no more truncated match names
- Match Streams picker in the Live TV player: tap the green streams pill to switch between all channels carrying the same fixture without leaving the player
- Fixed a crash for users with very large playlists (100k+ channels) caused by running out of memory while loading
-
1.78 1 Jul
- Poster star rating moved to top-right corner so it no longer overlaps the resolution/quality badge
- Device management in Dashboard settings: rename and remove linked devices from iOS and Apple TV, and from the web dashboard, improved distinction of devices
- Fixes to custom playlist ordering
- Home layout improvements
- More continue watching improvements
- Speed, performance improvements
- Episode and poster rows now go off screen instead of cutting off
- Bug fixes
- Toggling a VPN no longer makes it look like you've been signed out of your Emby/Plex/Xtream server — your saved login is kept, and if the server can't be reached you now get a clear message (with a VPN hint) and a Try Again button instead of being sent back to the setup screen
- Live Sports now covers every sport you can select (Cricket, Rugby, Motorsport, Golf and more)
1.77 23 Jun
- Live Sports row on Home: see matches that are live now or kicking off today, then tap one to find the channels in your playlist showing it. Choose your sports, leagues, and whether to show scores in Settings → Live Sports
- New customisable Home screen: a single landing page with Continue Watching, your Recent Channels, and any TV Shows and Movies categories you choose — pick what appears in Settings → Home
- TMDB integration, lots more metadata including reviews, cast etc.
- Posters now default to a larger size, and the hero artwork's logo no longer slips behind the top bar
- Fixed VOD detail view width issue
- Added match framerate and HDR toggle in player settings
1.75 19 Jun
- Fixed Picture-in-Picture on iPhone pausing the stream when you swipe up to the Home Screen — playback now keeps going in the pop-out window
- Fixed the Live TV preview window pausing on Apple TV when opening and closing the sidebar
- Refreshed playlists now update your channel list instantly — newly added event channels appear without needing to force-close and reopen the app
- Playlist Management now shows when each playlist was last refreshed and when the next refresh is due, with a toast confirmation each time a playlist refreshes
- Fixed a bug where subscribers could see a spurious "Device limit reached" message during EPG updates on app launch, before your subscription had finished loading
- Free accounts are now told about the 2-device limit when signing in on an additional device, with the option to subscribe or sign out instead of silently failing to sync
- Fixed an issue with playlist refreshing requiring force close
- Continue watching Emby matching improvements
- Continue Watching shows pulled from Trakt now match Emby playlists far more reliably, and large shows (e.g. 20+ seasons) no longer time out when opening from Continue Watching
- Added manual matching: if a Continue Watching item can't find the right show or movie in your playlist, you can now pick the correct one yourself — from the "Couldn't Load" prompt or by long-pressing the item — and your choice is remembered
1.71 16 Jun
- The web dashboard's Playlist Editor now supports bulk editing: select multiple channels and hide/show them, find & replace in names, or add/remove prefixes and suffixes in one go
- You can now override a channel's EPG ID and stream URL from the web dashboard Playlist Editor — changes sync to your devices and apply to the guide and playback
- Free dashboard accounts now sync on up to 2 devices (your 2 most recently active) — subscribe for unlimited devices; the dashboard's Devices page shows which devices are syncing
- More continue watching improvements
- Dashboard sync improvements
- Mark season as watched, watched button doesn't lose focus
- Fixed some duplicated shows with watched status
1.70 8 Jun
- Fixed missing posters for Trakt shows/movies in the Continue Watching row
- Opening a Trakt show from Continue Watching no longer asks you to switch playlists — it just opens in your current playlist if the show is available there
- Trakt shows in Continue Watching now search all your playlists (Stremio, Plex, Emby, Xtream — active playlist first) to find episodes and open the show, instead of only checking the active playlist
- Episodes you watched on Trakt now correctly show as watched in the show's detail view, even when your playlist names the show slightly differently (e.g. "Lost (2004)" vs "Lost")
- Trakt now does a two-way sync: connecting your account pushes your KDTV Continue Watching up to Trakt as well as pulling your Trakt activity down
- Added a "Sync Now" button and a "Synced from Trakt" list to Trakt settings so you can sync on demand and see what was pulled in
- Trakt Continue Watching items now match against your playlists (by IMDb, TMDB, then title) so they open and play; if no match is found, the app now tells you exactly which playlists it searched
- Fixed out-of-memory crashes when browsing large movie/TV categories
- Fixed a crash when filtering categories
- Hidden categories can now always be re-shown, and keep their position in the filter list
- Fixed lag/freezing when filtering categories on large playlists
- Category filter changes (show/hide and reordering) now apply instantly while editing and save when you press Done
1.69 5 Jun
- Multi-source picker: automatically finds the same content across all your playlists (Emby, Jellyfin, Plex, IPTV) and shows a quality picker with resolution badges (4K, 1080p, 720p), codec info (HEVC, H264), and play method — now active on both iOS and tvOS
- Fixed sync not working both ways between dashboard and device
- EPG settings improvements, better support of multiple EPGs
- Massively improved time taken to show program data in live tv
- Reduced lag with large xtream playlists
1.68 31 May
- Fixed mini player video not filling frame
- Fixed shows lingering in Continue Watching after all available episodes were watched
- Continue Watching row now appears instantly on cold start and refreshes in the background
- Updated to latest KSPlayer version 3.1.0
- Bug fixes
- Speed improvements
1.65 21 May
- Massively improved full EPG view
- Set reminders for upcoming programs from the EPG and channel rows — get a Watch Now notification 1 minute before they start
1.63 14 May
- Multiple EPGs per playlist: assign up to two EPG sources to a playlist with priority. The primary (P1) is used first; the fallback (P2) fills in whenever P1 has no program for a channel at the current time. Both are refreshed automatically when the playlist is active. Manage assignments from either EPG Management or the playlist's Edit Details screen.
- Multiple speed improvements
- Unified Continue Watching Row across playlists
1.61 13 May
- Bug fixes to how VOD content loads
- Fixed bug with play/pause to make mini player fullscreen (still an issue when player is focused)
- Improved channel name visibility
- Improved VOD Hero view, now shows next episode info and more
- Fixed favourites and continue watching items reappearing after deletion.
- New unified Sync settings screen merges iCloud and Dashboard into one place.
- Favourites now sync across devices through both iCloud and the Dashboard. Save a movie on iPhone and it shows up on Apple TV (and at kdtapps.com/dashboard if signed in).
- Edits to channel and category order made on the TV (or iPhone) now push back up to your Dashboard editor — previously this only flowed downward.
- iCloud sync now syncs watch progress across devices.
- The dashboard at kdtapps.com/dashboard has a new Watch History tab so signed-in users can see what they're watching across all their linked devices, with progress bars and finished/in-progress filters.
1.60 11 May
- Fixed blue bars appearing above and below the Live TV player on iPad — the unified player now extends through the safe area when fullscreen, matching the tvOS behaviour.
- Fixed needing two taps to open a channel on iPad. The double-tap-to-fullscreen flow only applies on tvOS where a mini player slot exists; iPad now opens the channel fullscreen on the first tap.
- Subtitle styling restored: choose Off / Translucent / Solid background and Small / Standard / Large size in Settings → Player → Subtitles. KSPlayer no longer drops the styled background that was lost between 1.51 and 1.53.
- Added airplay and chromecast support
- Added Player Settings → Navigation toggle: choose whether the Back button while watching Live TV opens the channel guide overlay (default) or returns to the Live TV guide with the channel continuing in the mini player.
- Fixed some EPG issues to do with caching
- Miniplayer and full screen now one component, much smoother transition, no restarting of streams
- AVPlayer mini player support
1.58 6 May
- Bug fixes
- Profile isolation
- Remove from library fixes
- Delete addon fixes
- Settings fixes
more Version 2.14 2 days ago
Data Not Linked to You The following data may be collected but it is not linked to your identity:
Identifiers Usage Data Diagnostics