That's Perfect! Thank you so very much!
As of v2026.07.28.1731_BETA, the temporary loop in FoxOne for dealing with FIFA has been removed. Please update your configurations and plugins appropriately! No other actions are needed, but I did notice that the first time I launched FoxOne that the FIFA menu item was still there and then cleared out, so you might want to do a manual launch there a couple of times to get that set.
This is now resolved and as of v2026.07.29.1909_BETA Roku Bridge and ADBTuner now match for the CBS app stations. Also, station "Judge Judy" came back, so that caused some cascading impacts for existing installation. Please see the release notes for instructions on what to do.
@bnhf, the OliveTin "REMOVE_NATIVE" function is reporting as successful, but it isn't doing anything, at least when I used the "ALL" option.
@turtletank, I imported the stations from a file and it said it added the one new station, but it never appeared on the list of stations, even after restarting the container. However, when I went to import it again, it rejected as already there. Once I manually deleted all stations and reloaded them from OliveTin, then they appeared.
When REMOVE_NATIVE=ALL was unsuccessful, do you know if the channels had a provider name of native? Or, were they in the app_* style?
EDIT: NATIVE_REMOVE worked on my test system:
[INFO] Deleting existing channels for provider: native...
DELETE native http://htpc6:5572/api/v1/channels/1
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/2
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/3
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/4
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/5
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/6
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/7
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/8
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/9
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/10
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/11
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/12
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/13
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/14
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/15
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/16
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/17
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/18
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/19
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/20
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/21
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/22
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/23
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/24
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/25
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/26
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/27
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/28
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/29
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/30
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/31
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/32
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/33
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/34
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/35
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/36
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/37
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/38
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/39
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/40
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/41
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/42
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/43
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/44
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/45
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/46
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/47
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/48
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/49
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/50
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/51
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/52
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/53
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/54
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/55
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/56
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/57
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/58
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/59
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/60
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/61
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/62
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/63
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/64
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/65
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/66
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/67
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/68
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/69
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/70
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/71
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/72
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/73
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/74
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/75
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/76
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/77
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/78
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/79
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/80
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/81
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/82
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/83
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/84
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/85
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/86
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/87
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/88
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/89
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/90
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/91
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/92
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/93
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/94
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/95
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/96
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/97
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/98
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/99
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/100
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/101
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/102
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/103
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/104
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/105
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/106
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/107
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/108
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/109
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/110
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/111
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/112
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/113
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/114
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/115
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/116
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/117
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/118
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/119
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/120
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/121
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/122
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/123
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/124
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/125
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/126
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/127
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/128
{"detail":"Channel deleted"}
DELETE native http://htpc6:5572/api/v1/channels/129
{"detail":"Channel deleted"}
[INFO] Deletion of existing channels for provider: native completed.
The might have been in the app_* style. I've done so many instances for testing that I've kind of lost track over which stations were loaded in what way. It's probable that they weren't originally created by OliveTin, if that makes a difference.
I'll see if I can come up with some logic to cover both scenarios. I don't imagine it'll be too difficult. 
Has anyone figured out how to pipe in NBA TV from the NBA app? I imagine it shouldn't be too hard. I'll see if I can try to get that working in the weekend...
@babsonnexus Done, and pushed as bnhf/olivetin:latest (aka bnhf/olivetin:2026.07.30). I've updated the logic so that whether channels from this project are added one provider at a time (app_* provider names), or all at once (native provider name), when you select ALL for NATIVE_REMOVE all previously added channels from this project are removed.
Thanks, I never played around with the ESPN app enough to see that you can scroll all the way down to get to networks.
Problem with this whole approach is that it's a constant chase the tail deal and a lot of the apps are buggy as hell. NBC, for example, will routinely not load a channel or bomb out of the video shortly after play starts. I have my own custom scripts to launch and make sure video is running. I mean don't get me wrong it's great that this project exists but man what a time sink.
I'll probably roll my own for ESPN too given that the menus can change on a whim. Yet another reason to do at min. weekly test recordings on any channel you get via apps that you care about, because stuff will break all the time. Having to re-auth on a regular basis is another reason.
Sad that deeplinks don't work universally. And yeah I know I should be using ADBTuner but I did my scripts before that project and ah4c. I'll probably switch over at some point.
Thanks, this is completed as of v2026.08.01.1540_BETA. Do note the following from the release log:
ESPN App stations have been updated in the following ways:
* NFL Network (ESPN+) has been added. Please note that this version of NFL Network requires an ESPN subscription or a TVE provider authenticated through the Disney+ method. This is unlike every other ESPN station that works directly with TVE authentication within the app.
* A new Configuration has been created for ADBTuner for this station because its page setup is slightly different than every other one. However, no changes were required for Roku Bridge because that app responds differently and the existing Plugin works perfectly.
* All stations after ESPN2 have had their looping moves to the right increased by one to account for NFL Network being there. Please reload all of these stations or manually update.
Due to the above, I highly recommend maintaining NFL Network in the NFL App.
That's the good news with this project: when there's a change like this, it's one small, quick update and then it propagates out to everyone. I don't mind doing it because I need it for these stations, too, but for those technically inclined it's not difficult at all to contribute! There was a lot of back-and-forth during Alpha to figure out the best approach for each app to make it as long-term viable as possible. For instance, with ESPN, I don't care how many rows they add or take away; there is a just one giant loop to the bottom of 50 times to cover whatever may come. As such, no changes have been necessary to the Configuration at all. It was the individual stations that needed a minor tweak this time (how many times to loop moving right), which is controlled on the station level, not the app Configuration.
@babsonnexus
Just installed the native apps in my ADBTuner that runs my FDL Lanes. I'd like to improve the timing I see to get to live. If I understood your wiki, I should clone your ESPN config and make my changes to the clone.
Correct, although I'm going to warn you that you aren't going to be able to save significant time, especially with ESPN. I'd say you'd max out at 10 seconds (being extremely generous; probably 5 is more realistic) and open yourself up to tremendous risk of a missed location step. But if you do it, I'd be interested to hear about your results!
I'm also working on something in PLM that might make adjustments and such a bit easier. No ETA on that, though.
Using the pre-configured configuration for ESPN, it takes 80 secs to get to live. For recordings, I can live with that by adjusting the recording parameters. For reference, I tune in about 9-10 seconds using deeplinks on my Osprey/ah4c setup. If I manually go the ESPN app, it takes me about 50 seconds to get to live. I’m looking to get it under 60 seconds.
My thought process tells me to clone it, then adjust some of the times, and use that config to tune. If I mess it up, I can always go back to your config.
I’ve also got NBC Local (47 secs), CNN (19 secs), CNBC (21 secs) working thru your configs.
Link Pi Enc5-V2
Firestick 4K Max
Using the deep link to get your NBC local directly (nbctve://live/nbc), it's fairly easy to tune NBC under 30 seconds with their app.
Unfortunately it's a buggy hot mess, and will often hang or crash out loading video. I have a monitor script that checks every minute after I kick off any of my apps to make sure that video is playing and will restart if it doesn't.
This is really important because many of these apps have issues, I was recording a Fox sports event yesterday and the fox one app crashed some minutes into playing after I used the deep link to kick it off. But my script caught it and refired and it went fine from there.
With the upcoming NFL season, make sure you are up to date on a number of recent updates that specifically impact the ESPN, NFL, and Disney+ apps
So, to update, I should go to ADB Dashboard, Advanced, Configurations, and select the update button under HDMI Encoder native App configurations. Does that just update your app play configurations?
You don't need to manually update the Configurations in ADBTuner because they auto-update every 24 hours, but it certainly can't hurt if you want to make sure right away. In Roku Bridge, you do need to manually re'sync the Plug-ins.
But yet, that is just Configurations/Plug-ins, not the changes made to the stations themselves. I recommend just deleting them and re-adding them to make sure.
ESPN configs may need to be updated on the channels. ESPNews and ESPN Deportes needs updating
So, I’m seeing this error on the Configurations page. There is and update button & a remove button. The update fails and the remove button wants to delete a config but doesn’t tell me which one. How do I know what I’m deleting?
Last update failed: Update removes 1 configuration that is still in use.
2026-08-11T02:54:46.001002580Z 2026-08-11 02:54:46.000 - uvicorn.access - 172.18.0.1:0 - "GET /ui/configurations HTTP/1.1" 200
2026-08-11T02:54:46.062521702Z 2026-08-11 02:54:46.062 - uvicorn.access - 172.18.0.1:0 - "GET /openapi.json HTTP/1.1" 200
2026-08-11T02:54:46.072221878Z 2026-08-11 02:54:46.071 - uvicorn.access - 172.18.0.1:0 - "GET /api/v1/tuners HTTP/1.1" 200
2026-08-11T02:54:46.100751365Z 2026-08-11 02:54:46.100 - uvicorn.access - 172.18.0.1:0 - "GET /api/v1/channels HTTP/1.1" 200
2026-08-11T02:54:46.118513175Z 2026-08-11 02:54:46.118 - uvicorn.access - 172.18.0.1:0 - "GET /api/v1/configurations HTTP/1.1" 200
2026-08-11T02:54:46.110573834Z 2026-08-11 02:54:46.110 - uvicorn.access - 172.18.0.1:0 - "GET /api/v1/repositories HTTP/1.1" 200
2026-08-11T02:55:35.922862905Z 2026-08-11 02:55:35.922 - rest_api - Repository update blocked '0d37254484cb': Update removes 1 configuration that is still in use.
2026-08-11T02:54:46.119563712Z 2026-08-11 02:54:46.119 - uvicorn.access - 172.18.0.1:0 - "GET /api/v1/repositories/settings HTTP/1.1" 200
2026-08-11T02:55:35.923406584Z 2026-08-11 02:55:35.922 - uvicorn.access - 172.18.0.1:0 - "POST /api/v1/repositories/0d37254484cb/update HTTP/1.1" 409
2026-08-11T02:55:47.905515263Z 2026-08-11 02:55:47.905 - rest_api - Repository update blocked '0d37254484cb': Update removes 1 configuration that is still in use.
2026-08-11T02:55:47.906513523Z 2026-08-11 02:55:47.906 - uvicorn.access - 172.18.0.1:0 - "POST /api/v1/repositories/0d37254484cb/update HTTP/1.1" 409
2026-08-11T02:56:03.982672678Z 2026-08-11 02:56:03.978 - uvicorn.access - 172.18.0.1:0 - "GET /api/v1/tuners/installed-packages HTTP/1.1" 200
2026-08-11T02:56:04.879734052Z 2026-08-11 02:56:04.879 - uvicorn.access - 172.18.0.1:0 - "GET /api/v1/tuners/installed-packages HTTP/1.1" 200
2026-08-11T02:56:14.382990737Z 2026-08-11 02:56:14.382 - tuner_operations - Encoder 4: Starting health check.
2026-08-11T02:56:14.378925833Z 2026-08-11 02:56:14.378 - tuner_operations - Starting health check for 3 tuner(s).
2026-08-11T02:56:14.483785420Z 2026-08-11 02:56:14.483 - tuner_operations - Encoder 4: Health check complete.
2026-08-11T02:56:14.484016286Z 2026-08-11 02:56:14.483 - tuner_operations - Encoder 5: Starting health check.


