Prerequisites
Orinuno is a Spring Boot service written in Java 21. It ships with a small ffmpeg dependency and a headless Chromium (installed by Playwright on first run).
Runtime
Section titled “Runtime”| Dependency | Version | Purpose |
|---|---|---|
| Java | 21+ | Runtime for the service |
| MySQL | 8.0+ | Metadata store; schema is Liquibase-managed |
| ffmpeg | any recent | .ts → .mp4 remux after HLS download (brew install ffmpeg / apt install ffmpeg) |
| Chromium | installed automatically | Headless browser used by the Playwright video fetcher |
| Kodik API token | — | Required to talk to kodik-api.com |
Build-time
Section titled “Build-time”- Maven 3.9+ to compile and run tests.
- Docker — recommended for Testcontainers-based integration tests, and for the bundled Compose stack.
Why these specific pieces?
Section titled “Why these specific pieces?”- Java 21 — the codebase uses records, pattern-matching
switch, virtual threads where it makes sense, and the stablejava.net.httpclient for HLS segment download. Earlier JDKs do not work. - MySQL 8.0 — Liquibase changelogs assume
InnoDBandutf8mb4_unicode_ci. MariaDB may work but is not tested. - ffmpeg — the CDN often serves
.tsHLS segments. Browsers cannot play MPEG-TS natively, so we remux withffmpeg -c copy(stream copy, instant — no re-encoding). - Chromium via Playwright — direct HTTP clients are blocked by the CDN even with correct headers. See Video download for the full research log.
Next steps
Section titled “Next steps”- Quick Start — run the stack.
- Configuration — tune the knobs.