Invidious: interface, media paths and operational responsibility
Invidious capacity planning: media egress, database state and upstream failures
Build a workload-specific cost worksheet and distinguish documentation estimates from measurements of your own instance.
What you will learn
- Measure the traffic path, not just page-render latency
- Storage and background activity have their own budgets
- Make comparisons reproducible and leave unknowns unknown
Before you start
- Basic HTTP and container concepts
- Ability to distinguish application state from media traffic
Explain the dependency and trust boundaries, prepare a verifiable trial and interpret source/model evidence without overclaiming.
Key takeaways
- Media routing determines where transfer costs accumulate.
- Database, cache and logs require separate retention budgets.
- Documentation estimates and string-model tests are not production benchmarks.
Measure the traffic path, not just page-render latency
A fast search response and a long video stream have very different resource profiles. If media is relayed, sustained transfer and concurrent viewers can dominate application HTML traffic. If a browser or companion follows another route, the location of that cost changes. First map where bytes travel; do not multiply page-view counts by a made-up universal bandwidth figure.
The pinned installation guide describes a bandwidth-intensive service and publishes different resource suggestions for small and public deployments. Treat them as upstream planning guidance, not a benchmark or a capacity guarantee. Codec, resolution, viewing duration, cache behavior, concurrency and provider policy can all alter the practical workload. No realistic load test was performed in this review.
Storage and background activity have their own budgets
The production recipe includes a PostgreSQL data volume and a companion cache. Logs also consume disk, and the documented composition sets rotation limits for application and companion output. Distinguish user-state growth, cache occupancy and retained diagnostics so that a cache cleanup does not become accidental deletion of subscriptions or a backup.
Connection pools and background jobs appear in the application wiring. Increasing concurrency does not necessarily improve useful throughput when upstream responses are slow or rejected; it can simply increase simultaneous work and failure pressure. Measure success rate, latency distribution and resource saturation together rather than presenting only the best completed request.
Make comparisons reproducible and leave unknowns unknown
For a controlled trial, record application/companion digests, the database version, edge topology, proxy preferences, content selection and measurement interval. Separate cold start from warm requests and describe errors rather than silently excluding them. A provider’s egress tariff or usage restriction belongs in the decision even if the software itself has no purchase price.
The worksheet below intentionally leaves transfer, storage and operating cost unset. The sixteen URL-gate cases are correctness exercises on strings, not throughput, memory or price measurements. Publish raw observations and assumptions before deriving a monthly estimate; do not translate a documentation minimum into a promise about a specific number of simultaneous viewers.
Implementation steps
- 1
Map actual media and metadata routes.
- 2
Record concurrent viewers, quality and measurement duration.
- 3
Measure successes, failures, transfer and storage separately.
- 4
Apply real provider tariffs only after collecting workload data.
Copy-ready example
{
"measurementStatus": "not performed",
"concurrentViewers": null,
"mediaEgressBytes": null,
"databaseBytes": null,
"cacheBytes": null,
"p95PlaybackStartMs": null,
"monthlyCost": null
}Frequently asked questions
Do the documentation requirements guarantee a viewer count?
No. They are planning guidance, not a measured capacity promise for a particular topology, video mix or provider.
Can the sixteen model tests justify a performance claim?
No. They exercise string classification, not streaming, database, network or hosting workloads.
Sources
- invidious/config/config.example.ymlSource checked 2026-09-08
- invidious/src/invidious.crSource checked 2026-09-08
- documentation/docs/installation.mdSource checked 2026-09-08