Short answer: install Channels DVR Server on an always-on computer or NAS, open its web page at port 8089, then go to Settings, Add Source and choose Custom Channels. Paste your M3U link, pick HLS or MPEG-TS, add an XMLTV guide address, and set the stream limit to match your plan. The catch most guides skip: Channels caps a custom playlist at 750 channels and needs a unique ID on every entry, so a raw provider playlist with thousands of lines will either fail or arrive with no guide. Trim it first.
At a glance
Channels DVR with an M3U source
| Cost | $8/month or $80/year, 30 days free; client apps free |
| Server runs on | Mac, Windows, Linux, Raspberry Pi, most NAS, Docker |
| Where to add it | Settings > Add Source > Custom Channels |
| Playlist limit | 750 channels per M3U |
| Recording space | About 8GB per hour of HD |
Before you start
Channels DVR is two things: a server that does the tuning, guide and recording, and free client apps for Apple TV, iPhone, Android, Google TV and Fire TV that you watch on. The server is where all the setup below happens.
You'll need:
- An always-on machine for the server. The official minimum is a 1GHz 64-bit CPU and 512MB of RAM, which almost anything meets. A Mac mini, a small Intel PC, a Synology or QNAP NAS, or a Raspberry Pi 4 or 5 all work.
- Storage if you'll record. Plan on about 8GB per hour of HD.
- An M3U playlist you're entitled to, and ideally an XMLTV guide address. Channels' own documentation says custom channels are for streams you have legal access to. That might be a licensed service that provides an M3U, your own encoder, or public broadcasters' free streams.
- A Channels subscription: $8 a month or $80 a year after a 30-day free trial, as of September 2026.
If you're still deciding between this and Plex, read Channels DVR vs Plex for live TV first. This page assumes you've picked Channels.
Step 1: Install the server
- Go to getchannels.com, open the DVR Server page and download the installer for your platform. On a NAS, use its package centre or the Docker image.
- Run it, then open a browser on the same network and go to
http://[server-ip]:8089. On the server itself,http://localhost:8089works. - Sign in with your Channels account to link the server.
- Choose where recordings go. Pick a drive with plenty of free space, not the system drive of a small PC.
Give the server a fixed local IP address in your router's settings while you're at it. Client apps find it automatically, but a fixed address makes troubleshooting much easier later.
Step 2: Trim and tag your playlist
This is the step that decides whether everything else goes smoothly, and it's the one most walkthroughs skip.
Channels accepts up to 750 channels per M3U, and every entry needs a unique channel-id tag. Raw provider playlists often have thousands of lines, film and series entries mixed with live channels, and no IDs. Feed that in directly and you'll get an error, a truncated list, or channels that can't be matched to a guide.
You have three options:
- Ask your provider for a live-only or filtered playlist. Many can generate one by category.
- Use a playlist editor to pick the channels you want and export a smaller file with IDs and numbers. Hosted editors exist, or run a proxy such as Threadfin on your server.
- Paste a hand-edited playlist straight into Channels using the Text option. Fine for twenty or thirty channels.
Channels reads these tags, per its documentation:
| Tag | What it does | Needed? |
|---|---|---|
channel-id |
Unique ID for the channel | Required |
channel-number |
Number shown in the guide | Strongly advised |
tvg-name |
Callsign or short name | Advised |
tvg-logo |
Logo image URL (4:3) | Optional |
tvc-guide-stationid |
Gracenote station ID, so Channels fills the guide itself | Optional, very useful |
tvc-stream-vcodec / -acodec
|
Declares h264/mpeg2 and ac3/aac | Optional |
Pick channel numbers that don't clash with anything else you have, such as 1000 upwards. If a custom channel uses the same number as an antenna channel, Channels merges them, which is handy when intended and baffling when not.
Not sure what's inside an M3U file? How M3U playlists are structured.
Step 3: Add the Custom Channels source
In the server's web page, go to Settings, then Add Source, and choose Custom Channels. Older versions placed this under Settings > Sources; the option name is the same. You'll see a form along these lines:
| Field | What to enter | Tip |
|---|---|---|
| Nickname | Any name, e.g. "Service A" | Shows as the source name |
| Stream Format | HLS or MPEG-TS | Match the stream URLs: .m3u8 is HLS, .ts is MPEG-TS |
| Source | URL or Text | URL lets Channels re-fetch changes; Text is for hand-made lists |
| Refresh URL daily | On | Picks up provider changes automatically |
| XMLTV guide data | The guide URL, if you have one | Can also be added later |
| Channel numbers | Use the M3U's numbers | Or let Channels assign them |
| Stream limit | Your plan's connection count | Prevents "too many connections" errors |
Save it. Channels imports the list and the channels appear in the guide within a minute or two. Open one in a client app to check it plays before going further.
The stream limit deserves a word. Every live view and every recording uses a connection. If your plan allows two and you record two shows while someone watches a third, the third fails. Set the limit honestly, and Channels will tell you a tuner is busy rather than letting the provider reject the stream.
Step 4: Get the guide right
A DVR is only as good as its guide. Channels gives you three routes, and you can mix them:
- XMLTV from your source. Add the guide URL in the source settings. Channels matches entries using the IDs in your playlist.
-
Gracenote via station IDs. If a channel is a real broadcast network, put its Gracenote ID in
tvc-guide-stationid, or map it in the lineup editor. Channels then pulls the same rich guide data it uses for antenna channels, with series and episode details. - Manual mapping. In the source's lineup editor, select a channel and search for the matching station.
Why this matters for recording: series passes and duplicate detection rely on series and episode information. Gracenote data has it; many XMLTV feeds don't. If "record new episodes only" records everything, that's why.
After big changes, force a refresh from the guide or maintenance settings so you're not waiting for the next scheduled update. If the guide stays blank, this symptom-by-symptom page covers XMLTV problems that aren't specific to Channels.
Step 5: Recording and storage
With the guide working, recording is the easy part. Select a programme in any client and choose Record, or create a series pass. Channels records on the server, so the client can be off.
Three things to set once:
- Padding. Add a minute or two at the end for live sport and news, which overrun.
- Keep rules. Keep the latest few episodes of daily shows, or you'll fill the drive.
- Commercial detection. It's included and runs after recording. It works best on broadcast-style channels.
Watching away from home is built in through the Channels apps, subject to your upload speed and to whatever your source's terms say about out-of-home viewing. How server DVRs compare with recording on a box.
When something doesn't work
| Symptom | Likely cause | Fix |
|---|---|---|
| Import fails or stops partway | Over 750 channels, or VOD entries | Trim to live channels under 750 |
| Channels appear, but won't play | Wrong Stream Format | Switch HLS / MPEG-TS and save |
| Plays in VLC, not in Channels | Codec or redirect quirk | Try the other format; check codec tags |
| Guide blank for some channels | IDs don't match the XMLTV | Fix channel-id or map by hand |
| Antenna and custom channels mixed up | Duplicate channel numbers | Renumber custom channels, e.g. 1000+ |
| "All tuners busy" | Stream limit reached | Check active recordings; raise only if your plan allows |
| Series pass records repeats | Guide lacks episode data | Map to Gracenote where possible |
| Buffering on every channel | Network or source | Wire the server; test the source in VLC |
The VLC test is the quickest way to split a Channels problem from a source problem. If a stream won't play in VLC on the server itself, Channels can't fix it. Using VLC to find what's broken.
Is it worth $80 a year?
For a household that records a lot and watches on several TVs, yes. You get a whole-home DVR with commercial skipping, a fast guide, and free apps on nearly every platform. That's a better experience than most IPTV players' built-in recording, and it puts antenna, TV Everywhere logins and M3U sources in one guide.
For one TV and the odd recording, probably not. A player with built-in recording on a Google TV box does the job for a one-off $20-35. And if you only want to watch, not record, you don't need a server at all.
Channels doesn't provide any channels itself. The cost is for the software. Whatever you point it at should be a source you're entitled to, from an antenna to a licensed service; where the legal line sits in the US.
Quick answers
How do I add IPTV to Channels DVR? In the server web page at port 8089, go to Settings, Add Source, Custom Channels. Enter your M3U URL, choose HLS or MPEG-TS, add an XMLTV guide URL and set the stream limit.
How many channels can a Channels DVR M3U have? Up to 750 per playlist, according to Channels' documentation.
Does Channels DVR support Xtream Codes logins? Not directly as a login type. Use the M3U link your provider generates from the same account.
How much does Channels DVR cost? $8 a month or $80 a year after a 30-day free trial, with free client apps, as of September 2026.
Why does my guide show no programme info? The playlist IDs don't match the XMLTV, or no guide is supplied. Map channels to Gracenote stations where possible.
Can Channels DVR record IPTV? Yes, from any custom channel that plays, within your stream limit.
What should the server run on? Any always-on Mac, Windows or Linux PC, a Raspberry Pi 4 or 5, or a supported NAS.
Menu names reflect Channels DVR Server's web interface in 2026 and can shift between versions. Prices are from getchannels.com. Use custom channels only with streams you're licensed to watch. Checked September 2026.