What you need
The details from your provider’s signup email: either a playlist URL, or an Xtream server address with a username and password. If the provider gives you a separate XMLTV or EPG link, keep it to hand for the program guide.
Set it up from your phone
Typing a long URL with a Siri Remote is slow, so the Apple TV can take the details from your phone instead. No app is needed on the phone.
Open the phone setup on your Apple TV
On a fresh install, Home opens with a Welcome to Spectati row. Choose Set Up from Your Phone. Once a source exists, the same option is in Settings, under Sources, then Providers.Scan the QR code
Point your phone’s camera at the code on the TV. The phone has to be on the same network as the Apple TV. No camera? The screen also shows an address to open in the phone’s browser and a six-digit code to enter.Fill in the form
On the Spectati Setup page, choose IPTV as the provider and pick M3U, Xtream or JSON under IPTV Format. Paste the address. For Xtream, fill in Xtream Username and Xtream Password. An XMLTV URL and a name are optional.Send it to the TV
Tap Send to Apple TV. The TV asks Add this source?, and Add a Source finishes it. The phone can send another one straight away with Add Another Source.
Set it up with the remote
Start a new IPTV source
Choose Add IPTV on Home, or go to Settings, Sources, Providers, Add Provider and pick IPTV.Enter the address
Pick M3U Playlist, Xtream or JSON Playlist under Source Format, or just paste the link: Spectati detects the format. A link that carries a username and password is recognised as Xtream and split into server, username and password. The XMLTV URL and Name on the same screen are optional.Sign in (Xtream only)
Enter the Username and Password. Turn on Channels Only to skip the provider’s films and series and import live channels alone.Choose how the channels arrive
Show Channels imports everything visible. Start Hidden imports them hidden, which is quicker when you only want a handful from a huge lineup.Add and sync
Add Provider saves it, and Sync 1 Provider on the Your lineup screen runs the first import.
Typing the address
Addresses start with http:// or https://. When an address states a port, Spectati adds the scheme for you: https:// for port 443, http:// for anything else. M3U and JSON addresses also need their path. The XMLTV URL always needs the scheme typed out.
Pasting a full Xtream panel link is fine. Spectati trims player_api.php, get.php and similar endings back to the server address.
Streams inside the playlist can use http, https, rtmp, rtmps, rtp, rtsp, udp or mms. There is no user-agent field, but headers written into the playlist per channel, such as #EXTVLCOPT:http-user-agent and #KODIPROP lines, are honoured.
After the first sync
Spectati refreshes channels, the guide and libraries every 30 minutes by default. Change it in Settings, Sources, Library Updates: turn Refresh automatically off, set Refresh every to 15, 30, 60 or 120 minutes, or use Refresh Now.
Hidden, renamed and regrouped channels are remembered by the channel’s ID from the playlist (its channel-id, then its tvg-id, then its name), so your changes survive a refresh as long as the provider keeps those the same.
Next: set up the XMLTV guide, or cut the lineup down to the channels you watch.