🎬 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-metadata REST 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#

πŸŽ“ Tutorials

Step-by-step lessons to get you up and running: install the add-on, create your first Video, and embed it in a page.

πŸŽ“ Tutorials
πŸ“– How-to guides

Goal-oriented recipes for common tasks: configure the YouTube API, add a new video provider, customize the player.

πŸ“– How-to guides
πŸ’‘ Concepts

Explanations of the architecture, the metadata pipeline, and how blocks and widgets fit together.

πŸ’‘ Concepts
πŸ“‹ Reference

Technical details: behavior fields, REST API, block schemas, widget props, CSS variables, and configuration.

πŸ“‹ Reference

πŸ™ Credits#

The development of this add-on was supported by the following entities: