Introduction

Imagine walking into your living room and saying “Alexa, turn on BBC One” or “Hey Google, play Sky Sports.” The channel changes instantly. No remote. No scrolling through menus. Just your voice and your IPTV stream playing on the big screen. This is not a futuristic dream. It is something you can set up today with Home Assistant and the right IPTV integration tools.

Home Assistant is the most popular open-source smart home platform in the world. It connects over 2,000 different devices and services into a single system. IPTV has been missing from that list for a long time. Most IPTV users rely on separate remotes and apps while the rest of their smart home runs on voice commands. That gap is now closing thanks to new tools that bridge IPTV streams into Home Assistant.

In this guide you will learn exactly how to integrate IPTV streams into Home Assistant for voice control. We cover every method available in 2026 from the powerful iptv-manager Docker tool to xTeVe and the built-in Media Extractor. Each step is explained clearly so you can follow along whether you run Home Assistant on a Raspberry Pi, a NAS, or a dedicated server. By the end of this guide your IPTV channels will answer to your voice through Alexa, Google Assistant, or Home Assistant’s own Assist system.

What You’ll Need

Before you start, gather these items. Most of them are already part of your setup.

  • Home Assistant instance — Running on a Raspberry Pi, NAS, Docker, or dedicated server. Version 2025.2 or later recommended for best voice assistant support. Any installation type works including Home Assistant OS, Core, Supervised, or Container.
  • Active IPTV subscription — A reliable provider with M3U playlist URL or Xtream Codes API credentials. We recommend Perfect IPTV with 9,000+ live channels and 25,000+ on-demand titles. Plans start at just £13 per month for a single connection.
  • Trial Pass



    3 Hours Pass
    £0
    ORDER NOW

  • Docker support — Most IPTV integration tools run in Docker containers. Your Home Assistant host or a separate machine on your network must support Docker. A Raspberry Pi 4 or 5 works well for this purpose.
  • Voice assistant device — An Amazon Echo, Google Nest, or any device with a microphone running Home Assistant Assist.
  • Home Assistant Cloud subscription (optional but recommended) — Nabu Casa at $6.50 per month enables easy Alexa and Google Assistant integration without exposing your home network. A 30-day free trial is available.
  • Network stability — A wired Ethernet connection for your Home Assistant server and streaming devices ensures the lowest latency for IPTV playback. WiFi can work but may introduce buffering during voice-triggered playback.

That is everything you need. Let us walk through the process from start to finish.

Step 1: Choose Your IPTV-to-Home-Assistant Tool

There are several ways to integrate IPTV streams into Home Assistant for voice control. Each method has its own strengths. Choose the one that best fits your setup.

Option A: iptv-manager (Recommended)

iptv-manager is an open-source Python tool built specifically for this use case. It fetches M3U playlists from your IPTV provider, filters them, and serves them through HDHomeRun emulation. This makes your IPTV channels appear as a real TV tuner on your network. It also includes MQTT integration with Home Assistant auto-discovery. When you click “Publish HA Discovery” the tool creates sensors and binary sensors in Home Assistant automatically. This is the most seamless method available today for voice control.

Option B: xTeVe

xTeVe is a mature M3U proxy that has been around for years. It also uses HDHomeRun emulation to make IPTV channels visible to media servers like Plex, Emby, and Jellyfin. From there you can expose those channels to Home Assistant through the Plex or Jellyfin integrations. xTeVe works well but adds an extra layer since you need a media server between the IPTV streams and Home Assistant.

Option C: Home Assistant Media Extractor

The built-in Media Extractor integration can play individual IPTV stream URLs directly to media players. It is the simplest option but does not give you a full channel lineup. You configure each stream URL manually in automations. This works best if you only want voice control for a handful of channels rather than your entire IPTV subscription.

Perfect IPTV UK Pricing Plan



1 Month
£10
ORDER NOW



3 Months
£25
ORDER NOW



6 Months
£40
ORDER NOW

Option D: Threadfin

Threadfin is a fork of xTeVe with a more modern web UI and better EPG handling. It serves the same purpose as xTeVe but is actively maintained with fixes for large playlists. It also uses HDHomeRun emulation and works well with Plex, Jellyfin, and Emby for Home Assistant integration.

For this guide we focus on iptv-manager because it offers the most direct Home Assistant integration with MQTT auto-discovery and no extra layer required. Perfect IPTV subscribers find this method especially smooth because the provider’s Xtream Codes API feeds directly into the tool.

Step 2: Deploy the IPTV Integration Tool

Once you have chosen your tool, deploy it on your network. We use iptv-manager for this walkthrough. It runs in Docker so the setup is the same on any system.

Installing iptv-manager with Docker

Create a directory for iptv-manager on your Home Assistant host or a separate machine on the same network. Inside that directory create a file named docker-compose.yml with the following content:

version: ‘3.8’
services:
iptv-manager:
image: ghcr.io/dreed47/iptv-manager:latest
container_name: iptv-manager
restart: unless-stopped

Limited Time Offers



3+1 Month
£30
ORDER NOW



24 Months
£100
ORDER NOW


ports:
– “5005:5005”
volumes:
– ./data:/app/data
– ./m3u_files:/app/m3u_files
environment:
– HDHR_ADVERTISE_HOST=192.168.1.100
– TZ=Europe/London

Replace the HDHR_ADVERTISE_HOST value with your machine’s local IP address. This tells the HDHomeRun emulation what address to broadcast so other devices on your network can discover it.

Save the file and run this command in the same directory:

docker compose up -d

The container will start and the web interface becomes available at http://your-machine-ip:5005. If you prefer to use xTeVe instead the setup is similar. The xTeVe Docker image is available at ghcr.io/xteve-project/xteve and runs on port 34400 by default. Both tools are lightweight and run well on a Raspberry Pi 4 with 2 GB of RAM alongside Home Assistant.

Troubleshooting: If the container fails to start check that port 5005 is not already in use. Run “docker compose logs” to see the error. If another service uses that port change the left side of the port mapping (for example “5006:5005”). Also make sure your firewall allows traffic on the configured port. On Windows disable the Hyper-V VM switch if Docker networking does not work properly.

IPTV streaming setup guide overview

Step 3: Connect Your IPTV Provider

Now that your integration tool is running, connect your IPTV subscription. Open the web interface in your browser.

Adding a Provider in iptv-manager

Click “Add Config” in the iptv-manager dashboard. You have two options for connection: Xtream Codes API or direct M3U URL.

Xtream Codes API (recommended): Enter your server URL, username, and password. These credentials come from your IPTV provider. Perfect IPTV provides Xtream Codes API details instantly after purchase along with M3U URLs. The API method is preferred because it supports catch-up TV, EPG data, and VOD categories in addition to live channels. Click “Save Config” then click “Fetch M3U” to download your full channel list.

M3U URL: If your provider only offers an M3U playlist link, paste the URL directly. Make sure the URL includes any authentication tokens your provider requires. Some providers embed user-agent headers or referrer information in the URL. Click “Fetch M3U” to download the playlist.

Filtering Channels

After fetching you will see your complete channel list. iptv-manager lets you filter channels using the “Includes” list. Add channel names one per line to keep only the channels you want. This is useful for voice control because you do not need 9,000 channels answering to voice commands. Start with 20 to 30 channels for testing. Perfect IPTV offers 9,000+ live channels covering UK and international content including Premier League, NFL, UFC, and F1. Pick your most-watched ones for the initial setup.

After filtering, click “Save Changes.” iptv-manager generates a filtered M3U playlist and activates the HDHomeRun emulation with only your selected channels. The EPG data is also filtered automatically if your provider supplies it with the playlist.

Troubleshooting: If the fetch fails, double-check your credentials. Xtream Codes API URLs often use port 80 or 8080. If your provider uses a custom port include it in the server URL (e.g., http://server.com:8080). For M3U URLs, open the link in a browser first to confirm it downloads a valid playlist file. If you see an empty channel list after fetching, your provider may require a different user-agent. Add that in the provider settings if the tool supports it.

Step 4: Expose IPTV Channels to Home Assistant

This is the most important step. You need to make your IPTV channels visible to Home Assistant as entities that voice assistants can control. iptv-manager offers the most direct path for this.

Using iptv-manager MQTT Auto-Discovery

IPTV channel list and browsing interface

iptv-manager includes a built-in MQTT integration that publishes real-time stream state to any MQTT broker. It sends updates every 10 seconds when a stream changes and every 60 seconds as a heartbeat. The tool supports Home Assistant MQTT auto-discovery.

First, make sure you have the MQTT integration configured in Home Assistant. Go to Settings > Devices & Services > Add Integration > Search for “MQTT.” Enter your MQTT broker address. If you do not have an MQTT broker, install the Mosquitto broker add-on from the Home Assistant Add-on Store. It takes two minutes to set up.

In the iptv-manager web interface, navigate to Tools > MQTT Integration. Enter your MQTT broker details and click “Save.” Then click “Publish HA Discovery.” Home Assistant will automatically create sensor and binary_sensor entities for your IPTV channels. You do not need to write any YAML configuration. The entities appear in Home Assistant within seconds.

Using HDHomeRun Emulation with Plex/Jellyfin/Emby

If you prefer to use a media server as an intermediate layer, iptv-manager and xTeVe both emulate HDHomeRun tuners. In Plex, go to Settings > Live TV & DVR > Set Up Plex DVR. You should see “HDHomeRun (iptv-manager)” or “HDHomeRun (xTeVe)” appear in the device list. Select it and follow the DVR setup. Once configured, install the Plex integration in Home Assistant and your IPTV channels are available as media player entities.

Using Media Extractor for Direct Stream URLs

For a simpler approach with fewer channels, use Home Assistant’s built-in Media Extractor integration. Add it from Settings > Devices & Services > Add Integration > Media Extractor. Then create automations that play specific stream URLs. For example you can say “Alexa, play BBC One” and an automation triggers the media_extractor.play_media action with the stream URL mapped to that channel name.

This method requires manual configuration for each channel but works without any extra Docker tools. It is ideal if you only want voice control for 5 to 10 channels.

Troubleshooting: If MQTT auto-discovery does not create entities in Home Assistant, check that the MQTT integration is active and the broker is reachable from both iptv-manager and Home Assistant. Use “mosquitto_sub -t ‘#” -v” from the command line to see if iptv-manager topics are being published. If the HDHomeRun emulation is not discovered by Plex, confirm that the HDHR_ADVERTISE_HOST variable in your docker-compose.yml matches your machine’s actual IP address. Restart the container after changing it.

Step 5: Connect Your Voice Assistant

With your IPTV channels exposed as Home Assistant entities, the final connection is to your voice assistant. You have three choices: Alexa, Google Assistant, or Home Assistant Assist.

Connecting Alexa via Home Assistant Cloud

The easiest method uses a Nabu Casa subscription. Go to Settings > Home Assistant Cloud in your Home Assistant and click “Start your free trial.” After the 30-day trial it costs $6.50 per month. On the Cloud page click “Enable” next to Alexa. Open the Alexa app on your phone, go to More > Skills & Games, search for “Home Assistant,” and enable the skill. Sign in with your Nabu Casa account. Say “Alexa, discover my devices” and your IPTV channel entities appear in Alexa as new devices.

IPTV streaming quality and resolution options

Connecting Google Assistant via Home Assistant Cloud

On the same Home Assistant Cloud page click “Enable” next to Google Assistant. Open the Google Home app on your phone, tap + > Set up device > Works with Google, search for “Home Assistant,” and sign in with your Nabu Casa account. Your IPTV entities appear in the Google Home app automatically.

Using Home Assistant Assist (No Cloud Required)

If you prefer a fully local setup with no subscription, use Home Assistant’s built-in Assist. Go to Settings > Voice Assistants and configure an Assist pipeline. You need a text-to-speech engine like Piper and a speech-to-text engine like Whisper. Both run locally on most Home Assistant hardware. Add a microphone device such as the Home Assistant Voice Preview Edition or a USB microphone connected to a Raspberry Pi. Expose your IPTV entities in the Assist settings and they respond to voice commands without any cloud dependency.

Choosing Which Entities to Expose

Go to Settings > Voice Assistants > Expose. You will see a list of all your entities including the IPTV sensors created by iptv-manager. Toggle the ones you want your voice assistant to control. Start with a few channels to test. You can always add more later. Media player entities work best for IPTV because they support play, pause, stop, and channel switching commands.

Troubleshooting: If Alexa or Google Assistant cannot discover your IPTV entities, make sure they are exposed in the Voice Assistants settings page. Each entity must be toggled on for the specific voice assistant you are using. For Alexa, also check that the Home Assistant skill is linked to the same Nabu Casa account as your Home Assistant instance. Say “Alexa, discover devices” after every change to force a re-scan. For Google Assistant, use the “Sync my devices” option in the Google Home app.

Step 6: Test Voice Commands for IPTV

This is the moment everything comes together. You can now control your IPTV channels with your voice. Here are the commands that work with each voice assistant.

Alexa Commands for IPTV

“Alexa, turn on BBC One.”
“Alexa, play Sky Sports Main Event.”
“Alexa, change channel to ITV.”
IPTV app settings and configuration panel
“Alexa, pause.”
“Alexa, stop.”
“Alexa, resume.”
“Alexa, volume up.”
“Alexa, set volume to 30.”

Alexa treats your IPTV channels as media player devices. The “turn on” command selects the source and starts playback. The “play” command performs the same action on most setups.

Google Assistant Commands for IPTV

“Hey Google, play BBC One.”
“Hey Google, turn on Sky Sports News.”
“Hey Google, pause.”
“Hey Google, stop.”
“Hey Google, next channel.”
“Hey Google, volume up.”

Google Assistant handles IPTV channels as media sources. You can also say “Hey Google, play BBC One on Living Room TV” if you have multiple media players in different rooms.

IPTV device compatibility and supported platforms

Home Assistant Assist Commands

“Turn on BBC One.”
“Play Sky Sports Main Event.”
“Pause the TV.”
“Channel up.”
“Set volume to 50 percent.”
“What is playing on BBC One?”

Assist responds to natural language and works entirely offline. This is the fastest option with the lowest latency because commands do not travel through cloud servers. Response time is typically under one second.

Custom Sentences for Assist

For more advanced voice control you can define custom sentences in Home Assistant. Create a file named custom_sentences/en/iptv.yaml in your Home Assistant config directory. Define sentences like “Change to [channel]” where [channel] is a slot mapped to your entity list. This gives you full control over the exact phrasing your voice assistant understands. Home Assistant Assist supports multiple languages so you can define sentences in any language your household uses.

Troubleshooting: If a voice command does not trigger the correct channel, check the entity name in Home Assistant. Voice assistants match commands to the friendly name of the entity. Rename your entities to match the channel names you use in speech. For example rename “media_player.bbc_one_HD” to “BBC One” in the entity settings. Also avoid special characters like apostrophes in channel names as some voice assistants struggle with them.

Troubleshooting Common Issues

Issue 1: Voice assistant says “Device is not responding”

IPTV connection setup and network configuration

The IPTV stream URL may be unreachable. Test the stream URL directly in VLC or a browser. If it does not play, your IPTV provider may have changed the URL. Fetch a fresh M3U playlist from your provider dashboard. Perfect IPTV support can help with stream URL changes. They offer 24/7 support via WhatsApp and email. Also check that your IPTV subscription is still active. Log in to your provider account and verify the expiry date.

Issue 2: Channels appear in Home Assistant but voice control does nothing

The entity may not be properly exposed to your voice assistant. Go to Settings > Voice Assistants > Expose and verify the toggle is on for the correct voice assistant. Then say “Alexa, discover devices” or “Hey Google, sync my devices” to refresh the entity list. Some voice assistants cache device names for up to 30 minutes. Wait and try again.

Issue 3: MQTT auto-discovery does not create entities

Check that your MQTT broker is running and reachable. In Home Assistant go to Settings > Devices & Services > MQTT and confirm the connection status shows “Connected.” In iptv-manager verify the MQTT broker address and port. The default Mosquitto port is 1883. If you use authentication, make sure the username and password match between both tools. Restart iptv-manager after saving MQTT settings.

Issue 4: IPTV stream buffers heavily when controlled by voice

Voice control adds a small overhead because the command travels through your smart home stack. If you notice buffering, check your internet speed. You need at least 25 Mbps for smooth HD IPTV streaming. Use a wired Ethernet connection for your streaming device rather than WiFi. Perfect IPTV includes a free Surfshark VPN with every subscription which can help if your ISP throttles streaming traffic. Enable the VPN on your Home Assistant host or streaming device and test again.

Issue 5: HDHomeRun emulation not discovered by Plex or Jellyfin

Confirm that the HDHR_ADVERTISE_HOST environment variable in iptv-manager matches your machine’s actual IP address. Both devices must be on the same network subnet. If you run Home Assistant and iptv-manager on different Docker networks they may not see each other. Use “host” network mode in Docker or ensure both containers are on the same bridge network. Restart the Plex or Jellyfin DVR setup and scan for tuners again.

Issue 6: Audio and video out of sync after voice switching

This happens when the stream format changes between channels. Open your media player’s audio delay setting and adjust in small steps. If the problem is consistent across all voice-controlled channels, the issue is likely on your IPTV provider side. Contact Perfect IPTV support for help with stream encoding settings.

Frequently Asked Questions

Can I integrate IPTV into Home Assistant without Docker?

IPTV streaming performance and buffering optimization

Yes. The Home Assistant Media Extractor integration works without any Docker containers. You configure stream URLs directly in automations. However this method only supports a few channels and requires manual setup for each one. For a full channel lineup with voice control, Docker-based tools like iptv-manager or xTeVe are strongly recommended.

Do I need a Home Assistant Cloud subscription for voice control?

Not if you use Home Assistant Assist. Assist runs completely locally with no monthly fee. You need a Nabu Casa subscription only if you want to use Alexa or Google Assistant as your voice interface. The $6.50 per month subscription is optional but makes Alexa and Google setup much simpler than the manual alternative.

What internet speed do I need for voice-controlled IPTV?

At least 25 Mbps for HD streams and 50 Mbps for 4K streams. Voice commands themselves use minimal bandwidth but the IPTV stream must be stable. A wired Ethernet connection for your streaming device gives the best results. WiFi can introduce buffering especially in homes with multiple devices on the same network.

Does IPTV work with Home Assistant Assist offline?

Yes. Assist runs entirely on your local Home Assistant instance. Speech-to-text and text-to-speech engines like Whisper and Piper also run locally. This means your IPTV voice commands work even when your internet goes down. For Alexa and Google Assistant you do need an internet connection because those commands process in the cloud.

How many IPTV channels can I expose to voice control?

Voice assistants work best with 20 to 50 exposed channels. Exposing 9,000 channels causes long discovery times and confusing voice matches. Use iptv-manager or xTeVe to filter your playlist down to your most-watched channels. Perfect IPTV offers 9,000+ channels so you have plenty to choose from. Pick your favourites and leave the rest in the full playlist for app-based viewing.

Can I use both Alexa and Google Assistant with the same IPTV setup?

Yes. Home Assistant Cloud supports both voice assistants simultaneously. Expose your IPTV entities to both in the Voice Assistants settings. Each assistant discovers the entities independently. You can say “Alexa, play BBC One” from your Echo in the kitchen and “Hey Google, play Sky Sports” from your Nest Hub in the living room.

Does this work with any IPTV provider?

Yes if your provider offers M3U playlist URLs or Xtream Codes API access. Perfect IPTV supports both connection methods. The Xtream Codes API is preferred because it includes EPG data and VOD categories. Providers that only offer a custom app without M3U or API access cannot be integrated through these methods.

Can I record IPTV shows through Home Assistant?

IPTV user interface and navigation experience

If you route IPTV through Plex or Jellyfin using HDHomeRun emulation, you can use their DVR features to record shows. Schedule recordings through voice commands by exposing scenes or scripts to your voice assistant. Say “Alexa, activate Record Match” and a Home Assistant automation starts a Plex DVR recording for the specified channel and time slot.

Is there a free trial to test IPTV with Home Assistant?

Yes. Perfect IPTV offers a 3-hour free trial with no credit card required. Test the service with your Home Assistant setup before committing. They also have a 3-day paid trial for just £3 if you want more time to configure the integration. Activation is instant so you can start testing within minutes.

Does iptv-manager support EPG for voice commands?

Yes. iptv-manager generates an XMLTV file at http://your-ip:5005/epg.xml. Feed this URL into Plex, Jellyfin, or Emby during DVR setup to get a full programme guide. Voice assistants can use EPG data for commands like “Alexa, what is playing on BBC One?” if your media server integration supports it.

Conclusion

Integrating IPTV streams into Home Assistant for voice control transforms how you watch live television. You move from hunting for remotes and scrolling through channel lists to simply saying what you want to watch. The setup takes about 30 minutes with the right tools and then your entire IPTV subscription becomes part of your smart home ecosystem.

The key steps are simple: deploy iptv-manager or xTeVe in Docker, connect your IPTV provider through Xtream Codes API or M3U URL, expose the filtered channels to Home Assistant via MQTT auto-discovery or media server integration, and connect your voice assistant of choice. Every step in this guide works with hardware you likely already own including a Raspberry Pi, NAS, or any always-on PC on your network.

Perfect IPTV is an excellent choice for this setup. Their Xtream Codes API integrates seamlessly with iptv-manager. They offer 9,000+ live channels covering UK and international sports including Premier League, NFL, UFC, and F1. Their 25,000+ on-demand library means you have endless content beyond live TV. Every subscription comes with a free Surfshark VPN to protect your privacy and prevent ISP throttling. Their AntiFreeze Technology powered by the H264 codec ensures buffer-free streaming even when you switch channels through voice commands.

Plans start at just £13 per month for a single connection with options for 2 or 3 simultaneous connections. Annual subscribers receive a 10% renewal discount available by messaging their team on WhatsApp. All plans include 99.9% uptime and instant activation so you can start building your voice-controlled IPTV setup today.

Start your free 3-hour trial now — no credit card needed. Test how Perfect IPTV works in your Home Assistant setup. If you need help their team is available 24/7 on WhatsApp or by email at Contact.perfectiptv@gmail.com. For the best deals check their special offers page or explore reseller plans if you want to share IPTV with family and friends.

Stop reaching for the remote. Start speaking your channels. Your voice is the only control you need.