This simple Docker image will generate an M3U playlist and EPG optimized for use in Channels and expose them over HTTP.
The Custom Channels feature in Channels utilizes existing streaming sources to make them live TV channels in the app.
Channels allows for additional extended metadata tags in M3U playlists that allow you to give it extra information and art to make the experience better. This project adds those extra tags to make things look great in Channels.
Pluto TV requires authentication for streams to work. You'll need a free Pluto TV account.
You must provide your Pluto TV credentials via environment variables:
PLUTO_USERNAME- Your Pluto TV account emailPLUTO_PASSWORD- Your Pluto TV account password
Running the container:
docker run -d --restart unless-stopped --name pluto-for-channels -p 8080:80 \
-e PLUTO_USERNAME='your@email.com' \
-e PLUTO_PASSWORD='yourpassword' \
jonmaddox/pluto-for-channels
Visit the status page to get access to your M3U playlists and EPG XML.
http://127.0.0.1:8080
By using the START env var when starting the docker container, you can tell it to start channel numbers with this value. Original Pluto channel numbers will be added to this, keeping all of the channels in the same order they are on Pluto.
Default: 10000 (channel 345 becomes 10345). This ensures consistent channel numbers across all tuners for proper Channels DVR Server failover.
To use a custom starting number:
docker run -d --restart unless-stopped --name pluto-for-channels -p 8080:80 \
-e PLUTO_USERNAME='your@email.com' \
-e PLUTO_PASSWORD='yourpassword' \
-e START=80000 \
jonmaddox/pluto-for-channels
Once you have your Pluto M3U and EPG XML available, you can use it to custom channels channels in the Channels app.
12 tuners are available for concurrent streaming. Add as many as you need:
- Add tuner playlists as separate Custom Channels sources:
- Source 1:
http://your-server:8080/tuner-1-playlist.m3u - Source 2:
http://your-server:8080/tuner-2-playlist.m3u - ... up to tuner-12
- Source 1:
- Set the Stream Limit dropdown to 1 for each source
- Use the same EPG URL (
http://your-server:8080/epg.xml) for all sources - Channels DVR Server will automatically coordinate between tuners and failover as needed
Next, set the provider for your new source and choose custom URL.
Finally, enter your EPG xml url and set it to refresh every 6 hours.


