✅
Demo to preview the plugin:
✅
✅
Introduction
The Professional Ziggeo Player/Recorder Plugin integrates the Ziggeo JavaScript SDK directly into your Bubble application, giving you access to robust and professional-grade video recording, playback, and management tools.
Key Features
- Full Ziggeo SDK Integration – Harness the complete Ziggeo video recording and playback SDK directly within your Bubble app.
- Comprehensive Parameters – Configure nearly all Ziggeo parameters for advanced customization and control.
- Rich Workflow Actions – Record, upload, play, or manipulate videos with dedicated workflow triggers.
- Real-Time Event Handling – Respond to key events such as playback start, pause, finish, upload complete, or recording errors.
- Customizable Player & Recorder – Adjust player appearance, permissions, recording length, and more.
- Cloud-Ready Video Management – Securely store and manage your video files through Ziggeo’s cloud infrastructure.
- No-Code Simplicity – Empower your app with video functionality without needing custom JavaScript.
- Ongoing Development – Zeroqode actively maintains and enhances the plugin for performance and compatibility.
Prerequisite(s)
Before you begin, make sure you have:
- A Ziggeo Account — Sign up https://ziggeo.com/signup
- A working Bubble application with the plugin installed
- Enabled ID Attributes in your Bubble app settings (for targeting and workflow actions)
How to Setup
Step 1. Install the Plugin
- Open your Bubble Editor.
- From the left sidebar, go to the Plugins tab.
- Click Add Plugins.
- Use the search bar to type Professional Ziggeo Player/Recorder.
- Click Install (or Buy if it’s a paid plan).
- Once installed, you’ll find it under Installed Plugins.
Step 2. Add Your Ziggeo API Credentials
- Navigate to Plugins → Professional Ziggeo Player/Recorder settings in your Bubble editor.
- Enter your credentials obtained from the Ziggeo dashboard:
- App Token
- This connects your Bubble app to Ziggeo’s API environment and authenticates all video requests.
Step 3. Add Plugin Elements to Your Page
- Go to the Design Tab in your Bubble editor.
- In the Visual Elements panel, search for:
- Ziggeo Player (for video playback)
- Ziggeo Recorder (for recording new videos)
- Drag the desired element onto your page.
- You can include both for record-and-play workflows.
Step 4. Configure Player and Recorder Properties
Each element includes several properties to control behavior and appearance.
Ziggeo Recorder – Key Parameters:
Title | Description | Type |
Width | Width in Pixels (or percentage) | Text |
Height | Height in Pixels (or percentage) | Text |
Theme | Choose a theme Available options: modern, cube, minimalist, space, default, theatre, elevate | Dropdown |
Themecolor | Choose a theme color Available options: red, green, blue | Dropdown |
Title | Video title (optional) | Text (optional) |
Description | Video description (optional) | Text (optional) |
Autorecord | (try to) start the recording as soon as the embedding is shown | Checkbox (yes/no) |
Countdown | Countdown before recording starts (default is 3 seconds, 0 to disable) | Number |
Display-timer | Show timer to user | Checkbox (yes/no) |
Early-rerecord | Early re-recording | Checkbox (yes/no) |
Faceoutline | Shows outline of face in recorder | Checkbox (yes/no) |
Gallerysnapshots | Maximum number of snapshots shown | Number |
Localplayback | Show the preview of the video after recording the same | Checkbox (yes/no) |
Picksnapshots | Allow selection of snapshots | Checkbox (yes/no) |
Skipinitial | Disable initial screen of recorder | Checkbox (yes/no) |
Skipinitialonrerecord | Disable initial screen of recorder when re-recording | Checkbox (yes/no) |
Snapshotmax | “snapshotmax” refers to the maximum number of snapshots that can be stored or retained by a software plugin or API. | Number |
Picksnapshotmandatory | User has to pick snapshot | Checkbox (yes/no) |
Auto-crop | Automatically crop videos | Checkbox (yes/no) |
Auto-pad | Automatically pad videos | Checkbox (yes/no) |
Effect-profile | An “effect-profile” in a software plugin or API refers to a set of parameters defining the characteristics and behavior of a specific audio or visual effect applied to media content. | Text (optional) |
Enforce-duration | Reject videos that are too long instead of auto-cropping them | Checkbox (yes/no) |
Framerate | Set the number of frames that should be captured in a single second. | Number |
Key | Associate key with newly created video | Text (optional) |
Meta-profile | Specify key or token for meta profile (optional) | Text (optional) |
Noaudio | Disable recording any sound | Checkbox (yes/no) |
Preview-effect-profile | If applied to recorder, it specifies the effect profile that should be played back in preview after recording | Text (optional) |
Timelimit | Maximum video length in seconds | Number |
Timeminlimit | Minimum video length in seconds | Number |
Transcript-language | Select language for audio transcription. | Text (optional) |
Video-profile | A “video-profile” in a software plugin or API refers to a set of parameters or settings that define the visual characteristics and quality of a video stream or recording. | Text (optional) |
Allowcancel | Allows user to cancel the upload of a video | Checkbox (yes/no) |
Allowcustomupload | Allow uploading of any files | Checkbox (yes/no) |
Allowmultistreams | Allow the user to include multiple streams in one video, e.g. screen recording and camera | Checkbox (yes/no) |
Allowrecord | Allow recording to be made with your customer’s web cam through the embedding | Checkbox (yes/no) |
Allowscreen | Allow screen recording instead of via camera (experimental, Firefox, Chrome and Opera only) | Checkbox (yes/no) |
Allowtexttrackupload | Allow users to upload subtitles | Checkbox (yes/no) |
Allowupload | Allow uploading of custom user videos through your embedding | Checkbox (yes/no) |
Audio-test-mandatory | Test microphone before recording | Checkbox (yes/no) |
Camerafacefront | Should the front face camera be used | Checkbox (yes/no) |
Createthumbnails | Creates thumbnails of recorded/uploaded video | Checkbox (yes/no) |
Delete-old-streams | Delete old streams after re-recording | Checkbox (yes/no) |
Filesizelimit | Limit size of uploaded videos (in bytes – no limit by default) | Number (optional) |
Flashincognitosupport | Allow access to camera in incognito / private sessions | Checkbox (yes/no) |
Forceflash | Forces flash to be used for recording and playback | Checkbox (yes/no) |
Noflash | Force embedding not to use flash | Checkbox (yes/no) |
Onlyaudio | Only record audio, no video. | Checkbox (yes/no) |
Orientation | Force particular device orientation on mobile (‘portrait’ or ‘landscape’) Available options: portrait, landscape | Dropdown (optional) |
Pausable | Allow user to pause the recording | Checkbox (yes/no) |
Recordings | Limit number of recordings | Number (optional) |
Showaddstreambutton | Enable the end-user to select multiple streams in one video, e.g. screen recording and camera | Checkbox (yes/no) |
Simulate | Simulate recording experience without actually recording it | Checkbox (yes/no) |
Snapshotfrommobilecapture | Let user pick a snapshot from mobile video capture | Checkbox (yes/no) |
Snapshotfromuploader | Let user pick a snapshot from uploaded video files | Checkbox (yes/no) |
Webrtconmobile | Set WebRTC to be used on mobile device instead of native camera app | Checkbox (yes/no) |
Webrtcstreaming | Set WebRTC Streaming on your embedding | Checkbox (yes/no) |
Recordingwidth | This is the resolution of the recording itself. Lower resolutions mean faster uploads. Recommended: set to maximum recording resolution indicated in your Video Profiles set up (e.g. HD Video Profiles set to HD). | Number |
Recordingheight | This is the resolution of the recording itself. Lower resolutions mean faster uploads. Recommended: set to maximum recording resolution indicated in your Video Profiles set up (e.g. HD Video Profiles set to HD). | Number |
Ziggeo Player – Key Parameters:
Title | Description | Type |
Video | The Video token that should be played | Text |
Width | The width in pixels of the embedding (or percentage) | Text |
Height | The height in pixels of the embedding (or percentage) | Text |
Theme | Choose a theme Available options: modern, cube, minimalist, space, default, theatre, elevate | Dropdown |
Themecolor | Choose a theme color Available options: red, green, blue | Dropdown |
Parameters | ||
Audio-transcription-as-subtitles | Show audio transcription as subtitles (if available) | Checkbox (yes/no) |
Hideoninactivity | Hide controls on inactivity | Checkbox (yes/no) |
Hidevolumebar | Hides volume bar | Checkbox (yes/no) |
Multistreamdraggable | Allow dragging of stream-in-stream | Checkbox (yes/no) |
Nofullscreen | Disable fullscreen capabilities in video player | Checkbox (yes/no) |
Popup | Player pops up after clicking play | Checkbox (yes/no) |
Popup-stretch | Allow the popup player to stretch and fill out the full width of the area that it has been given. | Checkbox (yes/no) |
Showduration | Shows duration of the video before the playback starts | Checkbox (yes/no) |
Showsettings | Allow user to change player settings, like playback speed | Checkbox (yes/no) |
Stretch | Allow the player to stretch and fill out the full width of the area that it has been given. | Checkbox (yes/no) |
Stretch a video of an aspect ratio different than the player by height | Stretch a video of an aspect ratio different than the player by height | Checkbox (yes/no) |
Stretchwidth | Stretch a video of an aspect ratio different than the player by width | Checkbox (yes/no) |
Visualeffectvisible | Sets the visual effects on or off | Checkbox (yes/no) |
Fullscreenmandatory | Allow fullscreen on devices where custom controls are not supported | Checkbox (yes/no) |
Effect-profile | An “effect-profile” in a software plugin or API refers to a set of parameters that define the characteristics and behavior of a specific effect or filter applied to audio, video, or other media content. | Text (optional) |
Meta-profile | Specify key or token for meta profile | Text (optional) |
Stream | Lets you specify the exact stream to run in your player – or a particular video effect. | Text (optional) |
Video-profile | Specify key or token for video profile (optional) | Text (optional) |
Airplay | Allow Airplay | Checkbox (yes/no) |
Allowpip | “allowpip” is a configuration setting in Python that enables the use of the pip package manager within a virtual environment. | Checkbox (yes/no) |
Autoplay | Automatically start video playback | Checkbox (yes/no) |
Chromecast | Allow Chromecast | Checkbox (yes/no) |
Disablepause | Disables pausing in the player | Checkbox (yes/no) |
Disableseeking | Disables seeking in the player | Checkbox (yes/no) |
Lazy-application | Allow an application to be defined after the embeddings are initialized | Checkbox (yes/no) |
Loop | Loop video playback indefinitely | Checkbox (yes/no) |
Pauseonplay | Pause playback when another video is being played back | Checkbox (yes/no) |
Playfullscreenonmobile | Automatically play fullscreen on mobile devices | Checkbox (yes/no) |
Playonclick | Play video when clicking anywhere on the player | Checkbox (yes/no) |
Playwhenvisible | Automatically play video once it becomes visible | Checkbox (yes/no) |
Preload | Preload media data | Checkbox (yes/no) |
Preroll | Should ad be prerolled? | Checkbox (yes/no) |
Preventinteraction | Prevent user interaction after some time in the player | Checkbox (yes/no) |
Volume | You can use this to set the volume of your video when playback starts | Number |
Title | Video title (optional) | Text (optional) |
Description | Video description (optional) | Text (optional) |
Recordingwidth | Resolution width of the recording.This is the resolution of the recording itself. Lower resolutions mean faster uploads. Recommended: set to maximum recording resolution indicated in your Video Profiles set up (e.g. HD Video Profiles set to HD). | Number |
Recordingheight | This is the resolution of the recording itself. Lower resolutions mean faster uploads. Recommended: set to maximum recording resolution indicated in your Video Profiles set up (e.g. HD Video Profiles set to HD). | Number |
Tip: Use dynamic expressions for video tokens (e.g., from your database) to render videos dynamically per user or session.
Step 5. Using Workflows
The Professional Ziggeo Player/Recorder Plugin allows you to control video actions through Bubble workflows. You can easily set up interactive buttons to start, stop, pause, or cancel recordings — as shown in the demonstration below
Example Workflow: Start Recording on Button Click
- Add a Button (e.g., “Start Recording”).
- Go to the Workflow tab.
- Create a new event → When Button is clicked.
- Add an Action → Element Actions → Start Ziggeo Recorder.
- Choose your Ziggeo Recorder element.
- You can then add more buttons for other actions
- 🔵 Pause/Resume → Toggles between pausing and resuming recording.
- 🔴 Stop Recording → Ends the current recording session.
- 🟠 Cancel Recording → Discards the current recording.
Step 6. Responding to Events
These events allow you to track playback progress, monitor recording stages, and manage upload or permission states in real time.
Player Events
Use these events to control or respond to actions taken in the Ziggeo Player:
- A Video Is Loaded – Triggered when the player finishes loading a video.
- A Video Has Started Playing – Fires when playback begins.
- A Video Has Been Paused – Fires when playback is paused.
- A Video Has Been Watched to the End – Fires when playback completes.
- A Video Has Been Seeked – Detects when the user jumps to a new timestamp.
- The Video of the Current Ziggeo Player Has Ended – Useful for post-view workflows like surveys or redirects.
Recorder Events
Recorder events help you handle each stage of the recording and upload cycle:
- Recording Process Has Started – The recording has begun.
- Recording Stopped – The recording session has ended.
- A Video Is Uploading – Upload to Ziggeo Cloud is in progress.
- Processing Completed – Video processing is finished.
- A Video Has Been Uploaded / Recorded (But Not Processed) – File upload completed but still awaiting processing.
- A Video Is Uploaded and Verified – Upload verified successfully.
- A Recorded Video Is Discarded and Is Being Re-Recorded – User chose to re-record.
- Access to Camera or Microphone Is Not Granted – Permission denied.
- No Camera Has Been Detected / No Microphone Has Been Detected – Hardware not available.
- Someone Skipped Choosing the Poster Image – Poster image step skipped.
- Recorder Loaded – Recorder fully initialized and ready.
Step 7. Preview and test
Once your events and workflows are configured:
- Click Preview in your Bubble editor.
- Test both recording and playback actions.
- Allow camera and microphone permissions in your browser.
- Verify workflow triggers such as Start Recording, Pause, Stop, work correctly.
Plugin Element - Ziggeo Player
Fields
Title | Description | Type |
Video | Video token to play | text |
Width | Width in px or % | text |
Height | Height in px or % | text |
Theme | Player theme | dropdown |
Themecolor | Theme color | dropdown |
Title | Optional video title | text (optional) |
Description | Optional video description | text (optional) |
Behavior & Control Properties
Title | Description | Type |
Autoplay | Auto-start video | checkbox |
Loop | Loop playback | checkbox |
Playonclick | Play on any click | checkbox |
Playwhenvisible | Play when visible in viewport | checkbox |
Preload | Preload media | checkbox |
Hideoninactivity | Hide controls when inactive | checkbox |
Hidevolumebar | Hide volume bar | checkbox |
Disableseeking | Disable seeking | checkbox |
Disablepause | Disable pausing | checkbox |
Pauseonplay | Pause other players when this one plays | checkbox |
Popup / Popup-stretch | Popup behavior | checkbox |
Stretch | Stretch to container | checkbox |
Stretchwidth | Stretch width | checkbox |
Stretch…by height | Stretch by height | checkbox |
Airplay | Enable AirPlay | checkbox |
Chromecast | Enable Chromecast | checkbox |
Allowpip | Allow Picture-in-Picture | checkbox |
Preroll | Show preroll ads | checkbox |
Preventinteraction | Prevent player interaction after time | checkbox |
Showsettings | Show settings panel | checkbox |
Showduration | Show duration preview | checkbox |
Visualeffectvisible | Visual effect toggle | checkbox |
Effect-profile | Ziggeo effect profile | text |
Video-profile | Video profile | text |
Meta-profile | Metadata profile | text |
Stream | Specific stream or effect | text |
Lazy-application | Load Ziggeo app after init | checkbox |
Recordingwidth / Recordingheight | Recording resolution (rare for Player) | number |
Volume | Initial volume (0–1) | number |
Element Actions
Title | Description | Input |
Play | Start playback | — |
Pause Playback | Pause video | — |
Seek | Jump to time | Seconds (number) |
Get Current Position | Save current time to state | — |
ToggleFullscreen | Enter/exit fullscreen | — |
ToggleSubtitles | Show/hide subtitles | — |
Toggle Settings | Show/hide settings panel | — |
Set Volume | Set volume 0–1 | Amount (0–1) |
Set Key | Set Ziggeo key/value | Key, Value |
Reset | Reset video element | — |
Destroy Embedding | Remove player instance | — |
Exposed State
State | Description | Type |
CurrentPosition | Returned after calling Get Current Position | number |
Element Events
Title | Description |
any video has been watched to the end | Fires when ANY video ends |
a video is loaded | Fires when video loads |
a video has been paused | Fires when video is paused |
a video has started playing | Fires when playback begins |
a video has been seeked | Fires when seeking occurs |
The video of the current Ziggeo Player has ended | Fires when THIS player’s video ends |
Plugin Element - Ziggeo Recorder
Fields
Title | Description | Type |
Width / Height | Dimensions | text |
Theme / Themecolor | Recorder theme | dropdown |
Title / Description | Optional labels | text |
Recording Properties
Title | Description | Type |
Autorecord | Start recording on load | checkbox |
Countdown | Countdown before recording | number |
Display-timer | Show timer | checkbox |
Timelimit | Max duration | number |
Timeminlimit | Minimum duration | number |
Enforce-duration | Reject if too long | checkbox |
Framerate | FPS | number |
Onlyaudio | Audio-only mode | checkbox |
Pausable | Allow pause | checkbox |
Recordings | Limit number of re-records | number |
Early-rerecord | Allow early re-record | checkbox |
Localplayback | Show preview | checkbox |
Skipinitial / Skipinitialonrerecord | Skip initial screens | checkbox |
Upload & Media
Title | Description | Type |
Allowupload | Allow video upload | checkbox |
Allowcustomupload | Upload ANY file | checkbox |
Allowrecord | Allow webcam recording | checkbox |
Allowscreen | Screen recording | checkbox |
Allowmultistreams | Multi-stream capture | checkbox |
Showaddstreambutton | Show add-stream button | checkbox |
Allowtexttrackupload | Upload subtitles | checkbox |
Filesizelimit | Max size (bytes) | number |
Createthumbnails | Generate thumbnails | checkbox |
Delete-old-streams | Delete previous streams | checkbox |
Snapshots & Effects
Title | Description | Type |
Gallerysnapshots | Max snapshots to show | number |
Snapshotmax | Max number of saved snapshots | number |
Picksnapshots | Allow snapshot selection | checkbox |
Picksnapshotmandatory | Require snapshot selection | checkbox |
Snapshotfrommobilecapture | Allow from mobile capture | checkbox |
Snapshotfromuploader | Allow from uploader | checkbox |
Auto-crop / Auto-pad | Auto adjustments | checkbox |
Effect-profile | Effect profile | text |
Preview-effect-profile | Effect for preview | text |
Advanced
Title | Description | Type |
Transcript-language | Transcription language | text |
Video-profile / Meta-profile / Key | Ziggeo profile tokens | text |
Webrtconmobile | Use WebRTC on mobile | checkbox |
Webrtcstreaming | Live streaming mode | checkbox |
Flashincognitosupport / Forceflash / Noflash | Flash behavior | checkbox |
Simulate | Simulated recorder (no save) | checkbox |
Camerafacefront | Use front camera | checkbox |
Recordingwidth / Recordingheight | Capture resolution | number |
Noaudio | Disable mic | checkbox |
Audio-test-mandatory | Force mic test | checkbox |
Element Actions
Action | Description | Input |
Start Recording | Begin recording | — |
Stop Recording | Stop recording | — |
Pause Recording | Pause recording | — |
Resume | Resume recording | — |
Trigger Rerecord | Discard & re-record | — |
Cancel | Cancel upload | — |
Reset | Reset recorder | — |
Destroy | Remove recorder instance | — |
ToggleFullscreen | Enter/exit fullscreen | — |
Clear the Video ID From Recorder | Clear token state | — |
Exposed State
State | Description | Type |
Token | The Ziggeo video token after recording/upload | text |
Element Events
Title | Description |
Someone skipped choosing the poster image | Poster selection skipped |
Recording process has started | Recording began |
A recorded video is discarded and is being re-recorded | Re-record triggered |
A video is uploading | Upload in progress |
Processing completed | Ziggeo processing complete |
A video has been uploaded / recorded (but not processed) | Initial upload done |
Video is uploaded and verified | Verified by Ziggeo |
Access to camera or microphone is not granted | Permission denied |
No camera has been detected | No camera hardware |
No microphone has been detected | No microphone hardware |
Recording Stopped | Recording ended |
Loaded | Recorder initialized |
Changelogs
Update 02.09.25 - Version 1.18.0
- Bubble Plugin Page Update (Description).
Update 18.07.25 - Version 1.17.0
- Bubble Plugin Page Update (Logo).
Update 31.05.25 - Version 1.16.0
- Minor update (Marketing update).
Update 31.05.25 - Version 1.15.0
- Minor update (Marketing update).
Update 17.02.25 - Version 1.14.0
- Acquired by Zeroqode.
Update 26.08.24 - Version 1.13.0
- Added Stop recording action. Corrected namings.
Update 23.08.24 - Version 1.12.0
- Updated Description.
Update 12.10.23 - Version 1.11.4
- Updated Description.
Update 09.10.23 - Version 1.11.3
- New Details.
Update 09.10.23 - Version 1.11.2
- New Details.
Update 13.09.23 - Version 1.11.1
- Minor Fix.
Update 20.06.23 - Version 1.11.0
- Bug Fixed.
Update 12.01.23 - Version 1.10.1
- Update.
Update 03.01.23 - Version 1.10.0
- New Details.
Update 01.09.22 - Version 1.9.1
- Fixed Repeating Group Bug.
Update 26.05.22 - Version 1.9.0
- Updated for New Responsive.
Update 15.04.22 - Version 1.8.0
- Added the option to specify a percentage value for the height/width.
Update 19.01.22 - Version 1.7.0
- Added "Clear the Video ID from Recorder" Action.
Update 08.01.22 - Version 1.6.0
- Added Recorder Recordingwidth and height parameter.
Update 23.09.21 - Version 1.5.1
- Bug Fix.
Update 29.08.21 - Version 1.5.0
- Added Recording Width and Recording Height.
Update 24.08.21 - Version 1.4.1
- Fixed Ziggeo Reset Recorder Action Bug.
Update 09.07.21 - Version 1.4.0
- Added "Specific Video Player has ended" event.
Update 25.06.21 - Version 1.3.0
- minor.
Update 31.05.21 - Version 1.2.0
- Minor changes.
Update 31.05.21 - Version 1.1.0
- Added "Reset Embedding" Action.
Update 29.05.21 - Version 1.0.0
- First Release.