Applies to: Tvheadend rolling official documentation read 2026-11-08; many examples are from 4.3-era builds; verify availability against installed build; no tuner or server tested; read-only JSON API schema discovery, not an untested configuration write
The useful distinctions
- Elementary-stream filters have separate audio, video and subtitle API families.
- The class endpoint describes options and defaults.
- The grid endpoint returns defined filters of the selected type.
- The UI location is Configuration, Stream, Stream Filters.
Locate the processing boundary
A track can exist in the incoming material yet be absent from a selected output. Before obtaining another source copy, identify where the expected track stops appearing. Inspect the source inventory and the application’s relevant filter configuration as separate pieces of evidence. A filter review is especially useful when the result differs by output setup while the underlying source remains the same.
Read the schema you actually have
The synthetic example chooses the audio family and requests both existing definitions and their descriptions. It deliberately provides no write payload because field names, defaults and behavior should come from the installed build’s schema. Read the returned descriptions before assigning meaning to a remembered option from another version. Keep the current filter state intact while making that comparison so the evidence describes one stable configuration.
Avoid an unsupported conclusion
Finding an audio filter does not by itself establish that it removed the track in question. Match its documented scope to the observed input and output before planning a correction. Record the selected profile as context, and keep any later change small enough to compare. If the track remains missing with no relevant filter, preserve that negative result and investigate the next boundary rather than repeatedly adding compensating rules.
A focused way to proceed
- Identify which elementary-stream type is unexpectedly absent.
- Inspect that type’s existing grid through authorized access.
- Read its class description before interpreting configuration fields.
- Compare the applicable filters with a known source inventory before changing anything.
Worked example · synthetic
Read-only, authorized audio-filter inspection:
GET https://example.test/api/esfilter/audio/grid
GET https://example.test/api/esfilter/audio/class
Compare: actual source audio inventory and selected output profileRead the comparison
A configured filter is a hypothesis to assess against its scope, not automatic proof of the cause.
When to stop or ask for help
Escalate with the relevant schema, minimal filter configuration and input/output evidence; omit private identifiers.