Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions authentication.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
sidebarTitle: "Authentication"
icon: "key"
keywords: ["rendobar authentication", "api key", "bearer token", "rb_ key", "mcp oauth", "rest api auth"]
canonical: "https://rendobar.com/docs/authentication"
---

<script
Expand All @@ -24,7 +25,7 @@
}}
/>

Every Rendobar API request needs an API key in the `Authorization` header:

Check warning on line 28 in authentication.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

authentication.mdx#L28

Did you really mean 'Rendobar'?

```bash
curl https://api.rendobar.com/jobs \
Expand Down Expand Up @@ -96,7 +97,7 @@

## OAuth for MCP

MCP clients that speak OAuth 2.1 natively can register dynamically and run a PKCE flow against Rendobar's authorization server. Tokens are scoped to the user's organization. See [MCP overview](/mcp/overview) for setup.

Check warning on line 100 in authentication.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

authentication.mdx#L100

Did you really mean 'Rendobar's'?

API keys are simpler and recommended for non-interactive integrations.

Expand Down
1 change: 1 addition & 0 deletions cli/authentication.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ title: "Authenticate the CLI"
description: "Sign in via browser OAuth, paste an API key for non-interactive use, or set RENDOBAR_API_KEY for CI. Tokens auto-refresh every hour."
icon: "key"
keywords: ["rb login", "rendobar cli auth", "rendobar api key", "rendobar oauth", "rb whoami"]
canonical: "https://rendobar.com/docs/cli/authentication"
---

<script
Expand Down
1 change: 1 addition & 0 deletions cli/ci-cd.mdx
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
---
title: "Use the CLI in CI/CD"
description: "Install rb in GitHub Actions, GitLab CI, or Docker. Authenticate from a secret, pin a version, parse JSON output, verify build provenance."

Check warning on line 3 in cli/ci-cd.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

cli/ci-cd.mdx#L3

Did you really mean 'rb'?
sidebarTitle: "CI/CD"
icon: "infinity"
keywords: ["rendobar github actions", "rendobar cli ci", "rendobar gitlab", "rendobar docker", "rb ci secret"]
canonical: "https://rendobar.com/docs/cli/ci-cd"
---

<script
Expand Down Expand Up @@ -56,7 +57,7 @@
path: out.mp4
```

`install.sh` writes the PATH update to shell rc files, which Actions steps don't read. The `echo … >> "$GITHUB_PATH"` line propagates the install dir to following steps. The default `GITHUB_TOKEN` is auto-picked-up by the installer to lift the GitHub Releases rate limit.

Check warning on line 60 in cli/ci-cd.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

cli/ci-cd.mdx#L60

Did you really mean 'rc'?

## GitLab CI

Expand Down Expand Up @@ -157,7 +158,7 @@
sudo mv rb /usr/local/bin/rb
```

## Idempotency

Check warning on line 161 in cli/ci-cd.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

cli/ci-cd.mdx#L161

Did you really mean 'Idempotency'?

The CLI does not expose `--idempotency-key`. If a retried CI step shouldn't double-charge, submit via the [SDK](https://www.npmjs.com/package/@rendobar/sdk) or [`POST /jobs`](/job-types/ffmpeg) directly with an `idempotencyKey` field.

Expand Down
1 change: 1 addition & 0 deletions cli/commands.mdx
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
---
title: "Commands reference"
description: "View every rb command, flag, and exit code. Covers ffmpeg, login, logout, whoami, doctor, and update across 6 subcommands."

Check warning on line 3 in cli/commands.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

cli/commands.mdx#L3

Did you really mean 'rb'?

Check warning on line 3 in cli/commands.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

cli/commands.mdx#L3

Did you really mean 'ffmpeg'?

Check warning on line 3 in cli/commands.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

cli/commands.mdx#L3

Did you really mean 'whoami'?

Check warning on line 3 in cli/commands.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

cli/commands.mdx#L3

Did you really mean 'subcommands'?
sidebarTitle: "Commands"
icon: "list"
keywords: ["rb commands", "rendobar cli reference", "rb ffmpeg flags", "rb exit codes", "rb doctor"]
mode: "wide"
canonical: "https://rendobar.com/docs/cli/commands"
---

<script
Expand Down Expand Up @@ -58,7 +59,7 @@
rb doctor [--json] [--fix]
```

Runs eight diagnostic checks: CLI version vs latest release, install method, OS/arch, update cache, `api.rendobar.com` reachability, auth state, macOS quarantine bit, GitHub API rate limit.

Check warning on line 62 in cli/commands.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

cli/commands.mdx#L62

Did you really mean 'reachability'?

`--json` prints results as JSON. `--fix` removes the macOS quarantine bit from the `rb` binary (the only fix currently supported).

Expand Down Expand Up @@ -87,11 +88,11 @@
rb ffmpeg [--json | --url-only | --quiet] [--no-wait] [--timeout N] <ffmpeg args>
```

Runs FFmpeg in the cloud. Pass real FFmpeg arguments after the subcommand. Global flags above are stripped by name; everything else is passed through.

Check warning on line 91 in cli/commands.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

cli/commands.mdx#L91

Did you really mean 'FFmpeg'?

Check warning on line 91 in cli/commands.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

cli/commands.mdx#L91

Did you really mean 'FFmpeg'?

Check warning on line 91 in cli/commands.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

cli/commands.mdx#L91

Did you really mean 'subcommand'?

Local input files (`-i ./clip.mp4`) upload automatically before submission and are rewritten to short-lived URLs. Remote inputs (`-i https://...`) pass through as-is.

The trailing positional argument (the FFmpeg output filename) is the local path the result downloads to. With `--no-wait` no download happens. Only the job ID prints.

Check warning on line 95 in cli/commands.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

cli/commands.mdx#L95

Did you really mean 'FFmpeg'?

Job-failure exits `1` and writes the API error to stderr. Insufficient credits exits `2` with a top-up link.

Expand Down
1 change: 1 addition & 0 deletions cli/installation.mdx
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
---
title: "Install the CLI"
description: "Install the rb binary on macOS, Linux, or Windows in one command. Pin a version, change the install path, run inside Docker, or uninstall."

Check warning on line 3 in cli/installation.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

cli/installation.mdx#L3

Did you really mean 'rb'?
icon: "download"
keywords: ["install rendobar cli", "rb install", "rendobar windows install", "rendobar docker", "rb doctor"]
canonical: "https://rendobar.com/docs/cli/installation"
---

<script
Expand Down Expand Up @@ -33,7 +34,7 @@
</Tab>
<Tab title="Windows">
```powershell
irm https://rendobar.com/install.ps1 | iex

Check warning on line 37 in cli/installation.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

cli/installation.mdx#L37

Did you really mean 'irm'?

Check warning on line 37 in cli/installation.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

cli/installation.mdx#L37

Did you really mean 'iex'?
```
</Tab>
</Tabs>
Expand All @@ -47,11 +48,11 @@
rb doctor
```

`rb doctor` runs eight checks: version vs latest, install method, OS/arch, update cache, API reachability, auth, macOS quarantine, GitHub rate limit.

Check warning on line 51 in cli/installation.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

cli/installation.mdx#L51

Did you really mean 'reachability'?

## Pin a version

Reproducible installs (CI, Dockerfile, provisioning) require a pinned tag:

Check warning on line 55 in cli/installation.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

cli/installation.mdx#L55

Did you really mean 'Dockerfile'?

```bash
RENDOBAR_VERSION=v1.0.0 curl -fsSL https://rendobar.com/install.sh | sh
Expand Down Expand Up @@ -110,7 +111,7 @@
</Tab>
<Tab title="Windows">
```powershell
irm https://rendobar.com/uninstall.ps1 | iex

Check warning on line 114 in cli/installation.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

cli/installation.mdx#L114

Did you really mean 'irm'?

Check warning on line 114 in cli/installation.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

cli/installation.mdx#L114

Did you really mean 'iex'?
```
</Tab>
</Tabs>
Expand All @@ -128,8 +129,8 @@
| `RENDOBAR_VERSION` | install | latest stable | Pin to a release tag (e.g. `v1.0.0`) |
| `RENDOBAR_INSTALL_DIR` | install + uninstall | `$HOME/.rendobar/bin` | Binary directory |
| `RENDOBAR_CONFIG_DIR` | uninstall | `$HOME/.rendobar` | Cache directory cleaned by `RENDOBAR_PURGE=1` |
| `RENDOBAR_NO_MODIFY_PATH` | install + uninstall | unset | If `1`, skip touching shell rc / user PATH |

Check warning on line 132 in cli/installation.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

cli/installation.mdx#L132

Did you really mean 'rc'?
| `RENDOBAR_GITHUB_TOKEN` | install | unset | Lift GitHub's 60/hr unauth rate limit. Falls back to `GITHUB_TOKEN` |

Check warning on line 133 in cli/installation.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

cli/installation.mdx#L133

Did you really mean 'unauth'?
| `RENDOBAR_PURGE` | uninstall | unset | If `1`, also delete the cache directory |
| `RENDOBAR_API_KEY` | runtime | unset | Auth for non-interactive use. See [Authentication](/cli/authentication) |
| `RENDOBAR_API_URL` | runtime | `https://api.rendobar.com` | Override the API host |
Expand Down
1 change: 1 addition & 0 deletions cli/overview.mdx
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
---
title: "CLI overview and quickstart"
sidebarTitle: "Overview"
description: "Run FFmpeg in the cloud from your terminal. Pass real ffmpeg flags; the CLI uploads local files, runs the job, and downloads the result."

Check warning on line 4 in cli/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

cli/overview.mdx#L4

Did you really mean 'FFmpeg'?

Check warning on line 4 in cli/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

cli/overview.mdx#L4

Did you really mean 'ffmpeg'?
icon: "terminal"
keywords: ["rb cli", "rendobar command line", "ffmpeg cli", "cloud ffmpeg", "rb ffmpeg"]
canonical: "https://rendobar.com/docs/cli/overview"
---

<script
Expand Down Expand Up @@ -57,7 +58,7 @@
</Tab>
<Tab title="Windows">
```powershell
irm https://rendobar.com/install.ps1 | iex

Check warning on line 61 in cli/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

cli/overview.mdx#L61

Did you really mean 'irm'?

Check warning on line 61 in cli/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

cli/overview.mdx#L61

Did you really mean 'iex'?
```
</Tab>
</Tabs>
Expand All @@ -82,7 +83,7 @@

## Scope

The CLI does one thing: run FFmpeg jobs. It does not bundle filter chaining, batch primitives, or the other [job types](/job-types/ffmpeg). Submit those via the [SDK](https://www.npmjs.com/package/@rendobar/sdk) or [`POST /jobs`](/job-types/ffmpeg).

Check warning on line 86 in cli/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

cli/overview.mdx#L86

Did you really mean 'FFmpeg'?

## See also

Expand All @@ -95,7 +96,7 @@
## Related

- [Installation](/cli/installation): one-line install, pin a version, Docker, uninstall
- [Commands reference](/cli/commands): every `rb` subcommand, flag, and exit code

Check warning on line 99 in cli/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

cli/overview.mdx#L99

Did you really mean 'subcommand'?
- [CI/CD](/cli/ci-cd): GitHub Actions, GitLab CI, and Docker recipes
- [FFmpeg reference](/job-types/ffmpeg): the API the CLI calls under the hood
- [FFmpeg in the cloud](https://rendobar.com/ffmpeg/): supported operations on the marketing site
1 change: 1 addition & 0 deletions cli/troubleshooting.mdx
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
---
title: "CLI troubleshooting"
description: "Fix common rb CLI errors: install failures, PATH issues, port conflicts, macOS Gatekeeper, expired tokens, rate limits, update rollback."

Check warning on line 3 in cli/troubleshooting.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

cli/troubleshooting.mdx#L3

Did you really mean 'rb'?
sidebarTitle: "Troubleshooting"
icon: "stethoscope"
keywords: ["rb cli error", "rendobar cli not found", "rendobar login failed", "rb doctor", "rb update failed"]
canonical: "https://rendobar.com/docs/cli/troubleshooting"
---

<script
Expand Down Expand Up @@ -68,7 +69,7 @@

**Port 14832 in use.** Another process holds the OAuth callback port. Free it (`lsof -i :14832`) or skip the browser flow: `rb login --key rb_xxx`.

**Login timed out.** The browser flow waits 120 seconds. Re-run `rb login`. If your network blocks loopback HTTP (some corporate firewalls do), use `--key` instead.

Check warning on line 72 in cli/troubleshooting.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

cli/troubleshooting.mdx#L72

Did you really mean 'loopback'?

**Browser didn't open.** Copy the URL from stderr into any browser. The flow completes the same way.

Expand Down Expand Up @@ -103,7 +104,7 @@
rb update
```

**`Update failed: write permission denied`.** The install dir isn't writable by your user. Neither the installer nor `rb update` calls `sudo`. Re-install under sudo, or relocate:

Check warning on line 107 in cli/troubleshooting.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

cli/troubleshooting.mdx#L107

Did you really mean 'sudo'?

```bash
# Sudo to system path
Expand Down Expand Up @@ -134,7 +135,7 @@
rb login
```

`NO_PROXY=127.0.0.1` is required for the OAuth callback to reach loopback without going through the proxy.

Check warning on line 138 in cli/troubleshooting.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

cli/troubleshooting.mdx#L138

Did you really mean 'loopback'?

**Custom CA bundle.** Set `NODE_EXTRA_CA_CERTS`:

Expand Down
1 change: 1 addition & 0 deletions concepts/credits.mdx
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
---
title: "Credits and billing"
sidebarTitle: "Credits"
description: "Get per-job nanodollar billing from a prepaid balance. Free plan grants $5, Pro is $9/mo. Credits never expire. Every terminal job pays actual compute."

Check warning on line 4 in concepts/credits.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

concepts/credits.mdx#L4

Did you really mean 'nanodollar'?
icon: "coins"
keywords: ["credit-based billing", "nanodollar pricing", "rendobar credits", "video api credits", "prepaid balance"]
canonical: "https://rendobar.com/docs/concepts/credits"
---

<script
Expand Down Expand Up @@ -31,7 +32,7 @@
| | Free | Pro |
|---|---|---|
| Price | $0/mo | $9/mo |
| Signup credits | $5 (one-time) | - |

Check warning on line 35 in concepts/credits.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

concepts/credits.mdx#L35

Did you really mean 'Signup'?
| Monthly credits included | - | $5 |
| Credit-purchase bonus | - | +20% |
| Concurrent jobs | 1 | 25 |
Expand All @@ -49,11 +50,11 @@

$10 / $25 / $50 / $100 (or custom, $10 minimum). Pro adds **+20%** to every purchase. Buy $25, get $30. Credits never expire.

## How it works: nanodollar billing

Check warning on line 53 in concepts/credits.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

concepts/credits.mdx#L53

Did you really mean 'nanodollar'?

Every job is billed in nanodollars (one-billionth of a US dollar) drawn from your prepaid balance. This differs from tier-based quotas where you buy a plan with a bucket of minutes:

Check warning on line 55 in concepts/credits.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

concepts/credits.mdx#L55

Did you really mean 'nanodollars'?

- **Cost matches resources used.** A 30-second watermark on 1080p shouldn't cost the same as a 10-minute H.265 transcode of a 4K master.

Check warning on line 57 in concepts/credits.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

concepts/credits.mdx#L57

Did you really mean 'transcode'?
- **Prepaid means predictable budgets.** You top up when you want; jobs run only if affordable. No end-of-month surprise bill.

## Credit lifecycle
Expand All @@ -69,7 +70,7 @@

## Cost model

`ffmpeg` bills per compute second, which is the wall-clock time FFmpeg ran your command, excluding upload and download. Typical cost: ~$0.05/min. The same per-second rate applies whether the job completes successfully or fails partway through.

Check warning on line 73 in concepts/credits.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

concepts/credits.mdx#L73

Did you really mean 'FFmpeg'?

If your balance is at or below zero when you submit:

Expand Down Expand Up @@ -110,7 +111,7 @@

## Practical advice

- **Start on Free.** $5 signup grant covers many hundreds of small jobs.

Check warning on line 114 in concepts/credits.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

concepts/credits.mdx#L114

Did you really mean 'signup'?
- **Store `cost.nanodollars` from every response.** Reconcile against your monthly invoice.

## See also
Expand Down
1 change: 1 addition & 0 deletions concepts/job-lifecycle.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
sidebarTitle: "Job lifecycle"
icon: "rotate"
keywords: ["job lifecycle", "job status", "waiting complete failed", "video processing job states", "rendobar status"]
canonical: "https://rendobar.com/docs/concepts/job-lifecycle"
---

<script
Expand Down Expand Up @@ -38,14 +39,14 @@
| `dispatched` | Sent to the execution provider |
| `running` | Provider has started processing |
| `complete` | Finished successfully. Output available |
| `failed` | Errored. See `error.code` and `error.message` |

Check warning on line 42 in concepts/job-lifecycle.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

concepts/job-lifecycle.mdx#L42

Did you really mean 'Errored'?
| `cancelled` | Cancelled before completion |

## Each transition

**Submission → `waiting`.** Auth, [rate limit](/support/limits), plan, [credit pre-check](/concepts/credits), schema validation. If all pass, job is saved.

**Dispatch → `dispatched`.** Routed to an available provider. The provider receives presigned URLs for input download and output upload.

Check warning on line 49 in concepts/job-lifecycle.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

concepts/job-lifecycle.mdx#L49

Did you really mean 'presigned'?

**Execution → `running`.** Provider downloads inputs, runs the job, uploads the result.

Expand Down Expand Up @@ -83,7 +84,7 @@

## Retries

Dispatch failures retry up to 3 times with exponential backoff. After the third failure the job moves to the dead-letter queue and is marked `failed`.

Check warning on line 87 in concepts/job-lifecycle.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

concepts/job-lifecycle.mdx#L87

Did you really mean 'backoff'?

To manually retry a failed job:

Expand Down
1 change: 1 addition & 0 deletions concepts/job-output.mdx
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
---
title: "Job output shape"
description: "Read the output shape every Rendobar job returns: data, file, files, and expiresAt, the File type, and the four output patterns with examples."

Check warning on line 3 in concepts/job-output.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

concepts/job-output.mdx#L3

Did you really mean 'Rendobar'?

Check warning on line 3 in concepts/job-output.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

concepts/job-output.mdx#L3

Did you really mean 'expiresAt'?
sidebarTitle: "Job output"
icon: "box-open"
keywords: ["job output", "output shape", "output.data", "output.file", "output.files", "file type enum", "rendobar response"]
canonical: "https://rendobar.com/docs/concepts/job-output"
---

<script
Expand Down Expand Up @@ -140,7 +141,7 @@

### Single file

One output file. `file` is that file, `files` lists one, `data` is null. The most common pattern for transform jobs (FFmpeg, transcode, watermark).

Check warning on line 144 in concepts/job-output.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

concepts/job-output.mdx#L144

Did you really mean 'FFmpeg'?

Check warning on line 144 in concepts/job-output.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

concepts/job-output.mdx#L144

Did you really mean 'transcode'?

```json
{
Expand Down
1 change: 1 addition & 0 deletions guides/ffmpeg.mdx
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
---
title: "FFmpeg command guide"

Check warning on line 2 in guides/ffmpeg.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

guides/ffmpeg.mdx#L2

Did you really mean 'FFmpeg'?
sidebarTitle: "FFmpeg"
description: "Run any FFmpeg command in the cloud. ~120 whitelisted flags, 8-layer sandboxed execution, signed download URL. Same FFmpeg syntax you know."

Check warning on line 4 in guides/ffmpeg.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

guides/ffmpeg.mdx#L4

Did you really mean 'FFmpeg'?

Check warning on line 4 in guides/ffmpeg.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

guides/ffmpeg.mdx#L4

Did you really mean 'sandboxed'?
icon: "terminal"
keywords: ["ffmpeg guide", "ffmpeg in cloud", "ffmpeg sandboxed execution", "ffmpeg flags whitelist", "ffmpeg command api"]
canonical: "https://rendobar.com/docs/guides/ffmpeg"
---

<script
Expand All @@ -24,7 +25,7 @@
}}
/>

You write the FFmpeg command. Rendobar downloads inputs, runs the command in an isolated container, returns a signed download URL. Same syntax you'd run locally.

Check warning on line 28 in guides/ffmpeg.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

guides/ffmpeg.mdx#L28

Did you really mean 'FFmpeg'?

Check warning on line 28 in guides/ffmpeg.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

guides/ffmpeg.mdx#L28

Did you really mean 'Rendobar'?

```bash
curl -X POST https://api.rendobar.com/jobs \
Expand All @@ -40,15 +41,15 @@
```

<Tip>
From a shell? Use [the CLI](/cli/overview): `rb ffmpeg -i input.mp4 -vf scale=1280:720 out.mp4`. Local files upload automatically.

Check warning on line 44 in guides/ffmpeg.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

guides/ffmpeg.mdx#L44

Did you really mean 'ffmpeg'?
</Tip>

## How it runs

1. **Validate**: command parsed against 8 security layers (flag whitelist, format/filter blocklists)
2. **Download**: input URLs pulled to a sandboxed worker

Check warning on line 50 in guides/ffmpeg.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

guides/ffmpeg.mdx#L50

Did you really mean 'sandboxed'?
3. **Substitute**: URLs replaced with local paths in the FFmpeg command

Check warning on line 51 in guides/ffmpeg.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

guides/ffmpeg.mdx#L51

Did you really mean 'FFmpeg'?
4. **Execute**: FFmpeg runs in an isolated container with network disabled

Check warning on line 52 in guides/ffmpeg.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

guides/ffmpeg.mdx#L52

Did you really mean 'FFmpeg'?
5. **Upload**: output goes to R2
6. **Return**: signed `output.file.url` available via `GET /jobs/{id}`

Expand Down Expand Up @@ -94,7 +95,7 @@

### Auxiliary files read by a filter

Some files aren't passed as `-i` arguments. Filters like `subtitles=`, `lut3d=`, and `drawtext fontfile=`, and the lists read by the `concat` demuxer, read a file by name from the working directory. Provide those through `inputs` so they're staged before the command runs.

Check warning on line 98 in guides/ffmpeg.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

guides/ffmpeg.mdx#L98

Did you really mean 'demuxer'?

This burns a subtitle track that lives only in the request, with no file to host:

Expand All @@ -119,7 +120,7 @@
|---|---|---|---|---|
| `type` | string | yes | - | `"ffmpeg"` |
| `inputs` | object | yes | - | Working directory for the command. Maps a filename to a source (URL, `{url}`, or `{content}`; an uploaded asset's content URL is just a URL). `{}` when every input is an inline `-i` URL. See [Input sources](#input-sources) |
| `params.command` | string | yes | - | Real FFmpeg command starting with `ffmpeg`. Input URLs go in `-i` positions |

Check warning on line 123 in guides/ffmpeg.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

guides/ffmpeg.mdx#L123

Did you really mean 'FFmpeg'?
| `params.outputFormat` | string | no | inferred | Override container format. Inferred from trailing filename if omitted |
| `params.timeout` | int | no | `120` | Server-side max execution in seconds. Range 1–900 |

Expand All @@ -143,13 +144,13 @@
|---|---|
| `-i` | Input file |
| `-f` | Force format |
| `-c:v`, `-c:a` | Video / audio codec (stream specifiers like `-c:v:0` work) |

Check warning on line 147 in guides/ffmpeg.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

guides/ffmpeg.mdx#L147

Did you really mean 'codec'?
| `-vf`, `-af` | Video / audio filter |
| `-filter_complex` | Complex filter graph |
| `-map` | Stream mapping |
| `-ss`, `-t` | Seek position, duration |
| `-r`, `-s` | Frame rate, resolution |
| `-b:v`, `-b:a` | Video / audio bitrate |

Check warning on line 153 in guides/ffmpeg.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

guides/ffmpeg.mdx#L153

Did you really mean 'bitrate'?
| `-crf`, `-preset` | Quality + preset |
| `-an`, `-vn` | Disable audio / video |
| `-y` | Overwrite output |
Expand All @@ -161,14 +162,14 @@

Every command is validated before it runs, then executed in an isolated, network-restricted sandbox.

- **Flag allowlist.** Only known-safe flags pass. Anything unrecognised is rejected with `VALIDATION_ERROR` before dispatch.

Check warning on line 165 in guides/ffmpeg.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

guides/ffmpeg.mdx#L165

Did you really mean 'allowlist'?
- **No reads through filters.** Filters and formats that read from disk, fetch over the network, or run external code are blocked.
- **Path containment.** Inputs are limited to the files you provide. Path traversal and access to system paths are rejected.
- **Sandboxed execution.** Each job runs in an isolated container with a clean environment, restricted I/O, and no ambient network access.

Check warning on line 168 in guides/ffmpeg.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

guides/ffmpeg.mdx#L168

Did you really mean 'Sandboxed'?

## Cost & timeout

Priced per compute second from your [credit balance](/concepts/credits), the wall-clock time FFmpeg ran, excluding file transfer. Typical cost ~$0.05/min.

Check warning on line 172 in guides/ffmpeg.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

guides/ffmpeg.mdx#L172

Did you really mean 'FFmpeg'?

Plan timeouts: 5 min (Free), 15 min (Pro). See [plan limits](/support/limits) for the full table. Exceeding the timeout returns `PROVIDER_TIMEOUT`; no credits charged.

Expand Down Expand Up @@ -226,9 +227,9 @@

The filenames your command writes define the output. You get back every file it produced.

Every completed job, FFmpeg or otherwise, returns the same `output` shape. [Job output](/concepts/job-output) documents it in full. The short version:

Check warning on line 230 in guides/ffmpeg.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

guides/ffmpeg.mdx#L230

Did you really mean 'FFmpeg'?

- `output.data`: the computed answer (a probe result, a transcript). `null` for FFmpeg jobs, which only write files.

Check warning on line 232 in guides/ffmpeg.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

guides/ffmpeg.mdx#L232

Did you really mean 'FFmpeg'?
- `output.file`: the headline result you play or download, one file or a stream manifest. `null` for pure file sets.
- `output.files`: every file the job produced, the complete list.
- `output.expiresAt`: Unix ms when the URLs expire, present when `files` is non-empty.
Expand Down Expand Up @@ -329,7 +330,7 @@

## Error handling

A failed job carries an `error` object with `code`, `message`, `detail`, and `retryable`. When FFmpeg exits non-zero, `error.detail` holds the last ~2 KB of the real stderr. Fetch the job to see exactly why FFmpeg stopped.

Check warning on line 333 in guides/ffmpeg.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

guides/ffmpeg.mdx#L333

Did you really mean 'FFmpeg'?

```json
{
Expand Down
1 change: 1 addition & 0 deletions guides/webhooks.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
sidebarTitle: "Webhooks"
icon: "bell"
keywords: ["webhooks", "hmac signature", "job status webhook", "rendobar webhook setup", "signed webhook"]
canonical: "https://rendobar.com/docs/guides/webhooks"
---

<script
Expand All @@ -24,7 +25,7 @@
}}
/>

Rendobar POSTs JSON to your endpoint when a [job](/concepts/job-lifecycle) changes status. Available on all plans, including Free.

Check warning on line 28 in guides/webhooks.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

guides/webhooks.mdx#L28

Did you really mean 'Rendobar'?

## Set up a webhook

Expand Down Expand Up @@ -86,7 +87,7 @@
"meta": { "format": "mp4", "width": 1920, "height": 1080, "durationMs": 127500 }
}
],
"expiresAt": 1707440415000

Check warning on line 90 in guides/webhooks.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

guides/webhooks.mdx#L90

Did you really mean 'expiresAt'?
},
"cost": { "amount": 50000000, "currency": "USD", "formatted": "$0.05" },
"timing": {
Expand Down Expand Up @@ -188,7 +189,7 @@
## Best practices

- **Return 200 fast.** Process asynchronously. Long handlers trigger retries → duplicate deliveries.
- **Deduplicate** on `X-Rendobar-Delivery` or `jobId`. Same event can arrive more than once.

Check warning on line 192 in guides/webhooks.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

guides/webhooks.mdx#L192

Did you really mean 'Deduplicate'?
- **Verify every signature** before reading the body.

## See also
Expand Down
1 change: 1 addition & 0 deletions job-types/caption-burn.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ sidebarTitle: "caption.burn"
description: "Burn styled subtitles into a video from an SRT, VTT, or ASS file, or auto-transcribe in any language. Web-hex styling, deterministic sizing."
icon: "closed-captioning"
tag: "Live"
canonical: "https://rendobar.com/docs/job-types/caption-burn"
---

<Check>
Expand Down
1 change: 1 addition & 0 deletions job-types/captions-animate.mdx
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
---
title: "captions.animate"
description: "Burn animated word-level captions onto a video at $0.10/min. Pick a preset (hormozi, mrbeast, tiktok, pill). Single speaker, 5 min input cap."

Check warning on line 3 in job-types/captions-animate.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

job-types/captions-animate.mdx#L3

Did you really mean 'hormozi'?

Check warning on line 3 in job-types/captions-animate.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

job-types/captions-animate.mdx#L3

Did you really mean 'mrbeast'?

Check warning on line 3 in job-types/captions-animate.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

job-types/captions-animate.mdx#L3

Did you really mean 'tiktok'?
icon: "captions"
tag: "Live"
keywords: ["animated captions", "burn subtitles", "auto captions", "tiktok captions", "subtitles", "captions.animate"]
canonical: "https://rendobar.com/docs/job-types/captions-animate"
---

<script
Expand Down
1 change: 1 addition & 0 deletions job-types/ffmpeg.mdx
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
---
title: "FFmpeg reference"

Check warning on line 2 in job-types/ffmpeg.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

job-types/ffmpeg.mdx#L2

Did you really mean 'FFmpeg'?
sidebarTitle: "FFmpeg"
description: "Execute a custom FFmpeg command via API with ~120 whitelisted flags, sandboxed execution, and signed output URL. Live on all plans, ~$0.05/min."

Check warning on line 4 in job-types/ffmpeg.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

job-types/ffmpeg.mdx#L4

Did you really mean 'FFmpeg'?

Check warning on line 4 in job-types/ffmpeg.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

job-types/ffmpeg.mdx#L4

Did you really mean 'sandboxed'?
icon: "terminal"
tag: "Live"
keywords: ["ffmpeg api reference", "ffmpeg cloud", "ffmpeg sandboxed", "ffmpeg rest api", "ffmpeg command api"]
canonical: "https://rendobar.com/docs/job-types/ffmpeg"
---

<script
Expand All @@ -14,7 +15,7 @@
"@context": "https://schema.org",
"@type": "TechArticle",
"@id": "https://rendobar.com/docs/job-types/ffmpeg/#article",
"headline": "FFmpeg reference",

Check warning on line 18 in job-types/ffmpeg.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

job-types/ffmpeg.mdx#L18

Did you really mean 'FFmpeg'?
"description": "Execute a custom FFmpeg command with whitelisted flags, sandboxed execution, and signed output URL. Live on all plans.",
"datePublished": "2026-03-20",
"dateModified": "2026-05-24",
Expand All @@ -29,7 +30,7 @@
**Live.** Production-ready, available on all plans.
</Check>

Execute a custom FFmpeg command with whitelisted flags. The `inputs` map stages source files into the working directory by name. The command references them by bare name, and inline `-i` URLs also work.

Check warning on line 33 in job-types/ffmpeg.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

job-types/ffmpeg.mdx#L33

Did you really mean 'FFmpeg'?

<Info>
**Timeout:** 900 s max (plan-capped) · **Accepts:** video, audio, image
Expand Down Expand Up @@ -100,7 +101,7 @@
`{ "url": "https://..." }`. Remote file, explicit form.
</ResponseField>
<ResponseField name="content" type="object">
`{ "content": "...text..." }`. Inline text staged verbatim, up to 64 KB. For subtitles, `concat` lists, and LUTs with nothing to host.

Check warning on line 104 in job-types/ffmpeg.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

job-types/ffmpeg.mdx#L104

Did you really mean 'LUTs'?
</ResponseField>
<ResponseField name="uploaded file" type="string">
A file you already uploaded is referenced by its content URL: the `url` returned by the uploads endpoint, like `https://api.rendobar.com/assets/asset_abc123/content`. Pass it like any other URL string.
Expand All @@ -111,7 +112,7 @@
</ParamField>

<ParamField body="command" type="string" required>
Real FFmpeg command starting with `ffmpeg`. Input URLs go in `-i` positions, or reference staged `inputs` files by name.

Check warning on line 115 in job-types/ffmpeg.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

job-types/ffmpeg.mdx#L115

Did you really mean 'FFmpeg'?
</ParamField>

<ParamField body="outputFormat" type="enum" default="inferred">
Expand All @@ -130,7 +131,7 @@

Poll `GET /jobs/{id}` until `status: "complete"`. On success the job carries an `output` object. On failure it carries an `error` object. The filenames your command writes define the output.

`output` is one shape for every job type, documented in full on [Job output](/concepts/job-output). FFmpeg jobs set `output.data` to `null` and return their files in `output.file` and `output.files`. Read `output.file.url` for the file to play or download, and `output.files` for the full list.

Check warning on line 134 in job-types/ffmpeg.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

job-types/ffmpeg.mdx#L134

Did you really mean 'FFmpeg'?

<ResponseField name="error" type="object">
Present when `status` is `failed`.
Expand Down Expand Up @@ -166,4 +167,4 @@
- [CLI overview](/cli/overview): the same job from your terminal with `rb ffmpeg`
- [Credits and billing](/concepts/credits): per-compute-second pricing detail
- [Plan limits](/support/limits): file-size caps, timeouts, and concurrency per plan
- [FFmpeg in the cloud](https://rendobar.com/ffmpeg/): every operation Rendobar supports

Check warning on line 170 in job-types/ffmpeg.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

job-types/ffmpeg.mdx#L170

Did you really mean 'Rendobar'?
1 change: 1 addition & 0 deletions mcp/examples.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
sidebarTitle: "Examples"
icon: "play"
keywords: ["mcp example", "claude desktop video", "burn captions agent", "rendobar mcp tutorial", "ai video agent"]
canonical: "https://rendobar.com/docs/mcp/examples"
---

<script
Expand All @@ -24,11 +25,11 @@
}}
/>

In this tutorial we'll use Claude Desktop to caption a local video. The agent uploads it to Rendobar, runs an FFmpeg job that burns subtitles into the video, and returns a download URL. End-to-end takes about eight minutes.

Check warning on line 28 in mcp/examples.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

mcp/examples.mdx#L28

Did you really mean 'Rendobar'?

Check warning on line 28 in mcp/examples.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

mcp/examples.mdx#L28

Did you really mean 'FFmpeg'?

You will need:

- A Rendobar API key (see [Installation](/mcp/installation) step 1)

Check warning on line 32 in mcp/examples.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

mcp/examples.mdx#L32

Did you really mean 'Rendobar'?
- Claude Desktop with `@rendobar/mcp` configured (see [Installation](/mcp/installation) step 2)
- A short `.mp4` file on your laptop
- An `.srt` subtitle file at the same location
Expand All @@ -45,11 +46,11 @@
The agent burned it into the video.
```

## Step 1: Confirm the agent sees Rendobar

Check warning on line 49 in mcp/examples.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

mcp/examples.mdx#L49

Did you really mean 'Rendobar'?

Open Claude Desktop and ask:

> What MCP tools do you have for Rendobar?

Check warning on line 53 in mcp/examples.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

mcp/examples.mdx#L53

Did you really mean 'Rendobar'?

The agent lists `upload_file`, `submit_job`, `get_job`, `list_jobs`, `cancel_job`, `get_account`. If it doesn't, the MCP isn't loaded. Re-check your config and restart Claude Desktop.

Expand All @@ -57,7 +58,7 @@

Ask:

> Check my Rendobar balance.

Check warning on line 61 in mcp/examples.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

mcp/examples.mdx#L61

Did you really mean 'Rendobar'?

The agent calls `get_account` and reports something like *"$29.42, free plan, 100 MB max upload"*. We're going to spend around $0.05.

Expand All @@ -65,13 +66,13 @@

Tell the agent the goal:

> Burn the captions in `~/Videos/clip.srt` into `~/Videos/clip.mp4` and give me the result. Use Rendobar.

Check warning on line 69 in mcp/examples.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

mcp/examples.mdx#L69

Did you really mean 'Rendobar'?

The agent runs three tool calls in sequence:

1. `upload_file({ path: "~/Videos/clip.mp4" })` returns a `downloadUrl`
2. `upload_file({ path: "~/Videos/clip.srt" })` returns a second `downloadUrl`
3. `submit_job` with `type: "ffmpeg"`, the two URLs as `inputs`, and an FFmpeg command that uses `-vf subtitles`

Check warning on line 75 in mcp/examples.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

mcp/examples.mdx#L75

Did you really mean 'FFmpeg'?

You see each call as it happens in Claude Desktop's tool-call panel.

Expand All @@ -85,20 +86,20 @@

## What just happened

You handed the agent two local files and a goal. It uploaded each to ephemeral storage, submitted a job to Rendobar's FFmpeg infrastructure, and polled until done. The whole flow used six tool calls and one English sentence from you.

Check warning on line 89 in mcp/examples.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

mcp/examples.mdx#L89

Did you really mean 'Rendobar's'?

Check warning on line 89 in mcp/examples.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

mcp/examples.mdx#L89

Did you really mean 'FFmpeg'?

The output file lives at `cdn.rendobar.com` for 24 hours by default, then auto-deletes. The uploaded source files auto-delete in the same window.

## Next

- [Tools reference](/mcp/tools): full schemas for every tool
- [`ffmpeg` job type](/job-types/ffmpeg): what FFmpeg commands are accepted

Check warning on line 96 in mcp/examples.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

mcp/examples.mdx#L96

Did you really mean 'FFmpeg'?
- [Troubleshooting](/mcp/troubleshooting): when something goes wrong

## Related

- [Tools reference](/mcp/tools): every typed MCP tool with parameter shapes
- [Installation](/mcp/installation): per-client config blocks if you skipped step 1
- [FFmpeg guide](/guides/ffmpeg): the FFmpeg security model the agent runs against

Check warning on line 103 in mcp/examples.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

mcp/examples.mdx#L103

Did you really mean 'FFmpeg'?
- [Troubleshooting](/mcp/troubleshooting): fixes when tool calls hang or the agent sees no tools
- [MCP product overview](https://rendobar.com/mcp/): more agent capability examples
1 change: 1 addition & 0 deletions mcp/installation.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
description: "Configure the local stdio MCP server for Claude Desktop, Cursor, Cline, Windsurf, Zed, VS Code, Claude Code, or Continue. Takes 2 minutes."
icon: "download"
keywords: ["install rendobar mcp", "claude desktop config", "cursor mcp install", "npx rendobar mcp", "windsurf mcp"]
canonical: "https://rendobar.com/docs/mcp/installation"
---

<script
Expand Down Expand Up @@ -153,7 +154,7 @@

## 3. Verify

Open a chat in your client and ask: *"What's my Rendobar balance?"*

Check warning on line 157 in mcp/installation.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

mcp/installation.mdx#L157

Did you really mean 'Rendobar'?

The agent calls `get_account` and reports your balance. If you see "RENDOBAR_API_KEY missing" in your client's MCP logs, the env var didn't propagate. Re-check the config block.

Expand Down
1 change: 1 addition & 0 deletions mcp/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
description: "Connect AI agents via two transports: a local stdio server for IDE clients (Claude Desktop, Cursor) and a remote HTTP server for web and mobile."
icon: "plug"
keywords: ["mcp server", "model context protocol", "claude desktop mcp", "cursor mcp", "ai agent video tools", "rendobar mcp"]
canonical: "https://rendobar.com/docs/mcp/overview"
---

<script
Expand All @@ -24,7 +25,7 @@
}}
/>

Rendobar exposes its API as a Model Context Protocol server so AI agents can submit jobs, upload files, and check status without writing HTTP code. There are two servers. Pick by client.

Check warning on line 28 in mcp/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

mcp/overview.mdx#L28

Did you really mean 'Rendobar'?

## Pick a transport

Expand Down Expand Up @@ -67,7 +68,7 @@

## Authentication

Both servers use a Rendobar API key (`rb_*`). Get one at [app.rendobar.com](https://app.rendobar.com) → Settings → API Keys. See [authentication](/authentication) for the full credential model.

Check warning on line 71 in mcp/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

mcp/overview.mdx#L71

Did you really mean 'Rendobar'?

- Local: `RENDOBAR_API_KEY` env var, `--api-key` flag, or credentials file
- Remote: `Authorization: Bearer` header
Expand Down
1 change: 1 addition & 0 deletions mcp/tools.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
sidebarTitle: "Tools reference"
icon: "wrench"
keywords: ["mcp tools", "submit_job", "get_job", "list_jobs", "probe_media", "upload_media", "upload_file"]
canonical: "https://rendobar.com/docs/mcp/tools"
---

<script
Expand All @@ -24,11 +25,11 @@
}}
/>

Tool definitions for both Rendobar MCP servers. The local stdio server (`@rendobar/mcp`) exposes six tools including `upload_file`. The remote HTTP server keeps `upload_media` for browser-based clients that have no disk access.

Check warning on line 28 in mcp/tools.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

mcp/tools.mdx#L28

Did you really mean 'Rendobar'?

## Annotations

| Tool | readOnlyHint | destructiveHint | idempotentHint | openWorldHint |

Check warning on line 32 in mcp/tools.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

mcp/tools.mdx#L32

Did you really mean 'destructiveHint'?

Check warning on line 32 in mcp/tools.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

mcp/tools.mdx#L32

Did you really mean 'idempotentHint'?
|---|:-:|:-:|:-:|:-:|
| `upload_file` | false | false | false | true |
| `upload_media` | false | false | false | true |
Expand All @@ -47,7 +48,7 @@
</ParamField>

<ParamField body="filename" type="string">
Filename hint sent to Rendobar. Defaults to the basename of `path`.

Check warning on line 51 in mcp/tools.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

mcp/tools.mdx#L51

Did you really mean 'Rendobar'?

Check warning on line 51 in mcp/tools.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

mcp/tools.mdx#L51

Did you really mean 'basename'?
</ParamField>

**Returns:** `{ downloadUrl: string, sizeBytes: number }`. Pass `downloadUrl` as a value in `submit_job`'s `inputs` map. Files auto-delete after 24 hours.
Expand Down
1 change: 1 addition & 0 deletions mcp/troubleshooting.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
sidebarTitle: "Troubleshooting"
icon: "wrench"
keywords: ["rendobar mcp error", "mcp not loading", "claude desktop mcp not working", "cursor mcp path", "mcp api key"]
canonical: "https://rendobar.com/docs/mcp/troubleshooting"
---

<script
Expand All @@ -26,7 +27,7 @@

Known failures with the local stdio server (`@rendobar/mcp`) and the fixes. Errors are quoted from the actual stderr the server emits.

## "No Rendobar API key found"

Check warning on line 30 in mcp/troubleshooting.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

mcp/troubleshooting.mdx#L30

Did you really mean 'Rendobar'?

The server didn't see a key in any of the three sources.

Expand All @@ -41,13 +42,13 @@

**Fix:** verify the config file your client actually loaded. In Claude Desktop, **Settings → Developer → Open MCP Log Folder** shows the launch command and the env vars it received. If `RENDOBAR_API_KEY` is missing there, the config file path is wrong.

## "Invalid Rendobar API key"

Check warning on line 45 in mcp/troubleshooting.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

mcp/troubleshooting.mdx#L45

Did you really mean 'Rendobar'?

```text
Invalid Rendobar API key: must start with 'rb_' (got 'sk_li...')
```

The key was read but doesn't look like a Rendobar key. You probably pasted an OpenAI or Stripe key. Get a Rendobar key at [app.rendobar.com](https://app.rendobar.com) → Settings → API Keys.

Check warning on line 51 in mcp/troubleshooting.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

mcp/troubleshooting.mdx#L51

Did you really mean 'Rendobar'?

Check warning on line 51 in mcp/troubleshooting.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

mcp/troubleshooting.mdx#L51

Did you really mean 'Rendobar'?

## "@rendobar/mcp requires Node.js 20 or later"

Expand All @@ -55,9 +56,9 @@

**Fix:** upgrade Node to 20.10 or later, or use [nvm](https://github.com/nvm-sh/nvm) / [fnm](https://github.com/Schniz/fnm) / [volta](https://volta.sh) to install side by side.

## Cursor on macOS can't find npx

Check warning on line 59 in mcp/troubleshooting.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

mcp/troubleshooting.mdx#L59

Did you really mean 'npx'?

Cursor launched from the macOS Dock inherits the GUI environment, not your shell PATH. If you installed Node via nvm or asdf, `npx` isn't on the GUI PATH.

Check warning on line 61 in mcp/troubleshooting.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

mcp/troubleshooting.mdx#L61

Did you really mean 'nvm'?

Check warning on line 61 in mcp/troubleshooting.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

mcp/troubleshooting.mdx#L61

Did you really mean 'asdf'?

**Fix:** use the absolute path to `npx` in `~/.cursor/mcp.json`:

Expand All @@ -75,7 +76,7 @@

Find the path with `which npx` in your terminal.

## Windows: 'npx' is not recognized

Check warning on line 79 in mcp/troubleshooting.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

mcp/troubleshooting.mdx#L79

Did you really mean 'npx'?

Some clients on Windows don't auto-resolve `npx` to `npx.cmd`.

Expand All @@ -87,7 +88,7 @@

- **Claude Desktop:** Settings → Developer → Open MCP Log Folder → `mcp-server-rendobar.log`
- **Cursor:** Output panel → MCP
- **VS Code:** Output panel → MCP → rendobar

Check warning on line 91 in mcp/troubleshooting.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

mcp/troubleshooting.mdx#L91

Did you really mean 'rendobar'?
- **Cline:** Cline output panel

Look for JSON lines with `"level": "error"`. The `errCode` field maps to a specific failure (see [Errors](/support/errors)).
Expand All @@ -100,13 +101,13 @@

Free plan caps uploads at 100 MB. Pro plan caps at 2 GB. Either compress the file before upload or upgrade.

Check your current limit by asking the agent: *"What's my Rendobar max upload size?"*. It calls `get_account`.

Check warning on line 104 in mcp/troubleshooting.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

mcp/troubleshooting.mdx#L104

Did you really mean 'Rendobar'?

## Server boots but agent reports no tools

The handshake succeeded but `tools/list` returned empty. This is rare. It usually means the package version is corrupt.

**Fix:** clear the npx cache and reinstall:

Check warning on line 110 in mcp/troubleshooting.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

mcp/troubleshooting.mdx#L110

Did you really mean 'npx'?

```bash
npm cache clean --force
Expand Down
1 change: 1 addition & 0 deletions mcp/web-and-mobile.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
description: "Connect web and mobile AI clients to the remote HTTP MCP at api.rendobar.com/mcp. Local file uploads require an extra curl step to upload first."
icon: "globe"
keywords: ["claude.ai mcp", "chatgpt mcp", "remote mcp server", "rendobar streamable http", "browser mcp"]
canonical: "https://rendobar.com/docs/mcp/web-and-mobile"
---

<script
Expand Down Expand Up @@ -35,12 +36,12 @@

In claude.ai, open **Settings** → **Connectors** → **Add custom connector**:

- **Name:** Rendobar

Check warning on line 39 in mcp/web-and-mobile.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

mcp/web-and-mobile.mdx#L39

Did you really mean 'Rendobar'?
- **URL:** `https://api.rendobar.com/mcp`
- **Authentication:** Bearer token
- **Token:** your `rb_...` API key

Save. Start a new chat. The agent has access to Rendobar tools.

Check warning on line 44 in mcp/web-and-mobile.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

mcp/web-and-mobile.mdx#L44

Did you really mean 'Rendobar'?

</Tab>
<Tab title="ChatGPT Apps">
Expand All @@ -53,9 +54,9 @@
</Tab>
<Tab title="Custom client">

Any MCP-compatible client supporting Streamable HTTP transport works:

Check warning on line 57 in mcp/web-and-mobile.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

mcp/web-and-mobile.mdx#L57

Did you really mean 'Streamable'?

- **Transport:** Streamable HTTP

Check warning on line 59 in mcp/web-and-mobile.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

mcp/web-and-mobile.mdx#L59

Did you really mean 'Streamable'?
- **URL:** `https://api.rendobar.com/mcp`
- **Header:** `Authorization: Bearer rb_...`

Expand Down
1 change: 1 addition & 0 deletions quickstart.mdx
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
---
title: "API quickstart guide"
sidebarTitle: "Quickstart"
description: "Submit your first ffmpeg job, poll to completion, and download the result. Under 5 minutes from API key to finished MP4."

Check warning on line 4 in quickstart.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

quickstart.mdx#L4

Did you really mean 'ffmpeg'?
icon: "rocket"
keywords: ["rendobar quickstart", "ffmpeg api tutorial", "first api call", "video processing quickstart", "ffmpeg job"]
canonical: "https://rendobar.com/docs/quickstart"
---

<script
Expand Down
47 changes: 47 additions & 0 deletions scripts/add-canonical.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
#!/usr/bin/env node
// One-off: insert canonical frontmatter into every docs page.
// canonical = https://rendobar.com/docs/<path-without-.mdx>
import { readFileSync, writeFileSync, readdirSync, statSync } from 'fs';
import { join, relative } from 'path';
import { fileURLToPath } from 'url';
import { dirname } from 'path';

const __dirname = dirname(fileURLToPath(import.meta.url));
const ROOT = join(__dirname, '..');
const BASE = 'https://rendobar.com/docs/';

function walkMdx(dir, files = []) {
for (const entry of readdirSync(dir)) {
const full = join(dir, entry);
if (statSync(full).isDirectory()) {
if (['snippets', '.claude', 'node_modules', 'superpowers', '.git'].includes(entry)) continue;
walkMdx(full, files);
} else if (entry.endsWith('.mdx')) {
files.push(full);
}
}
return files;
}

let changed = 0;
for (const file of walkMdx(ROOT)) {
const content = readFileSync(file, 'utf8');
const eol = content.includes('\r\n') ? '\r\n' : '\n';
const lines = content.split(eol);
if (lines[0] !== '---') { console.error(`SKIP no frontmatter: ${file}`); continue; }
const close = lines.indexOf('---', 1);
if (close === -1) { console.error(`SKIP unterminated frontmatter: ${file}`); continue; }
const slug = relative(ROOT, file).replace(/\\/g, '/').replace(/\.mdx$/, '');
const canonical = `canonical: "${BASE}${slug}"`;
const existing = lines.findIndex((l, i) => i > 0 && i < close && l.startsWith('canonical:'));
if (existing !== -1) {
if (lines[existing] === canonical) continue;
lines[existing] = canonical;
} else {
lines.splice(close, 0, canonical);
}
writeFileSync(file, lines.join(eol));
changed++;
console.log(`${slug} -> ${BASE}${slug}`);
}
console.log(`Done. ${changed} files updated.`);
18 changes: 18 additions & 0 deletions scripts/validate-frontmatter.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@
* - title: 13-52 chars, sentence case, no em/en-dash, no pipe, no --, no "Rendobar"
* - description: 100-160 chars, starts with allowed action verb, no em-dash, no "Rendobar" prefix
* - description must be present on every page (except snippets)
* - canonical: must equal https://rendobar.com/docs/<page-path>. Mintlify's
* auto-canonical drops the /docs subpath on the rendobar.mintlify.app
* subdomain (points at a 404), so every page pins its canonical explicitly.
*
* Exit 0 = all pass. Exit 1 = at least one violation.
*/
Expand Down Expand Up @@ -148,6 +151,21 @@ function validate(filePath, fm, violations) {
});
}
}

// --- Canonical checks ---
const expectedCanonical =
'https://rendobar.com/docs/' + rel.replace(/\\/g, '/').replace(/\.mdx$/, '');
if (!fm.canonical) {
violations.push({
file: rel, field: 'canonical',
message: `Missing canonical field (expected "${expectedCanonical}")`,
});
} else if (fm.canonical !== expectedCanonical) {
violations.push({
file: rel, field: 'canonical',
message: `Canonical "${fm.canonical}" does not match expected "${expectedCanonical}"`,
});
}
}

function main() {
Expand Down
1 change: 1 addition & 0 deletions support/errors.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ sidebarTitle: "Error codes"
description: "View 13 API error codes, their HTTP status, and recommended action. Errors follow the {error: {code, message}} envelope on every endpoint."
icon: "triangle-exclamation"
keywords: ["rendobar error codes", "api error reference", "ffmpeg error troubleshooting", "insufficient credits", "rate limited"]
canonical: "https://rendobar.com/docs/support/errors"
---

<script
Expand Down
1 change: 1 addition & 0 deletions support/faq.mdx
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
---
title: "Frequently asked questions"
sidebarTitle: "FAQ"
description: "Get quick answers about Rendobar pricing, supported formats, AI agent access, rate limits, and what counts as a failed job."

Check warning on line 4 in support/faq.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

support/faq.mdx#L4

Did you really mean 'Rendobar'?
icon: "circle-question"
keywords: ["rendobar faq", "video api faq", "rendobar pricing faq", "ffmpeg api questions"]
canonical: "https://rendobar.com/docs/support/faq"
---

<script
Expand Down Expand Up @@ -99,11 +100,11 @@
</Accordion>

<Accordion title="What can I do with Rendobar today?">
The live API is the `ffmpeg` job type, any whitelisted FFmpeg command against URLs you provide. That covers transcoding, trimming, filtering, overlays, audio extraction, frame extraction, and anything else FFmpeg does from the command line. More dedicated job types are on the roadmap.

Check warning on line 103 in support/faq.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

support/faq.mdx#L103

Did you really mean 'FFmpeg'?

Check warning on line 103 in support/faq.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

support/faq.mdx#L103

Did you really mean 'transcoding'?
</Accordion>

<Accordion title="What video formats are supported?">
Every FFmpeg-compatible container and codec for input. Output defaults to the extension in your trailing filename (`output.mp4` → MP4). Override with `params.outputFormat`.

Check warning on line 107 in support/faq.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

support/faq.mdx#L107

Did you really mean 'codec'?
</Accordion>

<Accordion title="Can I drive Rendobar from an AI agent?">
Expand All @@ -119,7 +120,7 @@
</Accordion>

<Accordion title="What happens if a job fails?">
Failed jobs are charged for the compute they used. Rendobar has no auto-refund. If you believe a failure was caused by a Rendobar bug or platform issue, contact support and we will review for a discretionary refund. Successful and failed jobs are billed the same way: for the compute the job consumed. Inspect `error.code` and `error.message` on the job, and retry via `POST /jobs/{id}/retry` if appropriate. [Error codes](/support/errors).

Check warning on line 123 in support/faq.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

support/faq.mdx#L123

Did you really mean 'Rendobar'?
</Accordion>

<Accordion title="Can I run custom FFmpeg commands?">
Expand All @@ -127,12 +128,12 @@
</Accordion>

<Accordion title="How do I get push updates instead of polling?">
Configure a [webhook](/guides/webhooks) endpoint on your organization. Rendobar POSTs signed JSON when jobs change status. The dashboard uses a WebSocket internally. Programmatic push is webhook-only.

Check warning on line 131 in support/faq.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

support/faq.mdx#L131

Did you really mean 'Rendobar'?
</Accordion>

</AccordionGroup>

For more about what Rendobar can do, see [rendobar.com](https://rendobar.com) or [rendobar.com/pricing/](https://rendobar.com/pricing/). For head-to-head comparisons with other video APIs, see [rendobar.com/vs/](https://rendobar.com/vs/).

Check warning on line 136 in support/faq.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

support/faq.mdx#L136

Did you really mean 'Rendobar'?

## Related

Expand Down
1 change: 1 addition & 0 deletions support/limits.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
description: "Compare Free and Pro plan limits across rate limits (30 vs 300/min), file size caps (100 MB vs 2 GB), retention, concurrency, storage."
icon: "gauge"
keywords: ["rendobar limits", "api rate limits", "plan limits", "file size limit", "concurrent jobs"]
canonical: "https://rendobar.com/docs/support/limits"
---

<script
Expand All @@ -24,13 +25,13 @@
}}
/>

Every limit Rendobar enforces, by plan. Pulled from `PLAN_LIMITS` in the API. For plan prices and credit packs, see [pricing](https://rendobar.com/pricing/).

Check warning on line 28 in support/limits.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

support/limits.mdx#L28

Did you really mean 'Rendobar'?

## Plan limits

| | Free | Pro ($9/mo) |
|---|---|---|
| Signup credits | $5 (one-time) | - |

Check warning on line 34 in support/limits.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

support/limits.mdx#L34

Did you really mean 'Signup'?
| Monthly credits | - | $5/mo included |
| Credit-purchase bonus | - | +20% |
| Concurrent jobs | 1 | 25 |
Expand Down Expand Up @@ -66,7 +67,7 @@

## File formats

Rendobar accepts every FFmpeg-compatible input format. Default outputs by media type:

Check warning on line 70 in support/limits.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

support/limits.mdx#L70

Did you really mean 'Rendobar'?

| Input | Default output |
|---|---|
Expand All @@ -84,8 +85,8 @@

## Related

- [Credits and billing](/concepts/credits): nanodollar pricing and the prepaid model

Check warning on line 88 in support/limits.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

support/limits.mdx#L88

Did you really mean 'nanodollar'?
- [Error codes](/support/errors): `PLAN_LIMIT` and `RATE_LIMITED` details
- [FAQ](/support/faq): cost, rate limit, and refund questions
- [FFmpeg reference](/job-types/ffmpeg): how plan caps apply to FFmpeg jobs

Check warning on line 91 in support/limits.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

support/limits.mdx#L91

Did you really mean 'FFmpeg'?
- [Pricing](https://rendobar.com/pricing/): plan that raises your concurrency and file caps
Loading