## Overview

The Video widget enables output of a previously selected video uploaded to cplace. It provides a simple way to embed video and image content directly on cplace pages using the browser's native HTML5 video player, providing standard controls (play, pause, volume, fullscreen) without requiring external video hosting services. The widget automatically detects whether the uploaded file is a video or image and renders it appropriately with configurable dimensions and optional frame styling.

## Use Cases

**Educational Content**: Display instructional or training videos directly on project pages or documentation pages for team learning and knowledge transfer.

**Presentations & Demos**: Embed product demos, feature walkthroughs, or presentation recordings to showcase functionality without leaving cplace.

**Documentation**: Add visual content (videos or images) to enhance written documentation and make processes clearer.

**Media Galleries**: Create visual portfolios or media collections on pages to organize and display multimedia content.

**Team Communication**: Share recorded meetings, status updates, or announcements in video format for asynchronous collaboration.

**Marketing Materials**: Display promotional videos, case studies, or customer testimonials within cplace pages.

### When to Use This Widget

- When you need to embed video or image content directly on a cplace page without external hosting
- When you want browser-native video controls without additional configuration
- When you need responsive video display that adapts to container width
- When you want a simple, no-configuration-needed media display solution
- When you need to support offline scenarios where external video hosting isn't available

## Design Considerations

### Why This Widget Exists

The Video Widget leverages native HTML5 capabilities for better performance and privacy compared to external video services. It maintains consistent styling with cplace's widget framework and supports offline scenarios where external video hosting like YouTube or Vimeo isn't available or desirable.

### Limitations

The widget has intentional constraints focused on simplicity:

- No advanced video player features (chapters, subtitles, playback speed controls)
- Relies on browser's native video codec support, which varies by browser
- Files must be uploaded to cplace (no direct URL embedding to external sources)
- Width is always responsive (100% of container), cannot set fixed width
- Height is fixed in pixels rather than responsive

### Browser Compatibility

The widget requires HTML5 video support in the browser. For unsupported browsers, it displays a fallback message: "Your browser does not support the video tag."

## Alternatives

Consider alternatives when this widget doesn't fit your needs:

**For YouTube/Vimeo videos**: Use an iframe widget or embed widget instead of uploading the file to cplace.

**For complex video interactions**: Custom development may be needed if you require advanced features like chaptered navigation, multi-language subtitles, or custom player controls.

**For streaming large video files**: Consider external hosting platforms optimized for streaming to avoid storage and bandwidth constraints.

**For live video**: Requires a different streaming solution; this widget only supports uploaded files.

## Related Patterns

**Documentation Enhancement**: Combine the Video Widget with text widgets and structured content to create rich, multimedia documentation pages.

**Media Collections**: Use multiple Video Widgets within a layout to create galleries or comparison views.

**Training Materials**: Pair with form widgets or interactive elements to create training modules with embedded video demonstrations.
