Skip to main content
View as Markdown

Overview - Content Moderation

Moderation API​

Moderation lets administrators and AI engines review content before it becomes visible to end users. The platform provides two complementary systems: a manual moderation queue (community flagging, moderator approve/reject) and AI-powered moderation via REACH (automated policy evaluation using LLMs and computer vision). The two work together — AI screens content at scale against configurable policies, while community flagging catches context-specific issues that automated systems miss. Both systems share the same entry-level moderationStatus field that controls playback visibility.

Base URL: $KALTURA_SERVICE_URL (default https://www.kaltura.com/api_v3) Auth: KS (admin session for approve/reject; user or widget session for flagging) Format: All requests use format=1 for JSON responses

When to Use​

  • Content review before publishing — Hold uploaded entries for moderator approval before they become playable
  • User-reported content — Let viewers flag inappropriate content via the player plugin
  • Automated AI content screening — Screen video transcripts and frames against moderation policies using REACH
  • Channel-level content gating — Require approval before content appears in specific categories/channels
  • Compliance workflows — Enforce corporate content policies (hate speech, PII, profanity) with configurable rules

Prerequisites​

  • An ADMIN KS (type=2) with disableentitlement privilege for approve, reject, and moderation queue operations (see Session Guide)
  • The moderation feature enabled on your account (moderateContent setting) for entry-level moderation workflows
  • For AI moderation: the REACH plugin enabled with a moderation catalog item (serviceFeature=15) provisioned on your account

Architecture​

┌─────────────────────────────────────────────────────────────────┐
│ ENTRY MODERATION (Manual / Community) │
│ │
│ baseEntry.flag ──► FLAGGED_FOR_REVIEW (5) │
│ baseEntry.approve ──► APPROVED (2) │
│ baseEntry.reject ──► REJECTED (3) │
│ baseEntry.listFlags ──► view pending flags │
└─────────────────────────────────────────────────────────────────┘
▲ │
│ Manual or webhook bridge │ entry.moderationStatus
│ ▼
┌─────────────────────────────────────────────────────────────────┐
│ AI MODERATION (REACH + KAI) │
│ │
│ entryVendorTask.add (serviceFeature=15) ──► AI analysis │
│ Output: moderationOutputJson { violations[], summary } │
│ Auto-action: categoryEntry.activate / categoryEntry.reject │
└─────────────────────────────────────────────────────────────────┘

The AI moderation engine produces a moderationOutputJson report on the vendor task but does not automatically update entry.moderationStatus. To bridge AI results to entry-level moderation, either review the output manually and call baseEntry.approve/reject, or configure a webhook that reads the task result and triggers the appropriate action.