OpenreDestination openre.destination@1

Generated at from openvibe-contracts v0.53.0 and openvibe-sdk v0.11.0.

Version
1.0.0
Owner
openre
Visibility
first-party
Status
active
Compatibility
backward
Schema
https://openvibe.network/contracts/openre/destination.v1.json

openre.destination@1: one restream destination of a stream on OpenRe.Stream (server/store/outputs.js publicDest). The stream key and SRT passphrase are write-only: only whether they are set and a hint of the key are shown.

Fields

FieldTypeRequiredDescriptionConstraints
idstringyes
stream_idstringyes
platformenumyes
  • one of "youtube", "twitch", "kick", "custom"
namestring | null
server_urlstringyes
transportenumyes
  • one of "rtmp", "srt"
has_stream_keybooleanyes
stream_key_hintstring | null
has_srt_passphraseboolean
srt_latency_msinteger | null
enabledbooleanyes
auto_startbooleanyes
quality_presetstring | null
custom_video_bitrateinteger | null
custom_audio_bitrateinteger | null
custom_fpsinteger | null
custom_encoder_presetstring | null
hold_reasonstring | null
consecutive_failuresinteger | null
cooldown_untilstring | null
  • format date-time
cooldown_msinteger
last_errorstring | null
last_failed_atstring | null
  • format date-time
created_atstring | null
  • format date-time
updated_atstring | null
  • format date-time

Examples

From the contract's own test fixtures: valid ones validate, rejected ones must fail.

Valid: twitch
{
  "id": "dst_01JAB2C3D4E5F6G7H8J9K0MNPQ",
  "stream_id": "def_01JAB2C3D4E5F6G7H8J9K0MNPQ",
  "platform": "twitch",
  "name": "Twitch",
  "server_url": "rtmp://live.twitch.tv/app",
  "transport": "rtmp",
  "has_stream_key": true,
  "stream_key_hint": "****a1b2",
  "has_srt_passphrase": false,
  "srt_latency_ms": null,
  "enabled": true,
  "auto_start": true,
  "quality_preset": "source",
  "custom_video_bitrate": null,
  "custom_audio_bitrate": null,
  "custom_fps": null,
  "custom_encoder_preset": null,
  "hold_reason": null,
  "consecutive_failures": 0,
  "cooldown_until": null,
  "cooldown_ms": 0,
  "last_error": null,
  "last_failed_at": null,
  "created_at": "2026-09-20T10:00:00.000Z",
  "updated_at": "2026-09-20T10:00:00.000Z"
}
Rejected: bad-transport
{
  "id": "dst_01JAB2C3D4E5F6G7H8J9K0MNPQ",
  "stream_id": "def_01JAB2C3D4E5F6G7H8J9K0MNPQ",
  "platform": "twitch",
  "name": "Twitch",
  "server_url": "rtmp://live.twitch.tv/app",
  "transport": "hls",
  "has_stream_key": true,
  "stream_key_hint": "****a1b2",
  "has_srt_passphrase": false,
  "srt_latency_ms": null,
  "enabled": true,
  "auto_start": true,
  "quality_preset": "source",
  "custom_video_bitrate": null,
  "custom_audio_bitrate": null,
  "custom_fps": null,
  "custom_encoder_preset": null,
  "hold_reason": null,
  "consecutive_failures": 0,
  "cooldown_until": null,
  "cooldown_ms": 0,
  "last_error": null,
  "last_failed_at": null,
  "created_at": "2026-09-20T10:00:00.000Z",
  "updated_at": "2026-09-20T10:00:00.000Z"
}

Validate

const contracts = require('openvibe-contracts');
contracts.validate('openre.destination@1', value);   // { valid, errors: [{ path, message }] }