---
title: "OpenVibe.Media · OpenVibe.Wiki"
canonical: "https://openvibe.wiki/w/openvibe/openvibe-media"
updated: null
---

# OpenVibe.Media · OpenVibe.Wiki

HTML: [OpenVibe.Media · OpenVibe.Wiki](https://openvibe.wiki/w/openvibe/openvibe-media)

# OpenVibe.Media

[7 sources cited](/w/openvibe/openvibe-media/sources) [4 revisions](/w/openvibe/openvibe-media/history) this text accepted 2026-10-21 Not yet reviewed by a person

**Imported, written with AI assistance.** Imported from the OpenVibe repository README and STATUS files at the cited commits, summarised with AI assistance; originally by OpenVibers. Not yet reviewed by a person.

| Repository | [github.com/OpenVibers/OpenVibe.Media](https://github.com/OpenVibers/OpenVibe.Media) |
| --- | --- |
| Domain | openvibe.media |
| Port | 4100 |
| Runtime | Node/Express, PostgreSQL, ffmpeg |
| Status | beta |

**OpenVibe.Media** is the standalone multi-tenant media service extracted from the OpenVibe.Live predecessor, at `openvibe.media` on port 4100. Its README states that it "Owns VOD ingest/recording, storage tiering (local → Backblaze B2 → Cloudflare R2), clips, generic files, the canonical object model and thumbnails, for all OpenVibe apps."

## What it does

Media records VODs from RTMP pull or RTP ingest, ingests browser chunks, finalizes with remux, probe and thumbnail, and cuts clips. It tiers storage across local, Backblaze B2 and Cloudflare R2 with copy verification and a disk guardian, and serves public paths (`/v`, `/c`, `/t`, `/f`, `/o`). It implements a canonical object model under `/api/v2` (objects, locations, variants, holds, derivatives, lifecycle, namespaces) and a media jobs queue. It serves first-party tenants (`live`, `community`, `tools`, `games`, `wiki`, `blog`, `inventory`, `media-hub`) and developer-project tenants.

It also answers a subset of Amazon's S3 API (ADR-031), so S3 tools such as the AWS CLI and rclone work against it. Each bucket is a zone of a project environment, and zones are made and deleted through [OpenVibe.Zone](/w/openvibe/openvibe-zone). Media issues and checks the `ovk_` access keys, and every object stays an ordinary Media object. The surface answers at `https://s3.openvibe.media`. That name skips Cloudflare's proxy, so one object may be larger than the 100 MB a proxied request carries; `https://s3.openvibe.network` is the same surface behind Cloudflare. A signed-in person sees their own objects, uploads and usage in the object explorer at `/me`, and thumbnails come in WebP, AVIF or JPEG at the width a page asks for.

## What it does not do yet

Pastes belong to [OpenVibe.Community](/w/openvibe/openvibe-community) "since 2026-09-22"; Media's read-only paste API is gone and `/p/:slug` redirects there. Channels and streams belong to [OpenVibe.Live](/w/openvibe/openvibe-live), identity to [OpenVibe.Network](/w/openvibe/openvibe-network), and AI analysis of recordings to [OpenVibe.AI](/w/openvibe/openvibe-ai). The song-request media queue, server-side live thumbnail grabbers and JSMPEG stdin recording are listed as "Not ported."

## How it fits the network

Media verifies [OpenVibe.Network](/w/openvibe/openvibe-network) tokens offline through JWKS, uses [OpenVibe.Live](/w/openvibe/openvibe-live)'s lineage resolve, and announces outcomes as [OpenVibe.Events](/w/openvibe/openvibe-events) events through the SDK outbox, which the README calls the only outcome announcement now that webhooks ended.

## Status

Its STATUS.json marks the stage "beta" and records it deployed with `sudo ovhost deploy media`.

## Sources

1. [OpenVibe.Media README (commit 6a3a1c7)](https://github.com/OpenVibers/OpenVibe.Media/blob/6a3a1c7b869b38a854b37df270322d49351f55a3/README.md), retrieved 2026-10-21

   Owns VOD ingest/recording, storage tiering
2. [OpenVibe.Media STATUS.json (commit 6a3a1c7)](https://github.com/OpenVibers/OpenVibe.Media/blob/6a3a1c7b869b38a854b37df270322d49351f55a3/STATUS.json), retrieved 2026-10-21

   Public at https://openvibe.media
3. [OpenVibe.Media README (commit 6a3a1c7)](https://github.com/OpenVibers/OpenVibe.Media/blob/6a3a1c7b869b38a854b37df270322d49351f55a3/README.md), retrieved 2026-10-21

   Each bucket is a zone of a project environment, and zones are managed by OpenVibe.Zone.
4. [OpenVibe.Media README (commit 6a3a1c7)](https://github.com/OpenVibers/OpenVibe.Media/blob/6a3a1c7b869b38a854b37df270322d49351f55a3/README.md), retrieved 2026-10-21

   A signed-in person sees the objects whose \`owner\_subject\` is their Network
5. [OpenVibe.Media README (commit 6a3a1c7)](https://github.com/OpenVibers/OpenVibe.Media/blob/6a3a1c7b869b38a854b37df270322d49351f55a3/README.md), retrieved 2026-10-21

   the width snaps up to 64, 96, 160, 320, 480 or 640
6. [OpenVibe.Media README (commit 6a3a1c7)](https://github.com/OpenVibers/OpenVibe.Media/blob/6a3a1c7b869b38a854b37df270322d49351f55a3/README.md), retrieved 2026-10-21

   Media answers a subset of S3 at \`https://s3.openvibe.media\`
7. [OpenVibe.Media README (commit 6a3a1c7)](https://github.com/OpenVibers/OpenVibe.Media/blob/6a3a1c7b869b38a854b37df270322d49351f55a3/README.md), retrieved 2026-10-21

   DNS-only since 2026-10-21, so an object may be larger than Cloudflare's 100 MB

[Inspect these sources](/w/openvibe/openvibe-media/sources) (retrieval times, where each was first cited, what changed between revisions)

## What links here

- [OpenRestream](/w/openvibe/openrestream)
- [OpenVibe](/w/openvibe/openvibe)
- [OpenVibe.AI](/w/openvibe/openvibe-ai)
- [OpenVibe.Blog](/w/openvibe/openvibe-blog)
- [OpenVibe.Bot](/w/openvibe/openvibe-bot)
- [OpenVibe.Chat](/w/openvibe/openvibe-chat)
- [OpenVibe.Community](/w/openvibe/openvibe-community)
- [OpenVibe.Games](/w/openvibe/openvibe-games)
- [OpenVibe.Inventory](/w/openvibe/openvibe-inventory)
- [OpenVibe.Live](/w/openvibe/openvibe-live)
- [OpenVibe.MediaHub](/w/openvibe/openvibe-mediahub)
- [OpenVibe.Network](/w/openvibe/openvibe-network)
- [OpenVibe.Publishing](/w/openvibe/openvibe-publishing)
- [OpenVibe.Services](/w/openvibe/openvibe-services)
- [OpenVibe.Tools](/w/openvibe/openvibe-tools)
- [OpenVibe.Wiki](/w/openvibe/openvibe-wiki)
- [OpenVibe.Zone](/w/openvibe/openvibe-zone)

## Discussion

No comments yet

Start the discussion about this page.

[Sign in to comment](/auth/login?next=%2Fw%2Fopenvibe%2Fopenvibe-media)

[Sign in](/auth/login?next=%2Fw%2Fopenvibe%2Fopenvibe-media) to comment.
