Looks like the container doesn’t have curl available. I feel like it’s gotta be something with your Synology. Unfortunately I don’t know enough about how they run docker. If there’s a firewall I’d make sure it allows outgoing requests on 9092. The client seems fine so it’s gotta be something in between the container and the endpoint.
Part of me is thinking that the docker container doesn't have curl installed inside of it. I don't think it has anything to do with synology but as I've seen here in this forum running anything with synology seems like hell on earth so idk
@DetroitTV are you using portainer to run this?
Create the Synology directory /volume1/docker/apituner-data first,
then use this run statement
docker run -d \
--name apituner \
-v /volume1/docker/apituner-data:/data \
-p 6592:6592 \
-e APITUNER_PORT=6592 \
-e APITUNER_DATA_DIR=/data \
-e APITUNER_LOG_LEVEL=INFO \
--restart unless-stopped \
ghcr.io/matthewfkoch/apituner:latest
Updated: corrected directory and added port mapping
I was just pointing out the volume binding on a Synology.
Unfortunately, I'm not running the project myself.
Have you tried temporarily disabling the Synology Firewall?
I got the api agent to work on my onn puck. No luck on my firetv stick. It crashes instantly when you open it over there
I'm trying to try out some channels on apituner and I get this when I try to import it from adbtuner
I’m not at all surprised that it doesn’t run on the fire sticks. There are some android 14 dependencies currently and I think they mostly run older versions of android. I do have a few laying around so I’ll do some testing and see if I can get them working. Do you know which model or software version is running on yours? As for the channel import, I’ll take a look and see what’s going on. If there are any logs or if you can send over a sample of your file so I can test it locally here
I had tried the volume binding already but tried it again. I tried disabling the firewall temporarily, still unreachable.
If I run the container in host instead of bridge and use discover in Apituner it shows the agent but when I select add it flashes tuner not found at the bottom of the screen.
Yep...my FireTV android version is 9. This is the firetv 4k max
APITuner v0.1.6
Fixes from recent reports:
- ADBTuner import — clear errors for null/duplicate channel numbers (no more Internal Server Error)
- Discover → Add — no more “Tuner not found”
- Fire OS 7 / Android 9 — Agent no longer crashes on open
- Easier D-pad navigation in the Agent UI
- Docker image includes
curlfor Agent reachability checks
Upgrade
Server: docker pull ghcr.io/matthewfkoch/apituner:0.1.6
Agent: Release APITuner v0.1.6 · matthewfkoch/APITuner-releases · GitHub
Uninstall any debug Agent build before installing 0.1.6, then re-grant permissions. On Fire TV, YouTube TV’s package is com.amazon.firetv.youtube.tv.
I’ll look into it, can you let me know if the import and fire stick issues are resolved
Well...the app doesn't crash but...it doesn't do much else either. I can't grant any permissions I need with it
As for my onn puck, I can't view any channels with it after successfully importing the YTTV stuff. I'm getting 503 error for some reason
So with Firesticks they need the permissions to be granted via ADB because they aren’t exposed in the UI. This project was mainly created as a work around for the changes in Android 14 around ADB. I assume some users will have a mix of both devices so I can make the server grant the permissions via ADB for fire sticks only. I have it working in my test environment and will push a new release this week evening.
If you can provide any logs from docker on the onn device issue that would be great
APITuner 0.1.7
Quick update for anyone tracking APITuner (ADB-free day-to-day tuner for Channels, Agent APK + HDMI encoder).
Why this exists: On modern Google TV / Android 14, wired ADB got unreliable — that’s what made ADBTuner painful. APITuner keeps normal tuning on the Agent HTTP API, not ADB.
What’s new in 0.1.7
- Fire Stick / Fire TV: Fire OS often hides overlay / usage / notification toggles for sideloaded apps. There’s now a one-time dashboard button — Grant permissions (ADB) — using network ADB for setup only. Fire Sticks run older Android and aren’t hit by the Android 14 ADB mess. After that, tunes still go through the Agent (no ADB per channel change).
- Google TV (Android 14): Agent permission buttons actually open the right Settings screens again (package-visibility bug had them toast-only).
- Docs call out the Fire exception vs the “day-to-day ADB-free” story so expectations are clear.
Links
- Server:
ghcr.io/matthewfkoch/apituner:0.1.7(or:latest) - Agent APK: Release APITuner v0.1.7 · matthewfkoch/APITuner-releases · GitHub
If you reinstall the Agent over a debug build, uninstall first (signing). On Fire, re-run Grant permissions (ADB) after a fresh install if permissions look missing.
Happy to take feedback from anyone trying Fire Sticks or Chromecast with Google TV.
Anyways, heres the logs. I can't get anything playing on the device that is solid green
2026-07-17 23:16:02,026 INFO httpx: HTTP Request: GET http://192.168.1.67:9092/api/health "HTTP/1.1 200 OK "
INFO: 192.168.1.72:53972 - "GET /api/tuners/acbdeecb171b/health HTTP/1.1" 200 OK
2026-07-17 23:16:02,084 INFO httpx: HTTP Request: GET http://192.168.1.139:9092/api/health "HTTP/1.1 200 OK "
INFO: 192.168.1.72:53971 - "GET /api/tuners/e098958afa77/health HTTP/1.1" 200 OK
2026-07-17 23:16:02,128 INFO httpx: HTTP Request: GET http://192.168.1.67:9092/api/info "HTTP/1.1 200 OK "
2026-07-17 23:16:02,146 INFO httpx: HTTP Request: GET http://192.168.1.139:9092/api/info "HTTP/1.1 200 OK "
2026-07-17 23:16:02,204 INFO httpx: HTTP Request: GET http://192.168.1.67:9092/api/info "HTTP/1.1 200 OK "
INFO: 192.168.1.72:53972 - "GET /api/tuners/acbdeecb171b/info HTTP/1.1" 200 OK
2026-07-17 23:16:02,234 INFO httpx: HTTP Request: GET http://192.168.1.139:9092/api/info "HTTP/1.1 200 OK "
INFO: 192.168.1.72:53971 - "GET /api/tuners/e098958afa77/info HTTP/1.1" 200 OK
2026-07-17 23:16:02,320 INFO httpx: HTTP Request: GET http://192.168.1.67:9092/api/info "HTTP/1.1 200 OK "
2026-07-17 23:16:02,349 INFO httpx: HTTP Request: GET http://192.168.1.139:9092/api/info "HTTP/1.1 200 OK "
2026-07-17 23:16:02,414 INFO httpx: HTTP Request: GET http://192.168.1.67:9092/api/info "HTTP/1.1 200 OK "
INFO: 192.168.1.72:53972 - "GET /api/tuners/acbdeecb171b/info HTTP/1.1" 200 OK
2026-07-17 23:16:02,428 INFO httpx: HTTP Request: GET http://192.168.1.139:9092/api/info "HTTP/1.1 200 OK "
INFO: 192.168.1.72:53971 - "GET /api/tuners/e098958afa77/info HTTP/1.1" 200 OK
2026-07-17 23:21:37,616 INFO httpx: HTTP Request: GET http://192.168.1.139:9092/api/foreground "HTTP/1.1 200 OK "
2026-07-17 23:21:37,685 INFO httpx: HTTP Request: POST http://192.168.1.139:9092/api/launch-intent "HTTP/1.1 200 OK "
2026-07-17 23:21:37,734 INFO httpx: HTTP Request: GET http://192.168.1.139:9092/api/playback "HTTP/1.1 200 OK "
2026-07-17 23:21:37,784 INFO httpx: HTTP Request: GET http://192.168.1.139:9092/api/foreground "HTTP/1.1 200 OK "
2026-07-17 23:21:37,826 INFO apituner.tuner_manager: Tune 0138b7644c ready in 0.34s (WAMI on onn)
INFO: 192.168.1.72:54181 - "GET /stream/69 HTTP/1.1" 200 OK
2026-07-17 23:21:37,835 INFO httpx: HTTP Request: GET http://192.168.1.223/live/stream1 "HTTP/1.1 301 Moved Permanently"
2026-07-17 23:21:37,836 INFO apituner.stream: Stream 0138b7644c ended: HTTPStatusError
2026-07-17 23:21:43,313 INFO httpx: HTTP Request: GET http://192.168.1.67:9092/api/foreground "HTTP/1.1 200 OK "
2026-07-17 23:21:43,787 INFO httpx: HTTP Request: POST http://192.168.1.67:9092/api/launch-intent "HTTP/1.1 200 OK "
2026-07-17 23:21:43,899 INFO httpx: HTTP Request: GET http://192.168.1.67:9092/api/playback "HTTP/1.1 200 OK "
2026-07-17 23:21:43,946 INFO httpx: HTTP Request: GET http://192.168.1.67:9092/api/foreground "HTTP/1.1 200 OK "
APITuner 0.1.10
- Fire Stick / Fire TV setup is solid: one-time Grant permissions (ADB) for overlay, usage, notification, and Send keys (day-to-day tuning still ADB-free)
- Fire Agent fixes: no more launch crash on Fire OS 7; Accessibility / Send keys actually binds after grant
- More reliable tunes: waits for real playback before opening the stream; encoder redirects no longer break Channels with 503
- Easier support: Download diagnostics from the dashboard
Agent + Docker: Release APITuner v0.1.10 · matthewfkoch/APITuner-releases · GitHub
Just an update, I got the YTTV channels to go on this now.
Just waiting for the configs support so I can ditch adbtuner and just use this
I need to do some research on this, my initial thought is that it should work on the Android TV based units pretty easily. On the Fire Sticks I don't think I can do full navigation without ADB. I'd like the app to be as ADB free as possible as that's really the intention of the application. I'll take a look and see what the options are.





