Another data point - when i hit dvrserver:8094 in a browser, I get:
{"detail":"Not Found"}
Another data point - when i hit dvrserver:8094 in a browser, I get:
{"detail":"Not Found"}
Good info. Let me futz around with this a bit and I'll get back to you. It'll probably be tomorrow.
no worries at all - thanks for help! UConn will be on tonight, so I'll be too busy watching FS1 anyway 
40 channels?
Can I get additional channels by changing the Lanes variable in the container and modifying the ADB Tuner m3u accordingly?
Lots of college basketball now and I would like to see more channels. Thanks!!
So I’ve actually never tested changing from the default 40 lanes…. It should work though. I’ll test it too, but if you’re feeling froggy, try it too. Can’t hurt.
ESPN4CC4C — Filtering Test Build (Branch: feature/filtering-ingest-20251110)Hey everyone,
We’ve added a new filtering system to ESPN4CC4C that lets you include/exclude leagues, sports, or networks directly from a simple filters.ini file. There’s also a built-in API and HTML page to visualize what’s currently in the database and fine-tune filters.
How to Pull the BranchIf you already cloned:
cd ~/Projects/ESPN4CC4C
git fetch origin
git checkout feature/filtering-ingest-20251110
git pull
docker compose build && docker compose up -d
If setting up fresh:
cd ~/Projects
git clone -b feature/filtering-ingest-20251110 https://github.com/kineticman/ESPN4CC4C.git
cd ESPN4CC4C
./bootstrap.sh
New Features to Test
API for filters (see what’s in DB)HTML view: http://:8094/filters
→ Shows all networks, sports, leagues, event types with counts.
→ Includes “tip” section showing valid names for your .ini file.
JSON view: http://:8094/filters/json
→ Same data, but machine-readable for scripts.
Filter control via filters.ini
Located in the project root. Example:
[leagues]
include = *
exclude = nba, ncaa women's volleyball, ncaaw, nfl
Run manually:
python bin/filter_events.py ./data/eplus_vc.sqlite3 ./filters.ini
You’ll see total event counts, how many were filtered out, and the first few included IDs.
Rebuild plan (optional)./update_schedule.sh
The resolver will then serve only the filtered events.
Things to Verify/filters accurately reflects what’s in your DB..ini changes which events are included./whatson_all?include=deeplink only returns filtered events.curl.
Quick Test URLshttp://<host>:8094/health
http://<host>:8094/filters
http://<host>:8094/filters/json
http://<host>:8094/whatson_all?include=deeplink
http://<host>:8094/vc/6/debug
Feedback WantedPlease post:
/filters layout or counts displayI am using this with onn dongles -- not fire tvs -- and noted that the app has a different name than in the example channels (com.espn.score_center).
I've fixed that and it tunes to the event correctly, but starts at the beginning and does not tune to "live" despite me adding the configuration to my ADBTuner setup.
Any advice?
That's what the post_playback_start_commands take care of on FireSticks, but there must be some difference on this between the apps:
You could also try sending multiple fast forwards -- generally three will get you to the fastest fast forward. This will move you to live on the timeline, and should switch to "play" automatically once you're at the live point:
"post_playback_start_commands": [
"sleep 20",
"input keyevent KEYCODE_MEDIA_FAST_FORWARD",
"input keyevent KEYCODE_MEDIA_FAST_FORWARD",
"input keyevent KEYCODE_MEDIA_FAST_FORWARD"
],
OK, so let's try a few things.
From a browser, can you post the output for:
http://<your-docker-host>:8094/health
http://<your-docker-host>:8094/out/epg.xml
Next, could you exec into the ADBTuner container; install curl; and execute the following:
apt update
apt install curl
curl http://host.docker.internal/whatson/1
Also, are you seeing actual ESPN+ events in your 40 channel guide?
Seems fine:
{"ok":true,"ts":"2025-11-11T11:04:46+00:00"}
<tv generator-info-name="espn-clean-v2.1">
<channel id="1">
<display-name>ESPN+ EPlus 1</display-name>
<lcn>20010</lcn>
</channel> (with lots more)
The curl command gave this, but thinking it might be a different port anyway?
curl http://host.docker.internal/whatson/1
curl: (7) Failed to connect to host.docker.internal port 80 after 0 ms: Couldn't connect to server
And yes, guide populating. I was picking a test channel with the package name switch with a program i was able to watch on the same device
Yes, sorry, the curl command should be:
curl http://host.docker.internal:8094/whatson/1
curl http://host.docker.internal:8094/whatson/1
curl: (28) Failed to connect to host.docker.internal port 8094 after 136359 ms: Couldn't connect to server
version: '3.9'
services:
# GitHub home for this project with setup instructions: Caution! This project is not open source, and is not available on GitHub
# Docker Hub home for this project: https://hub.docker.com/u/turtletank99
adbtuner:
image: turtletank99/adbtuner:${TAG}
container_name: adbtuner
dns_search: ${DOMAIN} # Change to the name of your LAN's domain, which is usually local or localdomain
init: true
ports:
- ${HOST_PORT}:5592 # Use the same port number the container is using, or optionally change it if the port is already in use on your host
volumes:
- adbtuner:/app/.config
restart: unless-stopped
extra_hosts:
- host.docker.internal:${DOCKER_GATEWAY:-172.17.0.1} # host.docker.internal is generally not predefined on Linux hosts.
volumes:
adbtuner:
name: ${HOST_VOLUME}
# Default Environment variables can be found below under stderr -- copy and paste into Portainer-Stacks Environment variables section in Advanced mode
The compose looks fine. Both ADBTuner and ESPN4cc4c are running on the same system right?
If so, you'll probably need to hardcode a URL to reach ESPN4cc4c into each ADBTuner channel definition. host.docker.internal should work for Docker Desktop for Mac -- so I'm not sure what the deal is...
In each one of your 40 ESPN+ ADBTuber virtual channels you'll need to modify this value to something that works on your setup:
http://host.docker.internal:8094/whatson/1?dynamic_url_json_key=deeplink_url
Using the IP address of your Docker Host would be the safest, in place of the host.docker.internal part. Hard coding the URL was, of course, what I was trying to avoid. 
EDIT: Others are reporting this working, but I'm not sure if any are on a Mac.
Semi-confirmed - the curl command from within adbtuner gave a good reponse when replaced with my hostname.
Stupid question though - why couldn't this just be replaced by a DOCKER_GATEWAY env var? Am I missing something?
Stupid question though - why couldn't this just be replaced by a DOCKER_GATEWAY env var? Am I missing something?
Not a stupid question. I'm just about to test a couple of things on a Mac Mini myself. I'll get back to you shortly.
I'll get back to you shortly.
OK, try setting your DOCKER_GATEWAY env var value to host-gateway.
Like this (in Portainer-Stacks Editor, Environment variables section, Advanced mode) :
DOCKER_GATEWAY=host-gateway
This just worked for me on a Mac-Mini-M4 running MacOS 26...
@ bnhf, I see what you mean. I am using tivo 4k stream and google chromecast devices and the package name for these are com.espn.score_center as mentioned by @mdo77. I tried your suggestion above for post playback (KEYCODE_MEDIA_FAST_FORWARD) but still no luck. The down, down, right and center seem to be the correct post playback keys for the 2 devices I have but with this it goes to the ESPN app then back to the homepage. I'll keep at it and post once successful. Thanks!
Concur - works with the one channel i changed the app name on (for the onn). Doesn't on others, which means the onn app name needed changing 
Thanks a ton! (again)