MediahubVideoPublishedPayload mediahub.video.published@1
Generated at from
openvibe-contracts v0.221.0 and
openvibe-sdk v0.65.0.
- Version
- 1.0.0
- Owner
- media-hub
- Visibility
- first-party
- Status
- active
- Compatibility
- backward
- Schema
https://openvibe.network/contracts/events/payloads/mediahub.video.published.v1.json
mediahub.video.published v1 (OpenVibe.MediaHub server/video/uploads.js): a video a person uploaded or recorded on OpenVibe.Video is public and ready for the first time, so it has a listed watch page. Written to MediaHub's outbox in the transaction that makes it so; making it private and public again does not repeat it. OpenVibe.Quest credits the owner's "Publish a video" quest from it. Envelope: source media-hub (namespace mediahub), subject { type: video, id: <upload id> }, actor the owner, visibility public.
Fields
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
upload | string | yes | The upload id. Also the envelope subject id. |
|
owner | identity.subject-ref | yes | The person who uploaded it. | |
title | string | yes |
| |
url | string | yes | Its watch page: https://openvibe.video/u/<upload id>. |
|
published_at | string | yes |
|
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: first
{
"upload": "vup_01M516F1WX5NN6C0EMW2V0G8Y9",
"owner": {
"type": "user",
"id": "usr_01J8Z3V9Q6N1X2Y3Z4A5B6C7D8"
},
"title": "A walk on the coast",
"url": "https://openvibe.video/u/vup_01M516F1WX5NN6C0EMW2V0G8Y9",
"published_at": "2026-10-16T03:00:00.000Z"
}Rejected: bad-upload-id
{
"upload": "vid_123",
"owner": {
"type": "user",
"id": "usr_01J8Z3V9Q6N1X2Y3Z4A5B6C7D8"
},
"title": "A walk on the coast",
"url": "https://openvibe.video/u/vid_123",
"published_at": "2026-10-16T03:00:00.000Z"
}Rejected: no-owner
{
"upload": "vup_01M516F1WX5NN6C0EMW2V0G8Y9",
"title": "A walk on the coast",
"url": "https://openvibe.video/u/vup_01M516F1WX5NN6C0EMW2V0G8Y9",
"published_at": "2026-10-16T03:00:00.000Z"
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('mediahub.video.published@1', value); // { valid, errors: [{ path, message }] }