π¬ Video Support for Plone#
sc-videos is a monorepo Plone add-on that brings first-class video support to your Plone 6.1+ site.
It ships two packages, a backend Python add-on (sc.videos) and a frontend Volto add-on (@simplesconsultoria/volto-videos), that are always released and installed together.
β¨ Key features#
π Video content type: a dedicated Dexterity container for external videos, with automatic metadata fetching, preview images, and categorization.
π Extensible provider system: YouTube (API + public oEmbed) and Vimeo supported out of the box; add your own with a single named utility.
π
@video-metadataREST API: paste a URL, get structured metadata (title, description, duration, thumbnail, channel, tags).π§± Two Volto blocks:
Video Player block: for Video content pages; embeds the player with an in-block URL entry form.
Video block: for any page; pick an existing Video from the site via the object browser.
π¨ Themeable player: click-to-play with preview images, CSS custom properties for easy restyling.
π Storybook coverage: interactive component demos published alongside this documentation.
π Quick start#
Install both packages in your Plone project:
Backend#
Add sc.videos to your project's policy package's project.toml :
[project]
dependencies = [
"Products.CMFPlone",
"sc.videos",
To make this package available to a Plone installation, you need to load its ZCML configuration.
If your project has a Python package with custom code, add the following line to your packageβs dependencies.zcml or configure.zcml:
<include package="sc.videos" />
Frontend#
Add the Volto add-on to your policy package's package.json:
{
"dependencies": {
"@simplesconsultoria/volto-videos": "workspace:*"
},
"addons": [
"@simplesconsultoria/volto-videos"
]
}
Installation#
Run:
make install
See π¦ Install sc-videos in a Plone project for the full step-by-step guide.
π Where to start#
Step-by-step lessons to get you up and running: install the add-on, create your first Video, and embed it in a page.
Goal-oriented recipes for common tasks: configure the YouTube API, add a new video provider, customize the player.
Explanations of the architecture, the metadata pipeline, and how blocks and widgets fit together.
Technical details: behavior fields, REST API, block schemas, widget props, CSS variables, and configuration.
π Links#
π Credits#
The development of this add-on was supported by the following entities: