{"id":31519075,"url":"https://github.com/fabianishere/udm-iptv","last_synced_at":"2025-10-31T05:03:12.219Z","repository":{"id":39675052,"uuid":"426938749","full_name":"fabianishere/udm-iptv","owner":"fabianishere","description":"Helper tool for configuring routed IPTV on the UniFi Dream Machine (Pro) ","archived":false,"fork":false,"pushed_at":"2025-04-21T21:27:54.000Z","size":196,"stargazers_count":492,"open_issues_count":15,"forks_count":76,"subscribers_count":31,"default_branch":"master","last_synced_at":"2025-04-21T21:35:12.760Z","etag":null,"topics":["ftth","iptv","kpn","ubiquiti","unifi","unifi-dream-machine"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fabianishere.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"COPYING.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"custom":"https://www.buymeacoffee.com/fabianishere"}},"created_at":"2021-11-11T09:16:43.000Z","updated_at":"2025-04-21T21:27:27.000Z","dependencies_parsed_at":"2022-07-14T10:48:31.313Z","dependency_job_id":"8d5513de-4a25-4b67-b754-4fe1c34cc752","html_url":"https://github.com/fabianishere/udm-iptv","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/fabianishere/udm-iptv","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabianishere%2Fudm-iptv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabianishere%2Fudm-iptv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabianishere%2Fudm-iptv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabianishere%2Fudm-iptv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fabianishere","download_url":"https://codeload.github.com/fabianishere/udm-iptv/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabianishere%2Fudm-iptv/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278136401,"owners_count":25935917,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-03T02:00:06.070Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ftth","iptv","kpn","ubiquiti","unifi","unifi-dream-machine"],"created_at":"2025-10-03T09:01:59.869Z","updated_at":"2025-10-03T09:03:28.111Z","avatar_url":"https://github.com/fabianishere.png","language":"Shell","funding_links":["https://www.buymeacoffee.com/fabianishere"],"categories":["Shell","Dream Machine Utilities"],"sub_categories":["Other Platforms"],"readme":"# IPTV on UniFi OS\n\nThis document describes how to set up IPTV on UniFi routing devices based on \nUniFi OS, such as the UniFi Dream Machine (UDM) or the UniFi Dream Router (UDR).\nThese instructions have been tested with the IPTV network from KPN\n(ISP in the Netherlands).\nHowever, the general approach should be applicable for other ISPs as well.\n\nFor getting IPTV to work on the legacy UniFi Security Gateway, please refer to\nthe [following guide](https://github.com/basmeerman/unifi-usg-kpn).\n\n## Contents\n\n1. [Global Design](#global-design)\n2. [Prerequisites](#prerequisites)\n3. [Setting up Internet Connection](#setting-up-internet-connection)\n4. [Configuring Internal LAN](#configuring-internal-lan)\n5. [Configuring Helper Tool](#configuring-helper-tool)\n6. [Troubleshooting and Known Issues](#troubleshooting)\n\n## Global Design\n\n```\n        Fiber\n          |\n    +----------+\n    | FTTH NTU |\n    +----------+\n          |\n      VLAN4 - IPTV\n      VLAN6 - Internet\n          |\n      +--------+\n      | Router |  - Ubiquiti UniFi device\n      +--------+\n          |\n         LAN\n          |\n      +--------+\n      | Switch |  - Ubiquiti UniFi Switch (Optional)\n      +--------+\n       |  |  |\n       |  |  +-----------------------------+\n       |  |                                |\n       |  +-----------------+              |\n       |                    |              |\n+--------------+       +---------+      +-----+\n| IPTV Decoder |       | WiFi AP |      | ... |\n+--------------+       +---------+      +-----+\n  - KPN IPTV\n  - Netflix\n```\n\n# Prerequisites\n\nMake sure you check the following prerequisites before trying the other steps:\n\n1. The kernel on your UniFi device must support multicast routing\n   in order to support IPTV. Please upgrade to the latest firmware.\n2. The switches in-between the IPTV decoder and the UniFi device should have IGMP\n   snooping enabled. They do not need to be from Ubiquiti necessarily.\n3. The FTTP NTU (or any other type of modem) of your ISP must be connected to\n   one of the WAN ports of your UniFi device.\n\n## Setting up Internet Connection\n\nThe first step is to set up your internet connection to your ISP with the UniFi\ndevice acting as modem, instead of some intermediate device. These steps might\ndiffer per ISP, so please check the requirements for your ISP.\n\nBelow, we describe the steps for KPN. Feel free to update this document with the\nsteps necessary for your provider.\n\n### KPN\nIf you are a customer of KPN, you can set up the WAN connection as follows:\n\n1. In your UniFi Dashboard, go to **Settings \u003e Internet**.\n2. Select the WAN port that is connected to the FTTP NTU.\n3. Enable **VLAN ID** and set it to 6 for KPN.\n4. Set **IPv4 Connection** to _PPPoE_.\n5. For KPN, **Username** should be set to `internet`.\n6. For KPN, **Password** should be set to `internet`.\n\n## Configuring Internal LAN\n\nTo operate correctly, the IPTV decoders on the internal LAN possibly require\nadditional DHCP options. You can add these DHCP options as follows:\n\n1. In your UniFi Dashboard, go to **Settings \u003e Networks**.\n2. Select the LAN network on which IPTV will be used.\n   We recommend creating a separate LAN network for IPTV traffic if possible in\n   order to reduce interference of other devices on the network.\n3. Enable **Advanced Configuration \u003e IGMP Snooping**, so IPTV traffic is only\n   sent to devices that should receive it.\n\n## Configuring Helper Tool\n\nNext, we will use the udm-iptv package to get IPTV working on your LAN.\nThis package uses [igmpproxy](https://github.com/pali/igmpproxy) to route \nmulticast IPTV traffic between WAN and LAN.\n\n### Installation\nSSH into your machine and execute the commands below in UniFi OS (not in UbiOS).\n```bash\nsh -c \"$(curl https://raw.githubusercontent.com/fabianishere/udm-iptv/master/install.sh -sSf)\"\n```\n\nThis script will install the `udm-iptv` package onto your device.\nThe installation process supports various pre-defined configuration profiles for\npopular IPTV providers. Below is a list of supported IPTV providers: \n\n|  Provider | Country | Supported                                                                                                           |\n|----------:|:-------:|---------------------------------------------------------------------------------------------------------------------|\n|       KPN |   NL    | Yes                                                                                                                 |\n|    XS4ALL |   NL    | Yes                                                                                                                 |\n|     Tweak |   NL    | Yes                                                                                                                 |\n|    Solcon |   NL    | Yes                                                                                                                 |\n|   Telekom |   DE    | [Manual configuration necessary](https://github.com/fabianishere/udm-iptv/discussions/8)                            |\n| MagentaTV |   DE    | [Manual configuration necessary](https://github.com/fabianishere/udm-iptv/issues/2#issuecomment-1007413230)         |\n|  Swisscom |   CH    | Yes                                                                                                                 |\n|     Init7 |   CH    | Yes                                                                                                                 |\n|       MEO |   PT    | Yes                                                                                                                 |\n|        BT |   GB    | Yes                                                                                                                 |\n|   Vivo SP |   BR    | Yes - Tested with GPON TP-Link TX-6610                                                                              |\n|  Vivo GVT |   BR    | Yes - [Manual configuration necessary](https://github.com/fabianishere/udm-iptv/issues/167#issuecomment-1244797462) |\n|   Telenor |   NO    | Yes                                                                                                                 |\n|    PostTV |   LU    | [Manual configuration necessary](https://github.com/fabianishere/udm-iptv/discussions/86#discussioncomment-2345968) |\n\nIf your ISP is not supported, you may select the _Custom_ profile, which allows\nyou manually configure the package to your needs. \nWe appreciate if you share the configuration so others can also benefit.\nSee the [profiles](profiles) directory for examples of existing configuration\nprofiles.\n\nThe package installs a service that is started during the\nboot process of your UniFi device and that will set up the applications\nnecessary to route IPTV traffic. After installation, the service is automatically\nstarted.\n\nIf you experience any issues while setting up the service, please visit the\n[Troubleshooting](#troubleshooting) section.\n\n### Installation across Firmware Updates\n\n**Please remember to make a backup of your configuration before a\nfirmware update**. Currently, your configuration and installation might or might\nnot persist across firmware updates depending on the type of upgrade\n(see [#120](https://github.com/fabianishere/udm-iptv/issues/120)).\n\n### Configuration\nYou can modify the configuration of the service interactively as follows:\n```bash\nudm-iptv configure\n```\nSee below for a reference of the available options to configure:\n\n| Option                | Description                                                                                             |\n|-----------------------|---------------------------------------------------------------------------------------------------------|\n| IPTV_WAN_INTERFACE    | Interface on which IPTV traffic enters the router                                                       |\n| IPTV_WAN_RANGES       | IP ranges from which the IPTV traffic originates (separated by spaces)                                  |\n| IPTV_WAN_VLAN         | ID of VLAN which carries IPTV traffic (use 0 if no VLAN is used)                                        |\n| IPTV_WAN_DHCP         | Boolean to indicate whether DHCP is enabled on the IPTV WAN (VLAN) interface                            |\n| IPTV_WAN_DHCP_OPTIONS | [DHCP options](https://busybox.net/downloads/BusyBox.html#udhcpc) to send when requesting an IP address |\n| IPTV_WAN_STATIC_IP    | Static IP address to assign to the IPTV WAN (VLAN) interface (if DHCP is disabled)                      |\n| IPTV_WAN_MAC          | Custom MAC address to assign to the IPTV WAN VLAN interface                                             |\n| IPTV_LAN_INTERFACES   | Interfaces on which IPTV should be made available                                                       |\n| IPTV_IGMPPROXY_DEBUG  | Enable debugging for igmpproxy                                                                          |\n| IPTV_IGMPPROXY_DISABLE_QUICKLEAVE | Boolean to disables the quickleave feature for the IGMP Proxy. Set this to true if you have more than one IPTV decoder. Supported by both improxy and igmpproxy. |\n\nThe configuration is written to `/etc/udm-iptv.conf` (within UniFi OS).\n\n### Upgrading\nUse the following command to upgrade `udm-iptv`:\n```bash\nudm-iptv upgrade\n```\nIf that command does not exist, please re-run the installation script.\n\n### Removal\nTo fully remove an `udm-iptv` installation from your UniFi device, run the follow command:\n```bash\nudm-iptv uninstall\n```\n\n## Troubleshooting\n\nBelow is a non-exhaustive list of issues that might occur while getting IPTV to\nrun on your UniFi device, as well as troubleshooting steps. Please check these\ninstructions before opening a discussion.\n\n1. **Check if your IPTV receiver is on the right VLAN**  \n   Your IPTV receiver might not be VLAN to which the IPTV traffic is forwarded.\n2. **Check if IPTV traffic is forwarded to the right VLAN**  \n   Make sure that you have configured `IPTV_LAN_INTERFACES` correctly to forward\n   to right interfaces (e.g., `br4` for VLAN 4).\n3. **If you have more than one IPTV decoder, disable the quickleave feature**\n   Quickleave is enabled in the default configuration for improxy (the default IGMP proxy) and igmpproxy. If you have multiple IPTV decoders, quickleave will stop a stream for all decoders when just one decoder changes to a different stream.\n4. **Check if your kernel supports multicast routing**  \n   If `MRT_INIT failed; Errno(92): Protocol not available` appears in \n   diagnostics, your kernel does not support multicast routing.\n5. **Check if your issue has been reported already**  \n   Use the GitHub search functionality to check if your issue has already been\n   reported before.\n\n### Getting Help or Reporting an Issue\nIf your issues persist, you may seek help on our [Discussions](https://github.com/fabianishere/udm-iptv/discussions) page.\nPlease keep [GitHub Issues](https://github.com/fabianishere/udm-iptv/issues)\nonly for bugs or feature requests related to the project (no configuration-related issues).\n\nWhen opening a discussion or reporting an issue, **please share the name of your\nISP as well as the diagnostics reported by our diagnostic tool**:\n```bash\nudm-iptv diagnose\n```\n\n## Contributing\nQuestions, suggestions and contributions are welcome and appreciated!\nYou can contribute in various meaningful ways:\n\n* Report a bug through [GitHub issues](https://github.com/fabianishere/udm-iptv/issues).\n* Contribute improvements to the documentation (e.g., configuration for other ISPs).\n* Help answer questions on our [Discussions](https://github.com/fabianishere/udm-iptv/discussions) page.\n\n## License\nThe code is released under the GPLv2 license. See [COPYING.txt](/COPYING.txt).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffabianishere%2Fudm-iptv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffabianishere%2Fudm-iptv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffabianishere%2Fudm-iptv/lists"}