I did it via ADB. Also I hope your cat gets better!
Mine was sick with a resistant UTI for nearly a year. We finally seemed to get her healthy again.
I am using AH4C as my preference. What do I put down for the channel for alternate channels? Like the MLB Network Alt channel? I have tried 213-1 and 213.1 and not getting it. Has anyone tried any alternate channels?
I don't have my mlb setup yet, but I believe you need to use deeplinks for the alternates. irc you can mix them with channel#'s in the same m3u
Here's where you could start.
bnhfCommunity Developer
3
If tuning to 242, doesn't give you consistent results -- what if you tuned to a non-USA channel above or below and then sent a KEYCODE_CHANNEL_UP or KEYCODE_CHANNEL_DOWN as appropriate. BTW, I recommend using text-based ADB commands, rather than numeric codes for readability. Here's a list:

KeyEvent | Android Developers
You could use 242A and 242B in the M3U for channel-id, channel-number, and at the end of the URL. These special channels would then tune to 243 (or whatever the next valid channel below 242 is), followed by one, two or three channel ups.
So, something like this (for example):
tuneChannel() {
if [[ "$channelID" == 242 ]]; then
$adbTarget shell input text "243"
sleep 1
$adbTarget shell input keyevent KEYCODE_CHANNEL_UP
$adbTarget shell input keyevent KEYCODE_CHANNEL_UP
$adbTarget shell input keyevent KEYCODE_CHANNEL_UP
elif [[ "$channelID" == 242A ]]; then
$adbTarget shell input text "243"
sleep 1
$adbTarget shell input keyevent KEYCODE_CHANNEL_UP
$adbTarget shell input keyevent KEYCODE_CHANNEL_UP
elif [[ "$channelID" == 242B ]]; then
$adbTarget shell input text "243"
sleep 1
$adbTarget shell input keyevent KEYCODE_CHANNEL_UP
else
$adbTarget shell input text $channelID
fi
}
Could be more elegant, but should get you through the Olympics, when you can revert to the original function.
EDIT: You could also use both the channel just below and the channel just above, and then do one KEYCODE_CHANNEL_DOWN rather than three channel ups. So for 242, tune to 241 (if that exists), and then do one channel down -- for fewer moves.
EDIT2: The USA Network M3U entry could be modified like so:
#EXTINF:-1 channel-id="242" channel-number="242",USA Network
http://{{ .IPADDRESS }}/play/tuner/242
#EXTINF:-1 channel-id="242A" channel-number="242A" tvc-guide-stationid="154942",Paris Extra 1
http://{{ .IPADDRESS }}/play/tuner/242A
#EXTINF:-1 channel-id="242B" channel-number="242B" tvc-guide-stationid="154943",Paris Extra 2
http://{{ .IPADDRESS }}/play/tuner/242B
You'd also need to reload the M3U in Channels after editing, and matchup the new channels to guide data.
You beat me to it. This worked really well on Osprey / DtvStream.
Are people finding AH4C to be better with the Osprey boxes than ADB Tuner?
I would migrate if the experience is better.
I always find ah4c in general to be better than adbtuner. The advantage that adbtuner has is the ability to easily tune into multiple channels on multiple apps without messing around with different scripts. That is the reason why I use adbtuner instead nowadays
I only use with ah4c; it’s rock steady. The only issue I’ve seen is when my Synology updates. It’ll miss the first tune telling me to reauthorize. Back out and reselect and everything’s fine.
I also like to restart the container about once a month.
Curious if anyone wants to try this. It definitely works with Osprey boxes and deep linking. I haven't tested it with non-Osprey boxes yet, although it should work for that too.
It's essentially the same thing as the OliveTin action for ADB tuner, but it generates an M3U for AH4C based on your exact channel lineup by copying the curl command out of the DirecTV website just as you would for the OliveTin action.
I was able to refresh my guide this way using the script and easily generate a full M3U file for AH4C with my entire lineup.
I'm curious if it works for anyone else.
I got osprey specifically for the easy-direct channel#'s also installed directv years back, so I know the #'s well.
I actually haven't gotten adbtuner to work for me at all, but it's not a priority for me.
I ended up manually editing the adbtuner one. 
just installed python on win11, getting this.
PS C:\> python3 generate_directv_m3u.py
File "C:\generate_directv_m3u.py", line 159
<title>directv-AH4C-m3u/generate_directv_m3u.py at main · mackid1993/directv-AH4C-m3u · GitHub</title>
^
SyntaxError: invalid character '·' (U+00B7)
It seems to work on Windows, just make sure you do copy as cURL bash. Also looks like you downloaded a webpage. Click this.
these 2 things. I always end up doing the cURL cmd.. 
worked, thanks! much cleaner than manual adbtuner conversion I did. 
Try curl bash. That is what worked for me on Windows and what the script expects.
Also, it just reads it off the clipboard. So you want it on your clipboard, and then you just hit enter. You just copy it to the clipboard. You don't have to paste it into the terminal window. That might be where it's going wrong.
