AndroidHDMI for Channels (ah4c): A virtual channel tuner using HDMI Encoder(s) + streaming stick(s)

Done. Pushed as bnhf/ah4c:latest (aka bnhf/ah4c:2026.09.30).

After playing MeTV for about 3 hours, I stopped the stream and waited for that tuner to be idle. Multiple subsequent tunes to different channels failed on that virtual tuner. One has to wonder if the DTV app will ever be reliable enough to be able to keep it warm.

Womp womp. Nevermind then. This is why I use the FC bridge or an Osprey.

To be honest I love the Osprey UI so much sometimes I wonder why I pay for Channels. It's very good.

Edit: after some thought, I need to step away from development and Channels etc at least for now. I've spent ton of late nights working on things and I'm not sure how healthy it is. Staying up until 3 am working on bash scripts with work the next day begins to accumulate. I think it may be best for now to just use provider apps and check in sometime in the future. Sorry if I am letting anyone down, I just realized that I haven't really enjoyed watching TV in quite a while and have spent a ton of time trying to work around restrictions, get things working or spending money on hardware. I love how beautiful ah4c has become and I am so glad to have been a part of it, but at least for a bit I need a break. I also do wish more effort was put in by the dev team into the Android client which is a big thing for me given the recurring cost. It is my preferred platform and I have an Apple TV for Channels only which feels wasteful to me when my Shield now sits idle yet I'd rather use it!

3 Likes

Sorry to hear that. You will definitely be missed! Thanks for the work you've done on ah4c. Others will benefit from it for some time to come.

4 Likes

I've tried all of the closed captioning engines over the last few days. I think Cohere with Roll-up, 2 lines and a 2.0 sentence length is the best we've seen so far. I watched a show with my wife, being careful not to say "notice the subtitles," and she didn't have any complaints.

Ideally I'd like to run captioning after the show is complete, because the difference is noticeable. EDIT: this has already been solved here and I missed it! Synchronized Closed Captions for Channels

It doesn't look like there's a way to scan the file after it's finished and inject captions into the file's metadata the way ah4c is doing in real time. I tested a 30-minute show and captured an srt with Openwhisper-XXL and the large-v2 model in 8 minutes using the NVIDIA card on my Windows machine. The quality in terms of accuracy and appearing when the words are spoken instead of 2-3 seconds later is unmistakable. I didn't expect them to work, but neither an srt dropped next to the recording nor a muxed mp4+srt > mkv were recognized by Channels. I'm going to keep up not saying anything for a few days and see if the captions cause any complaints.

Thanks for your hard work, @mackid1993. Enjoy your rest!

Thanks. I'm sure I'll be back. Just got to make sure I get to sleep at a reasonable hour and I've noticed too much of my time has been spent on "watching" the tv instead of watching tv. I just need one set top box and my shows, unfortunately right now less code and less maintenance is better for my brain. I realized that after staying up until 3 am again trying to get the directv app scripts working. Today I also realized I've been a bit obsessive and perfectionistic with my work when I really need to focus on my day job and health etc. I have to say I love the community here and that was the primary draw. I will likely watch and see how things evolve, hopefully the devs patch up the android client at some point too. I guess my otther blocker was I bought 10 fire sticks for the Fast Channels bridge and then started getting weird ads when watching live TV which I mainly do so I'm used to sitting through them. I tried to propose an opt-in solution and was told no after spending a ton of energy, that plus sometimes no sleep and spending too much extra money on hardware I guess I realized I need to keep it simple. In all honestly getting shot down on DAI even as a hidden variable ~300 lines of code in it's own file with a few hooks really stung after the amount of time I spent on adjacent tools and also getting that to report properly and target correctly.

Not to mention someone took my whole thought process for Clicker and just scraped it into their own client with no originality. Even using the same language I chose. No unique thought. MIT FOSS is FOSS but still.

1 Like

Take care of yourself first and get back to doing what's best for you. Remember, it's only TV.

3 Likes

100% right. I plan on returning, I just could use a break from all of the upkeep! When I do I'll probably run my patched version of FastChannels. Thank you all for the kind words.

Dude, go take a two week nap! We need you back here fresh as a daisy! :laughing:

2 Likes

Yeah, I mean, I already plugged my Fire Sticks back in. I used the Osprey box for about a day, got a little fed up with it, and missed Channels, so I set my Fire sticks back up. I'm working on my Fast Channels fork/patch to get the local ads working that kind of drive me crazy.

1 Like

While re-captioning with Py Captions, I'm finding that some programs are recorded with "und" for the language. This doesn't phase ah4c, but Faster Whisper fails with:

2026-10-06 12:14:24 [ERROR] pipeline.manual_process::/media/DVR/TV/The Rookie/The Rookie S01E05 2018-11-20 The Roundup 2026-10-06-1059.mpg::20261006-161314-864634: Faster-Whisper transcription failed: 'un' is not a valid language code (accepted language codes: af, ..., zh, yue)

Is there a way to have ah4c set the pre-defined default language (eng in my case) when it detects "und" in the language metadata? I'm asking the Py Captions developer as well since that's where the issue is causing trouble, but I thought it might be possible to force the language on the recording task.

Thanks!

und is a valid language special code (meaning undetermined), so I think it's something Py Captions is going to need to deal with.

Thanks. FWIW, they all turned out to be TVE recordings which already come from Xfinity with in-sync captions. (ie, not ah4c at all!) So I should have been leaving well enough alone. Oh well it was fun spending a few minutes with AI learning how to change the language to eng so that Py Captions could strip out the perfectly good captions and replace it with its own :grin:

That does sound fun. :slight_smile:

Can you explain what AH4C does differently from ADBtuner such that it avoids these sort of issues?

In this case, what I'm highlighting is the FastChannels ah4c bridge for ESPN linear channels, vs ADBTuner with HENA (HDMI Encoder Native Apps). The "bridge" is a tightly integrated solution that doesn't use native apps, remote control emulation or deeplinks, but rather tunes using a very streamlined Android player and the provider's API.

Not all providers are supported, but for those that are, tuning is in the 4-5 second range -- so, it's fast and reliable. The integration between FastChannels and ah4c means that setup and monitoring is as straightforward as possible.

I get it. Different approach to the same problem. Instead of using the provider's own app, and dealing with its warts, and also any changes they may make to the GUI when using RC emulation... this implements its own app that calls the provider's API directly to obtain the same stream.
I've got ADBTuner working now, and has been reliable as long as I leave the devices alone, so I think I'll stay there for now. But if I get frustrated at ADBtuner missing, I might make the swap.

Also works for adbtuner. Im using the pass-through feature to pipe in the DRM'd channels that FastChannels got

It does. It's just not as seamless, or integrated.