📄 Video content type#
The Video content type is a Dexterity container for external videos hosted on platforms like YouTube and Vimeo.
Factory: sc.videos.content.video.Video
Schema: sc.videos.content.video.IVideo
Permission: sc.videos.video.add (Add Video)
🏷️ Type definition#
Property |
Value |
|---|---|
Portal type |
|
Meta type |
|
Global allow |
|
Allowed child types |
|
Filter content types |
|
Discussion enabled |
|
Versioning |
|
Default view |
|
🧩 Applied behaviors#
The Video content type includes the following behaviors:
Behavior |
Description |
|---|---|
|
Title and description fields. |
|
Video URL, metadata, and provider fields. See 📋 IRemoteVideo behavior. |
|
Automatically generate the content ID from the title. |
|
Volto blocks support for the content area. |
|
Preview image field (autopopulated from video thumbnail). |
|
Subject/tags and related items. |
|
Navigation title override. |
|
Content versioning. |
|
Exclude from navigation option. |
|
Short name (URL slug) editing. |
📐 Default blocks layout#
When a new Video is created, it starts with the following blocks:
Title block: displays the content title.
Description block: displays the content description.
Video Player block: shows the in-block edit form for entering a video URL; switches to the embedded player after metadata is fetched.
Slate block: an empty rich text block for additional content.
This layout is configured in config/blocks.ts:
config.blocks.initialBlocks.Video = [
{ '@type': 'title' },
{ '@type': 'description' },
{ '@type': 'playerBlock', autoPlay: false, size: 'l', theme: 'grey', align: 'wider' },
{ '@type': 'slate' },
];
🔐 Permissions#
Permission |
Title |
Default roles |
|---|---|---|
|
Add Video |
Manager, Site Administrator, Contributor |
📇 Catalog metadata#
The Video content type exposes the following columns and indexes in the portal catalog:
Column |
Source |
Description |
|---|---|---|
|
|
The external video URL. Available in search results without fetching the full object. |
|
|
Video duration in seconds. Also available as a |
|
|
|
These columns are used by blocks to display video information from catalog search results. See ⚙️ Configuration for the full list of indexes, querystring fields, and the duration range vocabulary.
📺 VideoSeries content type#
The VideoSeries content type is a container for organizing Episodes into a series.
Property |
Value |
|---|---|
Portal type |
|
Title |
Series |
Global allow |
|
Filter content types |
|
Add permission |
|
VideoSeries is not creatable by default. Enable it via the enable_series toggle in the ⚙️ Video Settings control panel.
When a VideoSeries is created, a subscriber grants the Episode add permission locally, so Episodes can only be created inside a VideoSeries.
🎬 Episode content type#
The Episode content type represents a single video episode within a VideoSeries.
Property |
Value |
|---|---|
Portal type |
|
Global allow |
|
Filter content types |
|
Allowed child types |
|
Add permission |
|
Episode applies the IRemoteVideo behavior, so it inherits all video fields (URL, duration, metadata) and the automatic metadata fetching pipeline.
It also has a start field (Datetime) for the episode release date.
See also
📋 IRemoteVideo behavior. The
IRemoteVideobehavior and its fields.🧱 Volto blocks. The Video Player and Video blocks.
🏗️ Architecture overview. How the content type fits into the overall system.
⚙️ Configuration. Permissions, registry settings, and catalog indexes.