Upload private media with the CLI.

The Remixure CLI can upload private images, audio and footage to one workspace. Review the file, its rights and its request before sending it. A dry run shows the media type, byte count and SHA256 hash; it sends no request and creates no output file.

Choose your workspace and access.

Run the checked-in bin/remixure command from your authorized Remixure repository with Node 22.18 or later. The CLI is currently repository-based, with no global package installation. If you do not have repository access, use the web media library.

In Agent access, create an expiring token for the intended workspace with assets:read and assets:write. Supply REMIXURE_TOKEN through your secret manager or private environment. Keep the token out of command arguments, screenshots and checked-in files.

export REMIXURE_API_URL=https://api.remixure.com
export REMIXURE_WORKSPACE_ID=your-workspace-id
./bin/remixure --help

The API enforces workspace membership, token scopes, expiry and revocation. A dry run is an offline request preview; it does not establish current access, capacity or server acceptance.

Review one small media upload.

Select an original regular file from 1 byte to 6 MiB. PNG, JPEG, MP3, PCM WAV and supported H.264 MP4 are admitted by their contents. Renaming an unsupported file will not make it compatible. Images must fit 4096 pixels per side and 12 megapixels; footage must fit 1–120 seconds, 1080p and 60 fps, with optional AAC audio.

./bin/remixure assets upload \
  --file ./owned-music.wav \
  --rights owned-or-licensed \
  --name "Opening music" \
  --idempotency-key music-001 \
  --dry-run

Confirm that you own or hold an appropriate license for the media. Check the preview’s workspace, rights, type, size and hash. Remove --dry-run from that same command to send it deliberately. The optional name is a private workspace label; the CLI does not send the local path or filename. Stdin, final file symlinks, empty files and files that change during reading are rejected.

Successful JSON includes the new id. The server retains the original bytes privately and applies the shared 100-file workspace allowance. An upload creates no video, narration, render, approval or social post.

Recover an interrupted confirmation.

Keep the exact original, label and idempotency key. After a connection error, inspect assets list and repeat the same upload request if confirmation remains uncertain. The CLI never retries automatically. Reusing a key with different bytes or a different name returns a conflict; inspect the existing file before making a separate deliberate upload.

List your workspace media, then download the returned asset ID to a new path:

./bin/remixure assets list
./bin/remixure assets download ASSET_ID \
  --out ./retained-original.wav

Downloads use private file permissions and refuse to overwrite an existing file or symlink. Compare the downloaded file’s hash with the original, then preview it before reusing it in a video. Keeping original bytes does not certify a file’s creative or decoder quality.

Continue a larger recording in parts.

The separate original-recording collection accepts up to 64 MiB, five retained originals and two active transfers. First call footage begin --input recording.json --idempotency-key KEY with a reviewed name, exact whole-file byte size, whole-file SHA256 and rights: "owned-or-licensed". Keep its returned source ID.

Split that exact original into consecutive 5 MiB files, with a shorter final part. Upload one numbered part at a time; there can be 1–13. Rights come from the existing transfer. A part is raw recording bytes and does not need a complete media header.

./bin/remixure footage upload-part SOURCE_ID \
  --part 1 --file ./part-aa \
  --idempotency-key part-001 \
  --dry-run

Remove --dry-run to send the reviewed part. Each part needs its own retained request key. Use footage get SOURCE_ID to read confirmed part numbers after interruption. Repeat the same part and key to recover uncertain confirmation; a different part hash is rejected. Stop sending to a cancelled, expired or completed transfer.

After every part is confirmed, use footage complete SOURCE_ID --idempotency-key KEY, then footage download SOURCE_ID --out ./retained-recording.mp4. Retain the completion key if confirmation is lost. Transfers expire after 24 hours. Completion stores the original; preparing a short range is a separate reviewed step with its own limits.

Keep review attached to the result.

These commands share the SDK and server service rules. Local header checks do not replace private decoder checks or a person watching and listening to the finished export. CLI credentials cannot record human approval, grant guest access, pay for generation or publish a post. Review the exact saved version and exported file in the app.

With videos:read, export-events list reads receiver states and the latest 30 export metadata receipts. It sends no callback. Only a verified owner or admin can configure, test and enable an operator-approved receiver in Agent access. Production event delivery remains unavailable pending an approved receiver and hosted verification; inspect studio renders VIDEO_ID for the authoritative export state.

Open Agent access →