LiveChannelReadResult live.channel-read-result@1

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

Version
1.0.0
Owner
live
Visibility
first-party
Status
active
Compatibility
backward
Schema
https://openvibe.network/contracts/live/channel-read-result.v1.json

live.channel-read-result@1: answers of live.channel.read on OpenVibe.Live (public; the channel is addressed by username). GET /api/streams/channel/:username → the channel page: { channel, language, stream, streams, managed_streams (public projection), vods, clips, aiClips, … with totals and paging }; GET …/:username/live → { channel: { username, display_name, user_id }, streams }; GET …/:username/popular → { vod, clip, vods, clips, ranges }; GET …/:username/clips-taken → { clips, total, facets, limit, offset, hasMore, sort, of, includeSelf }; GET …/:username/bio-en → { from, to: en, text } (from and text null when there is nothing to translate); GET /api/auth/user/:username → { user } (the public profile). Unknown channels are 404 { error }.

Fields

This schema has no named fields.

Examples

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

Valid: bio-en
{
  "from": "ja",
  "to": "en",
  "text": "I stream walks around Tokyo.",
  "from_name": "Japanese",
  "flag": "🇯🇵"
}
Valid: live-only
{
  "channel": {
    "username": "alice",
    "display_name": "Alice",
    "user_id": 5
  },
  "streams": []
}
Valid: user
{
  "user": {
    "id": 5,
    "username": "alice",
    "display_name": "Alice",
    "avatar_url": null,
    "bio": "",
    "role": "streamer",
    "profile_color": "#3b82f6",
    "created_at": "2025-01-02 10:00:00",
    "capabilities": []
  }
}
Rejected: not-english
{
  "from": "ja",
  "to": "fr",
  "text": "x"
}

Validate

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