video_preview
The live video preview in Odoo's product media dialog is video_preview: a field widget that trusts a server-computed embed and simply frames it 16:9. All the intelligence, and all the platform support, lives server side.
August 26, 2026Updated August 26, 20265 min read
| Technical name | video_preview |
|---|---|
| Field types | html (core binds it to the computed embed_code field) |
| Views | form |
| Module | website_sale (eCommerce) |
| Used in core | 1 occurrence: the product.image form, the media dialog behind product images |
| Versions | Odoo 20.0, Odoo 19.0, Odoo 18.0, Odoo 17.0, Odoo 16.0 |
| No-code setup | No. It ships in the product media dialog; Studio cannot place or configure it |
| Alternatives | x2_many_media_viewer, image, image_url |
What the video preview widget does
What this means for your team
Working examples
The platform regex table, and a thumbnail side effect
Version compatibility
| Version | Status | Notes |
|---|---|---|
| Odoo 20.0 | In development | Not released. The development branch file is byte-identical to 19; see below. |
| Odoo 19.0 | Verified | Verified against the shipped source; embed helper lives in html_editor. |
| Odoo 18.0 | Verified | Same widget, minor code style differences only. |
| Odoo 17.0 | Verified | Same widget, minor code style differences only. |
| Odoo 16.0 | Verified | Same widget in the older class-property style. |
Upgrade note. Nothing to do for the widget across any supported version. The embed helper moved modules over time, ending up in html_editor in 19, which only matters to custom code importing it.
What is changing in Odoo 20
Common problems and fixes
| Symptom | Cause and fix |
|---|---|
| Please enter a valid Video URL shows for a working link | The URL matches none of the supported platform patterns, so embed_code computed empty. Use a YouTube, Vimeo, Dailymotion, Instagram or Facebook URL in a standard share format. |
| A self-hosted MP4 never previews | Direct video files are not in the platform regex table; only recognized platforms embed. Host the clip on a supported platform, or build a custom embed compute. |
| Preview is blank but the site shows the video | Browser extensions or corporate policies can block third-party iframes in the backend. Test in a clean browser profile; the widget renders whatever iframe the server computed. |
| The product image changed after pasting a video link | The video_url onchange fills an empty image slot with the video's thumbnail. Expected behavior; upload your own image to override it. |
| Reusing the widget on a custom field shows nothing | The widget only prints the field's HTML value; a char URL field has no embed markup. Compute embed HTML server side, ideally with Odoo's get_video_embed_code helper. |
Video preview widget vs the alternatives
| Widget | Best for | Key difference |
|---|---|---|
video_preview | Live embed preview of a product video URL at data-entry time | Pure pass-through of server-computed iframe HTML in a 16:9 frame; never editable |
| x2_many_media_viewer | Managing the whole media gallery, images and videos together | An x2many widget with a media dialog that creates the records this widget previews |
| image | The product's still images in the same dialog | Binary image field with upload, zoom and the WebP pipeline |
| image_url | Displaying an image hosted at a URL | Renders an img tag from a char URL, no embed computation involved |
Frequently asked questions
Which video platforms does the preview support?+
Why does my valid URL say Please enter a valid Video URL?+
Can customers see this widget on the website?+
Can I use video_preview for videos on my own model?+
Why is the preview not editable?+
Does pasting a video really set the product image?+
Selling more with video on your Odoo store?
Product videos, rich media galleries and fast-loading pages pull in different directions unless someone tunes the whole stack. We build Odoo eCommerce catalogs where media helps conversion instead of hurting page speed.
Upgrade your product pages