Emulates a network tuner to allow IPTV streams to play in Plex.
This is a very lightweight Windows service that is similar in function to telly 1.1. It has been tested on Windows 10 and Windows Server Core 2016.
- Copy IPTVTuner.exe and related DLLs to the server.
- Ensure that "NT AUTHORITY\NetworkService" has read access to IPTVTuner.exe and related DLLs.
Example of changing ACLs in PowerShell.
$acl = Get-Acl .\IPTVTuner.exe
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule("NT AUTHORITY\NetworkService","Read","Allow")
$acl.SetAccessRule($AccessRule)
$acl | Set-Acl .\IPTVTuner.exe
$acl | Set-Acl .\Newtonsoft.Json.dll
$acl | Set-Acl .\uhttpsharp.dll
- Using an admin console, register the IPTVTuner service.
IPTVTuner.exe --install
You can remove the service with the --uninstall
argument.
- Configure the M3U/EPG URL and filters in the registry.
The following are required:
REG ADD HKLM\Software\IPTVTuner \v M3UURL \t REG_SZ \d "http://provider.com/get.php..."
REG ADD HKLM\Software\IPTVTuner \v EPGURL \t REG_SZ \d "http://provider.com/xmltv.php..."
REG ADD HKLM\Software\IPTVTuner \v Filter \t REG_SZ \d "ENGLISH$"
The following are optional entries; default values are shown:
REG ADD HKLM\Software\IPTVTuner \v IpAddress \t REG_SZ \d "127.0.0.1"
REG ADD HKLM\Software\IPTVTuner \v Port \t REG_DWORD \d 6079
REG ADD HKLM\Software\IPTVTuner \v StartChannel \t REG_DWORD \d 1
- Start the service with
net start IPTVTuner
. If everything is configured correctly, the Application event log should report that IPTVTuner has begun updating the lineup and EPG.
Create a scheduled task to periodically update the EPG. The scheduled task should invoke IPTVTuner.exe --update-epg
. This will regenerate the local epg.xml so that Plex can update its guide.
- Compile the project and register the executable from the bin/Debug folder as per the install guide.
- In an admin console, use
net start IPTVTuner
to start the service. - In Visual Studio, attach to IPTVTuner.exe using Debug > Attach to Process...
When compiled in DEBUG mode, the service should wait in Service.cs#Onstart for a debugger to attach before proceeding.