59 lines
1.7 KiB
Markdown
59 lines
1.7 KiB
Markdown
# oembed-graphics
|
|
|
|
Docker-hosted oEmbed graphics for broadcast workflows. It is inspired by
|
|
[webrecorder/oembed.link](https://github.com/webrecorder/oembed.link), but runs
|
|
as a normal container and exposes graphic URLs that can be loaded by CasparCG,
|
|
OBS Browser Source, OGraf, or any HTML-capable character generator.
|
|
|
|
## Run locally
|
|
|
|
```sh
|
|
npm install
|
|
npm start
|
|
```
|
|
|
|
Open `http://localhost:3000`.
|
|
|
|
## Run with Docker
|
|
|
|
```sh
|
|
docker compose up --build
|
|
```
|
|
|
|
The service listens on `http://localhost:3000`.
|
|
|
|
## Broadcast URL
|
|
|
|
Use `/graphic` with a source URL:
|
|
|
|
```txt
|
|
http://localhost:3000/graphic?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DdQw4w9WgXcQ&width=1920&height=1080&transparent=1
|
|
```
|
|
|
|
Useful query parameters:
|
|
|
|
- `url`: required source URL to resolve through oEmbed.
|
|
- `width`: stage width, default `1920`.
|
|
- `height`: stage height, default `1080`.
|
|
- `transparent`: `1` for transparent output, default `1`.
|
|
- `chroma`: background color when transparent output is disabled, default `#00ff00`.
|
|
- `fit`: `contain` or `cover`, default `contain`.
|
|
- `scale`: graphic scale multiplier, default `1`.
|
|
- `maxwidth`: sent to the oEmbed provider, default is based on stage width.
|
|
|
|
The service also supports the oembed.link-style form:
|
|
|
|
```txt
|
|
http://localhost:3000/https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DdQw4w9WgXcQ
|
|
```
|
|
|
|
## API
|
|
|
|
- `GET /api/oembed?url=...` returns the matched provider and raw oEmbed data.
|
|
- `GET /providers` returns the loaded provider patterns.
|
|
- `GET /healthz` returns a health check response.
|
|
|
|
Provider data is loaded from `https://oembed.com/providers.json` and cached in
|
|
memory. Override with `PROVIDERS_URL`, `PROVIDERS_TTL_MS`, and
|
|
`OEMBED_TIMEOUT_MS` environment variables.
|