It seems that the two major forks of this project both use Android sticks and ADB but that wasn't an option for me as a Spectrum user as there is no app for Android/Fire TV. I actually started out using the chrome tab capture but with a dedicated i5 8500t I was still getting consistent stutters every few minutes. With that machine taking around 10w idle and 25w during streaming, I didn't want to throw any more power at it.
My next try started with the original github ah4c project using a Link Pi Enc1-v3 being fed by a Spectrum 110-H set top box. I had a pretty janky script that used a switchbot mini to blast ir signals for tuning. The streaming quality was great and the tuning speed was reasonable, but annoyingly the 110-H actually has certain channels only in SD. These same channels play just fine in HD both through the website and the apps.
My next step was to add a USB HDMI capture dongle to the Link Pi with a Roku 3800x streaming stick. I already had the stick and saw that there was an api that supported starting the Spectrum app and pressing buttons. For this, I made an even jankier script that used key presses to bring up the guide and scroll through channels 4 at a time to get to the right channel. It was actually pretty reliable but tuning speed could be up to around 20s to get from the farthest channels. This solution also had the drawback of requiring that the roku app stayed on and streaming. I toyed with letting it sleep, but starting the Spectrum app from scratch and tuning was unreliable and would take on the order to 40s when it worked.
The solution that I settled on is still based on the original ah4c repo but I've replaced the STB and Roku with a couple of used Apple TVs that I picked up on ebay for ~$40. Another user, @chasut, posted about a solution with Apple TV via Home Assistant and also linked to the Apple TV python library that Home Assistant uses. It turns out that python library comes with a utility called atvremote that actually has everything needed without even getting into the python. Setting up and connecting to the Apple TV is through a guided wizard and then tuning is just a single command.
atvremote -s $1 launch_app=spectrumTV://watch.spectrum.net/livetv/$2?linkorigin=sirilivetunein&idtype=tms
$1
is the ip address of the paired Apple TV and $2
is the tmsid for the channel that you can grab off the Spectrum web player. Tuning is quick and reliable and stopping the channel returns home so I'm no longer streaming 24/7. I'm still working on a smoothness issue with my Google TV sticks but I'm sure it's something to do with those sticks and my Link Pi settings as the streams are completely smooth on all of the other platforms that I've used.
Overall I'm very satisfied with end result. This was originally motivated by getting Nick Jr and Tennis channel working again but now I've also gained access to a bunch of Spectrum sports channels and premium movie channels that I mostly ignored since I couldn't get them into Channels.
Thanks to the devs and many users that have posted their experiences and helped me get this up and running! I'm happy to share more details of my setup, but honestly the pyatv tools take most of the work out of it.