FastChannels - FAST Channels aggregator/manager

Just the usual, keyboard, mouse, a small hard drive (256 GB for transcoding), and the capture card. And yes, Windows 11 PC.

I may have a theory, so it's possible for the player to drop from 59.94 to 29.97 FPS, and I wonder if those are the gaps you're seeing, and your card just isn't handling that well. Combined with the audio issues. I am pushing another update that will lock the frame rate regardless of quality so it can drop quality if it needs to to 59.94 hertz. And I wonder if that clears things up. If this is what works. It's just good data for @KineticMan to actually maybe implement in the player rather than on the server.

@daldana7296 I just published another test container. This one does the stereo AAC audio and also locks the frame rate at 59.94 Hz. If you want to pull it and let me know if it helps, just try a different channel than you've tried before because of the caching. All you really have to do is pull. It's the same container as before; it's just a new build.

Will do.

1 Like

Ok, better. Video started fine with audio, scene changes in video was fine, but when commercial started, audio dropped out again. This is a Directv channel, not the Pluto issue.

One thing I checked after your fps comments was that this card's capabilities look like it's 30 fps.

Oh! Well are you in a usb 2 or usb 3 port? Tbh seems more like the card than FC. Also my changes only touch directv.

It's in a USB 3 port.

I'll give it a shot.

I would suggest as a future option looking into a LinkPi ENC5-V2 from Amazon or YouYeeToo. They are purpose built for this. Arrive in the US in 10-15 days and you'll never see an issue like this again. Just rock solid easy to use devices.

Trust me, I've looked into those, but at $350 that's a tough buy.

It is a steep buy. There are ways of getting them a little bit cheaper. Like, I've had luck, honestly, with a seller called Chipboard Store on AliExpress.

That's how I got my first one. There were some coupons on AliExpress, and I got it for like $317 shipped to the US. It took about twelve or thirteen days to arrive.

I believe right now that there is a sale at YouYeeToo. They are the official US distributor, so don't worry, they're not sketchy or anything. If you sign up for their Discord server, you get a 10% off coupon that you can use toward a unit. That's a pretty solid deal, too.

In all honesty, if you can swing it at some point, I would recommend trying to get one just because it will preserve so much sanity and you won't ever have to touch anything again. It's just set and forget.

The other bit of advice I can give you as someone who's been through all this is don't get the single port encoders, as tempting as they look. They are much cheaper, but you'll realize very quickly that it's not enough. You'll get another single port encoder and another one, and then you'll realize you spent as much as a five port encoder.

It is, and I get it, but IMO even the humble LinkPi MiniENC1 is better than a Capture Card + CDVR transcoding. It's like $67 at the moment from YouYeeToo, and the one that I ordered from them earlier this year shipped from the US:

https://youyeetoo.com/products/linkpi-minienc1

Obviously, the five port units are great, but for those where a single virtual tuner is enough (or the only one that fits the budget) -- these little encoders are pretty sweet.

1 Like

That’s cool- I assume ah4c could drive multiple of those?

For sure.

Just as an aside, I'm trying to figure out how the native DirecTV app sets geolocation.

I'm trying to reverse engineer that. I think it'll be pretty cool for my use case, at least. Right now, I've been using the billing zip code to approximate location, but I want to see if I can get it to pass latitude and longitude correctly. I actually found a way to capture the HTTPS network calls with a patched APK. It's really cool stuff.

Honestly, it's been so much fun messing with this stuff!

Okay, I did some pretty cool stuff with my overlay this morning, just if anyone's curious. This is only pertinent to DirecTV. I got proper geolocation working, so it's working as a regular DirectTV client would expect it to. The way it's written is on the server side, your IP is looked up from Canonical, aka Ubuntu, and as a fallback, if Canonical fails, the Fedora project is used. This is done on first tune, and after that, it's rechecked every six hours to make sure an IP address hadn't changed in terms of dynamic IPs and such changing. This is to report proper latitude and longitude.

DirecTV's apps include Yospace's SDK, which reports back which inserted ads actually played: impression, start, 25/50/75%, complete. FC Player doesn't have it, so no inserted ad was ever reported, and the ad server's frequency caps never kicked in. That would explain why the same companies kept repeating, sometimes back to back. I added a small server-side module, about 340 lines of Python, that does that reporting from FastChannels' relay. It reads Yospace's ad list for the session and calls each ad's tracking links as the box plays the ad. It only reports. It doesn't change the stream and stores nothing on the server.

But it's pretty cool stuff. It seems to be working pretty well, and it's doing what it's supposed to. And I think I finally have this operating like a real DirecTV client.

It's at my little GitHub repo, which really is just a couple of files containing the patches and then the one patch file that gets overlaid. Nothing vendored or anything like that, it's all built off of upstream at build time via CI. GitHub - mackid1993/FastChannels-mackid1993: kineticman/FastChannels (main) + DirecTV DAI, rebuilt automatically to GHCR · GitHub

I'm very curious to see what people have to say about this. If it's liked, and if it works well. My ultimate goal is to have that experience of using a real DirecTV client, but the benefits of fast channels without burdening Kinetic Man with this and just kind of maintaining a little patch. This is mainly because I primarily watch live TV and would rather see local targeted ads rather than national ones that kind of get weird. It doesn't really help anyone that is doing just recordings and using ComSkip.

I have no idea what changed, but these were failing in audit for me when I tested shortly after v5.5.1 came out, but now it's fine. I wonder if something got updated on the NBC side? Comcast sold NECN to Spectrum, so that reset the list of possible stations and their feeds. On the other end, even though NECN has left the NBC feed, it showed up in my Spectrum feed. Had no idea it was coming, but a nice, easy transition in FC!

Nethertheless, NBC as a provider seems to be particularly troublesome. It does not stay logged in for more than a day, and it doesn't seem to be able to auto-log in. Every time I've had to manually intervene entering a password to get it to connect. Here's what I saw in the logs on a recent attempt:

2026-10-10 15:03:25,762 INFO     app.tve.signin_notice: [tve] nbc needs signing in again: Cox / Cox Spectrum sign-in needs you. Click "Sign in" for this network in Settings > TV Everywhere to sign in again.
2026-10-10 15:03:26,299 WARNING  app.routes.play: [nbc-tve-dash] resolve failed for bravo_east: NBC TVE: Adobe Pass auth failed: Cox / Cox Spectrum sign-in needs you. Click "Sign in" for this network in Settings > TV Everywhere to sign in again.
2026-10-10 15:03:28,407 WARNING  app.routes.play: [nbc-tve-dash] resolve failed for bravo_east: NBC TVE: Adobe Pass auth failed: Cox / Cox Spectrum sign-in needs you. Click "Sign in" for this network in Settings > TV Everywhere to sign in again.
2026-10-10 15:04:28,561 INFO     app.routes.tasks: Enqueued NBC MVPD browser login for mso_id=Cox
2026-10-10 15:04:31,360 INFO     app.tve.browser_login.nbc: [nbc-mvpd-login] starting attempt=1 mso_id=Cox; cleared prior modal state
2026-10-10 15:04:32,698 INFO     app.tve.browser_login.nbc: [nbc-mvpd-login] Adobe session ready requestor_id=nbcentertainment HTTP 200 cached_client=False authenticate=https://sp.auth.adobe.com/api/v2/authenticate/nbcentertainment/3PMKYGZ
2026-10-10 15:05:12,578 INFO     app.tve.browser_login.nbc: [nbc-mvpd-login] navigation response HTTP 200 https://sp.auth.adobe.com/api/v2/authenticate/nbcentertainment/3PMKYGZ
2026-10-10 15:05:20,373 INFO     app.tve.browser_login.nbc: [nbc-mvpd-login] navigation response HTTP 200 https://tve.spectrum.net/openam/SSOPOST/metaAlias/charter/idp
2026-10-10 15:05:20,675 INFO     app.tve.browser_login.nbc: [nbc-mvpd-login] navigation response HTTP 200 https://id.spectrum.net/openam/SSOPOST/metaAlias/charter/idp
2026-10-10 15:05:22,762 INFO     app.tve.browser_login.nbc: [nbc-mvpd-login] provider redirect settle result=settled landing=https://id.spectrum.net/openam/SSOPOST/metaAlias/charter/idp
2026-10-10 15:05:32,249 INFO     app.tve.browser_login.nbc: [nbc-mvpd-login] navigation response HTTP 200 https://www.google.com/recaptcha/enterprise/anchor
2026-10-10 15:05:34,804 INFO     app.tve.browser_login.common: [nbc-mvpd-login] autofill: no visible password field after 12.0s (SSO already past login, a captcha-first page, or an unrecognized form) url=https://id.spectrum.net/openam/SSOPOST/metaAlias/charter/idp?client_id=tve&dark=true&exAppName=TVEverywhere&l10n=en
2026-10-10 15:05:35,905 INFO     app.tve.browser_login.nbc: [nbc-mvpd-login] authorization still pending (profile_http=200 landing=https://id.spectrum.net/openam/SSOPOST/metaAlias/charter/idp next_poll=3.0s)
2026-10-10 15:06:41,834 INFO     app.tve.browser_login.nbc: [nbc-mvpd-login] authorization still pending (profile_http=200 landing=https://id.spectrum.net/login next_poll=20.0s)
2026-10-10 15:07:45,632 INFO     app.tve.browser_login.nbc: [nbc-mvpd-login] authorization still pending (profile_http=200 landing=https://id.spectrum.net/login next_poll=20.0s)
2026-10-10 15:08:49,387 INFO     app.tve.browser_login.nbc: [nbc-mvpd-login] authorization still pending (profile_http=200 landing=https://id.spectrum.net/login next_poll=20.0s)
2026-10-10 15:09:53,245 INFO     app.tve.browser_login.nbc: [nbc-mvpd-login] authorization still pending (profile_http=200 landing=https://id.spectrum.net/login next_poll=20.0s)
2026-10-10 15:10:12,747 INFO     app.tve.browser_login.nbc: [nbc-mvpd-login] navigation response HTTP 200 https://resources.digital-cloud-west.medallia.com/md-form/website/1.25.2/index.html
2026-10-10 15:10:31,917 INFO     app.tve.browser_login.common: [nbc-mvpd-login] Spectrum ca/password/auth -> HTTP 200 PROCESSED (result_code 200)
2026-10-10 15:10:33,012 INFO     app.tve.browser_login.nbc: [nbc-mvpd-login] navigation response HTTP 302 https://sp.auth.adobe.com/sp/saml/SAMLAssertionConsumer
2026-10-10 15:10:33,680 INFO     app.tve.browser_login.nbc: [nbc-mvpd-login] paired mso_id=Cox
2026-10-10 15:10:33,760 WARNING  app.tve.browser_login.nbc: [nbc-mvpd-login] page CLOSE event fired

Everything else seems to happily log itself in without intervention.

I started working on something before my vacation; I'll have it finished soon and post to the FastChannels repo to make it much easier to have a complete list of these things and update as needed...

1 Like

I believe that I cracked the last little bit of weird ad decisioning that was causing crazy amounts of repetition and just weirdness. The issue was the Dalvik user agent was not being set per device with the correct advertising ID for that device. Once I started sending that alongside what I did this morning with the latitude and longitude, looked up from Canonical based on the public IP address reported by ones server. I think everything just clicked into place, and it's just sort of working nicely now. I was a hair from giving up, but I just went through two commercial breaks that looked identical to a regular DirecTV client. Obviously, different ads because it's a different box, but they weren't repeating. I was getting car dealership ads for a few minutes up the road. I was getting national ads. I was getting political ads. Just stuff I would expect to see on DirecTV's own hardware.

I also want to mention that I decompiled an APK from 2023, and it was effectively the same stuff that it was looking for. So these are pretty static values that I'm passing. There's very little to break, and it wouldn't break playback, it would just break ad decisioning. Things would get a little wonky until it was fixed.

The unlock was modifying DirecTV's Google TV APK, making it debuggable, and setting up a MITM proxy in between to capture the HTTPS traffic and see what it was actually sending. I really enjoy reverse engineering stuff just for the fun of it, but I did need a little bit of a break there for a few hours to clear my head. Now that I seem to have gotten it working, I'm quite satisfied. It took a few weeks to get this stable, but I think I finally cracked it because this is the first time I have seen a local car dealership ad on the Fast Channels Bridge, for sure.

did you happen to test the Phone sign-in function? curious if that helps NBC.