Running on Synology DS920+, DSM 7.2.2-72806 Update 4.
I have replaced my previous Pluto source with this test build so that I can keep my eye on it. So far, all is well.
Running on Synology DS920+, DSM 7.2.2-72806 Update 4.
I have replaced my previous Pluto source with this test build so that I can keep my eye on it. So far, all is well.
I'm using the docker on a Synology DS220+ and so far all looks good.
I'm using dsm-7.2 update 4.
@Bobby_Vaughn I have loaded the latest test build. The channels are working but I have found a difference compared to jgomez177's build. I am running on macos 15.7 using portainer. I am successfully verified with ID/PW token.
If the PLUTO_CODE is set to 'all' or your default there are over the 750 channels that CDVR can't handle. That is normal and the same for both builds. What I did in with jgomez177's build was set this to 'us-east,ca' which give me a total of 620 channels and is under the 750 limit. Again both are the same.
If you go to http:127.0.0.1:7777 or your port with both builds and the countries set as above you will see the difference. With jgomez177's build he returns the url's for both us-east and ca but he also returns the 'all' url. This will give all channels configured and the epg for everthing. Your build does not return the 'all' url's. Your build will respond to the all url with all the channels using http://127.0.0.1:7777/pluto/all/playlist.m3u but it will not return epg data with http://127.0.0.1:7777/pluto/epg/all/epg-all.xml.
To get around this with your build I would need to separate countries into different containers which is not very convenient.
Edit: gramar sucks getting late for me
Edit2: as you see I am using host port 7780
Edit3: last one. changed the port to 7777 so as to not add more confusion in post
I will check in to that in the morning. Try setting the country codes to us-east,ca,all and see if the all works then. Thanks for testing.
@Bobby_Vaughn I tested using 'us-east,ca,all' and that fixes it. Now when you go to http://127.0.0.1:7777 it displays links for all, us-east, and ca. It also keep the channel count at 620 which is correct for us-east,ca.
this test was on macos 15.7 mac mini m4 using portainer to manage the container
@Bobby_Vaughn another minor issue I just found is I can play the channels fine in clients but they will not play in CDVR live guide web page. This does work in jgomez177 's container. The logs do not show anything for channel tuning or failure.
Edit: CDVR does show the failure in it's logs;
2025/09/20 07:44:38.956958 [ERR] Failed to start stream for ch10003: M3U: Could not fetch playlist from 127.0.0.1:7780: GET: http://127.0.0.1:7780/pluto/all/watch/64b585f84ea480000838e446: 400 Bad Request
Thank you. I will have a fix soon.
It seems I am having bigger problems than I thought with Pluto. I haven't done a lot of testing yet but I am failing to tune any channels from both web and clients now. I switched back to just us_east to see if minimizing complexity might help but same thing. I will try some more stuff to see if I can narrow down what is happening.
Edit: I went to verify url and it says all is good
@Bobby_Vaughn Seeing the same here, running side-by-side with @joagomez version. Tuning successful with his version, but not with yours:
2025/09/20 06:28:09.945207 [ERR] Failed to start stream for ch19000: M3U: Could not fetch playlist from htpc6:7780: GET: http://htpc6:7780/pluto/local/watch/673247127d5da5000817b4d6: 400 Bad Request
2025/09/20 06:28:09.945207 [HLS] Couldn't generate stream playlist for ch19000-dANY-ip100.100.xxx.xxx: M3U: Could not fetch playlist from htpc6:7780: GET: http://htpc6:7780/pluto/local/watch/673247127d5da5000817b4d6: 400 Bad Request
Token looks fine:
Credential verification successful! A token was generated.
@bnhf @Rockies It appears Pluto does not like some of the changes I made. I am working on a fix now. Thank you.
I reverted the test and main branches back to 2.21 release which only added the username and password credentials. You can verify if your credentials work by going to
http://<your_server_ip>:<port>/<country_code>/token
e.g. http://127.0.0.1:7777/us_east/token
as before.
I got a little too cute with the changes. I will leave the main branch at 1.21 and only play around on the test branch. Sorry and thanks.
@Bobby_Vaughn @bnhf I reloaded container to v1.21 and everything looks good so far. It is now working in CDVR web guide and using 'us_east,ca,all' gets full 620 channels. I use 'all' in my CDVR definition to get all 620 channels and all the epg data. I noticed the verify url doesn't work but I don't think you had that feature yet in v1.21.
Edit: I am using the 'test' branch
Edit2: the log does show New token for us_east generated
You don't need to add all to the Pluto code on this build. That was one of the changes I made that reverted back to original. It should now work exactly as jgomez177's does with only username and password environment variables added to it. Thanks.
Yes it works without using 'all' in the container definition. Current container settings are 'us_east,ca'. I get all 620 channels with epg data by using 'all' in the CDVR source definition.
New bnhf/olivetin:latest (aka bnhf/olivetin:2025.09.20) pushed today with support for the @Bobby_Vaughn version of this project in Project One-Click. I'm handling it using pluto-for-channels2 as the stack/container name, and Pluto TV 2 as the CDVR Custom Channels Source name -- so you can run this side-by-side with the @joagomez or @maddox versions for testing:

Any of the three versions can be removed using the Project One-Click delete Action. This deletes the CDVR Custom Channels source, the Portainer stack, and the container image -- so it totally clears the decks.
I'll be less aggressive on the updates to the main branch. 
I just installed this new Pluto TV container and source yesterday to test things out. I'll go ahead and install by Project One-Click also, just to see how it goes.
So, on my original Pluto source, I have many blocked channels. I'd like to block the exact same channels in the new source so that my channel lists and guides will match line by line.
I have selected "prefer channel numbers from M3U" which allocates the same numbers to both sources.
Is there an easy way to copy your blocked channels and/or favorites from one source to another?