1. Overview
hihaho's interactive videos allow the addition of various interaction types through JSON specifications. Each interaction is represented as an object in a JSON array. This document provides a comprehensive guide for all supported interaction types, designed for those managing interactive video content.
Use Cases:
Bulk creation and automation of interactions.
Ensuring consistency across questions and answers in quizzes.
Validating interaction setup for accuracy before deployment.
2. General JSON Structure
2.1 Base Structure
json
{
"interactions": [...],
"questions": [...],
"subtitles": []
}
2.2 Common Attributes
type: Specifies the interaction type (e.g., "mc", "open", "text", "scroll").
start_time or active_at: When the interaction begins or becomes active (in seconds).
end_time: When the interaction ends (in seconds, for applicable types).
style: Controls visual properties like color, z-index, etc.
title: Descriptive name for the interaction.
3. Interaction Types
3.1 Jump to
Purpose: Allows viewers to jump to different parts of the video.
Attributes:
action.type: "jump"
action.time: Time to jump to in seconds.
Example:
json
{
"type": "jump_to",
"start_time": 18.28,
"action": {"type": "jump", "time": 21.31},
"title": "Jump to"
}
3.2 Menu
Purpose: Provides a menu for navigation within the video, allowing users to jump to different sections or trigger actions.
General Interaction Attributes:
start_time: When the menu appears in the video.
Interaction-Specific Attributes:
type: Set to "menu" to define this interaction as a navigation menu.
title: A descriptive name for the menu interaction, useful for debugging or organization.
attributes:
options: Configuration for how the menu looks and behaves:
should_give_possibility_to_close: If true, allows users to close the menu.
should_show_menu_button: If false as here, the menu button isn't displayed, suggesting the menu might appear automatically or by another trigger.
menu_button_location: Position of the menu button if displayed (0 might mean default or auto).
menu_button_position: Placement of the menu button (0 here might indicate no specific placement or not applicable).
menu_button_name: Name or label of the menu button, empty here since the button isn't shown.
position: Defines where the menu appears on the screen (left in this case).
menu_items: An array of items within the menu:
name: Display text for each menu item.
action: What happens when the menu item is selected, here always a jump to a specific time:
type: Type of action (jump for jumping to a different part of the video).
time: The time in seconds to jump to.
should_show_chapter_numbers: If true, displays chapter numbers if menu items correspond to video chapters.
should_not_use_time: If false, the menu uses time-based navigation.
position: Reiterates where the menu is positioned (left in this example).
should_pause_when_shown: If true, pauses the video when the menu is displayed, allowing user interaction.
Style Attributes:
z_index: Determines the stacking order of the menu, ensuring it's on top of the video.
Example:
json
{
"attributes": {
"options": {
"should_give_possibility_to_close": true,
"should_show_menu_button": false,
"menu_button_location": 0,
"menu_button_position": 0,
"menu_button_name": "",
"position": "left"
},
"menu_items": [
{
"action": {
"type": "jump",
"time": 12.87
},
"name": "Menu item 1"
},
{
"action": {
"type": "jump",
"time": 41.69
},
"name": "Menu item 2"
},
{
"action": {
"type": "jump",
"time": 69.15
},
"name": "Menu item 3"
}
]
},
"should_show_chapter_numbers": true,
"start_time": 3.66,
"style": {
"z_index": 50
},
"title": "Menu",
"type": "menu",
"should_not_use_time": false,
"position": "left",
"should_pause_when_shown": true
}
3.3 Chapter
Purpose: Organizes video into sections for easy navigation, enhancing user experience by allowing quick movement between parts of the video.
General Interaction Attributes:
start_time: When the chapter interaction begins in the video.
end_time: When the chapter interaction ends in the video.
Interaction-Specific Attributes:
type: Set to "chapter" to define this as a navigation aid rather than a content interaction.
title: A general title for the chapter interaction, often representing the overarching content.
chapters: An array where each entry represents a chapter or section of the video:
title: Name of the chapter for display in navigation menus or timelines.
start_time: Start time of this chapter in seconds.
end_time: End time of this chapter in seconds.
title_short: An abbreviated title for use on smaller screens or menus where space is limited.
sort_order: Determines the order of chapters in the navigation menu; here all set to 1, suggesting they're sorted by start time.
is_disabled: If true, would prevent navigation to this chapter, here all are false.
should_collapse_after_menu_item_click: If true, the chapter menu collapses after a chapter is selected.
should_start_collapsed: If true, the chapter menu starts in a collapsed state.
should_use_menu_layout: Determines if chapters should be displayed in a menu format rather than a timeline.
position: Defines where the chapter navigation appears (left, right, etc.).
should_pause_when_shown: If true, pauses the video when the chapter menu is displayed.
Style Attributes:
z_index: Determines the stacking order, ensuring the chapter navigation appears on top of video content.
desktop_font_size, mobile_font_size: Font sizes for the chapter titles to adjust for different screen sizes.
Example:
json
{
"end_time": 60.18,
"start_time": 3.25,
"style": {
"z_index": 50,
"desktop_font_size": 30,
"mobile_font_size": 24
},
"title": "Content",
"type": "chapter",
"chapters": [
{
"title": "Chapter 1",
"start_time": 3.6,
"end_time": 21.14,
"title_short": "Short name for mobile 1",
"sort_order": 1,
"is_disabled": false
},
{
"title": "Chapter 2",
"start_time": 21.14,
"end_time": 43.34,
"title_short": "Short name for mobile 2",
"sort_order": 1,
"is_disabled": false
},
{
"title": "Chapter 3",
"start_time": 43.34,
"end_time": 63.07,
"title_short": "Short name for mobile 3",
"sort_order": 1,
"is_disabled": false
}
],
"should_collapse_after_menu_item_click": true,
"should_start_collapsed": true,
"should_use_menu_layout": true,
"position": "left",
"should_pause_when_shown": true
}
3.4 Text
Purpose: Adds dynamic, styled text to video segments.
Attributes:
should_fade_in, should_fade_out: Boolean for fade effects.
text: HTML styled text for display.
action: Can include actions like delayed_jump for more control over time-based interactions.
text_stroke: Color of the text stroke for enhanced visibility or design.
attributes.should_use_vertical_text_orientation: Boolean to control text orientation.
Example:
json
{
"action": {
"type": "delayed_jump",
"time": 42.76,
"jump_at_position": 37.33,
"activation_style": {
"background_color": null,
"text_color": null
}
},
"attributes": {
"should_use_vertical_text_orientation": true
},
"end_time": 45.9,
"start_time": 35.9,
"style": {
"background_color": "rgb(0, 255, 0)",
"padding_top": 40,
"padding_bottom": 40,
"align_items": "center",
"z_index": 50,
"border": {
"border_color": null,
"border_style": null,
"border_width": null
},
"border_radius": 130,
"height": "70.48%",
"left": "36.27%",
"top": "12.35%",
"width": "40.00%"
},
"text": "<p style=\"text-align: center;\">Text example</p>",
"text_stroke": "black",
"title": "Text",
"type": "text",
"should_fade_in": true,
"should_fade_out": true
}
3.5 Scrollable Text
Purpose: Displays scrollable text for longer messages or instructions. Similar to text interaction but with specific attributes for scrolling behavior.
Attributes:
attributes.scroll_direction: Direction of text scroll.
attributes.scroll_duration: Speed of scroll in seconds.
should_fade_in, should_fade_out: Boolean for fade effects.
text: HTML styled text for display.
attributes.should_use_vertical_text_orientation: Boolean to control text orientation.
Example:
json
{
"action": {
"type": "no_action"
},
"attributes": {
"scroll_direction": "ltr",
"scroll_duration": 5,
"should_use_vertical_text_orientation": true
},
"end_time": 45.9,
"start_time": 35.9,
"style": {
"background_color": "rgb(0, 255, 0)",
"padding_top": 40,
"padding_bottom": 40,
"align_items": "center",
"z_index": 50,
"border": {
"border_color": null,
"border_style": null,
"border_width": null
},
"border_radius": 130,
"height": "70.48%",
"left": "36.27%",
"top": "12.35%",
"width": "40.00%"
},
"text": "<p style=\"text-align: center;\">Scrollable text example</p>",
"text_stroke": "black",
"title": "Scrollable Text",
"type": "scroll",
"should_fade_in": true,
"should_fade_out": true
}
3.6 Hotspot
Purpose: Interactive areas on video for additional engagement, allowing viewers to interact with specific parts of the video content.
Attributes:
attributes.should_show_indicator: Boolean to control whether an interaction hint is displayed.
attributes.indicator_color: Color of the interaction hint.
attributes.text_label_color: Color for the text label of the hotspot.
attributes.text_render_scale: Scale for rendering text; can be null for default or specific scaling values.
attributes.tooltip_placement: Position of the tooltip relative to the hotspot (top, bottom, left, right, or middle).
attributes.blinking_speed: Speed at which the indicator blinks (normal, fast, slow).
attributes.should_use_vertical_text_orientation: Boolean to control text orientation within the hotspot.
end_time, start_time: Duration during which the hotspot is active.
text: HTML formatted text to display when interacting with the hotspot.
style:
background_color: Background color of the hotspot, often set to transparent.
z_index: Determines the stacking order of elements.
border: Details on border style, which can be null for none.
border_radius: Rounding of the hotspot's corners.
Position and size attributes (height, width, left, top) to define where and how large the hotspot appears.
Example:
json
{
"action": {
"type": "no_action"
},
"attributes": {
"should_show_indicator": true,
"indicator_color": "rgb(0, 255, 255)",
"text_label_color": "rgba(4, 51, 72, 0.9)",
"text_render_scale": null,
"tooltip_placement": "top",
"blinking_speed": "normal",
"should_use_vertical_text_orientation": false
},
"end_time": 73.31,
"start_time": 63.31,
"style": {
"background_color": "rgba(0, 0, 0, 0)",
"z_index": 55,
"border": {
"border_color": null,
"border_style": null,
"border_width": null
},
"border_radius": 0,
"height": "30.05%",
"left": "48.06%",
"top": "52.93%",
"width": "40.00%"
},
"text": "<p style=\"text-align: center;\">Hotspot text</p>",
"title": "Hotspot",
"type": "hotspot"
}
3.7 Highlight
Purpose: Highlights or zooms into video areas for focus, allowing viewers to concentrate on specific parts of the video.
Attributes:
should_fade_in, should_fade_out: Boolean to control whether the highlight fades in or out for a smooth visual transition.
end_time, start_time: Duration during which the highlight is visible.
action: Can be set to no_action if the highlight is just for visual emphasis without additional actions.
Style:
background_color: Background color of the highlight, often with opacity for overlay effects.
z_index: Determines the stacking order of elements, ensuring the highlight appears on top.
border:
border_color: Color of the border around the highlight.
border_style: Style of the border (solid, dashed, dotted, etc.).
border_width: Width of the border in pixels.
border_radius: Rounding of the highlight's corners for a softer or custom look.
Position and size attributes (height, width, left, top) to specify where and how large the highlight appears on the video.
Example:
json
{
"action": {
"type": "no_action"
},
"end_time": 77.79,
"start_time": 67.79,
"style": {
"background_color": "rgba(188, 146, 102, 0.66)",
"z_index": 50,
"border": {
"border_color": "rgb(102, 0, 0)",
"border_style": "dashed",
"border_width": 7
},
"border_radius": 154,
"height": "56.01%",
"left": "53.49%",
"top": "22.53%",
"width": "40.00%"
},
"title": "Highlight",
"type": "highlight",
"should_fade_in": true,
"should_fade_out": true
}
3.8 Zoom
Purpose: Zooms into a specific part of the video to provide closer examination or detail focus.
Attributes:
end_time, start_time: Duration during which the zoom effect is active.
Style:
z_index: Determines the stacking order, ensuring the zoom indicator appears on top if needed.
border:
border_color: Color of the border indicating the zoom area.
border_style: Style of the border (solid, dotted, dashed, etc.).
border_width: Width of the border in pixels.
border_radius: Rounding of the zoom area's corners for visual effect.
Position and size attributes (height, width, left, top) to define the exact area to zoom into:
Example:
json
{
"end_time": 80.22,
"start_time": 70.22,
"style": {
"z_index": 50,
"border": {
"border_color": "rgb(255, 0, 0)",
"border_style": "dotted",
"border_width": 19
},
"border_radius": 360,
"height": "24.46%",
"left": "68.80%",
"top": "50.00%",
"width": "24.46%"
},
"title": "Zoom in",
"type": "zoom"
}
3.9 Frame
Purpose: Embed external web content directly within the video for interactive experiences, like web pages or other interactive elements.
Attributes:
action:
type: "link" - To navigate to external content.
link: URL to be embedded.
should_open_in_same_window: Boolean to determine if the link opens in the same window.
should_resume_video_with_event: Boolean to control whether the video resumes after interaction.
attributes:
should_stay_alive_after_hiding: Boolean to keep the iframe active even after it's hidden.
should_fade_in, should_fade_out: Boolean to control fade effects for the frame's appearance/disappearance.
end_time, start_time: Duration during which the frame is active.
Style:
background_color: Background color of the frame, often semi-transparent for overlay effects.
z_index: Determines the stacking order to ensure visibility over video content.
border:
border_color: Color of the border around the frame.
border_style: Style of the border (solid, dashed, dotted, etc.).
border_width: Width of the border in pixels.
border_radius: Rounding of the frame's corners for a softer or custom look.
Position and size attributes (height, width, left, top) to specify where and how large the frame appears over the video.
Example:
json
{
"action": {
"type": "link",
"link": "https://hihaho.com/",
"should_open_in_same_window": false,
"should_resume_video_with_event": false
},
"attributes": {
"should_stay_alive_after_hiding": true
},
"end_time": 83.34,
"start_time": 73.34,
"style": {
"background_color": "rgba(4, 51, 72, 0.9)",
"z_index": 50,
"border": {
"border_color": "rgba(188, 146, 102, 0.66)",
"border_style": "dashed",
"border_width": 10
},
"border_radius": 114,
"height": "42.92%",
"left": "43.73%",
"top": "48.07%",
"width": "26.02%"
},
"title": "iFrame",
"type": "frame",
"should_fade_in": true,
"should_fade_out": true
}
3.10 Linked Video
Purpose: Link to another video within the platform or external video services, allowing for a seamless transition to different content.
Attributes:
action:
type: "link_video" - Indicates this interaction links to another video.
link: Identifier or URL for the video to link to.
should_open_in_same_window: Boolean to determine if the video should open in the same window or a new one.
link_video_target_custom_start_time: Optional start time for the linked video in seconds.
previous_video_button_mode: Defines where the button to return to the previous video appears ("everywhere", "start", etc.).
previous_video_button_text: Text for the button to return to the previous video.
attributes:
should_use_vertical_text_orientation: Boolean to control text orientation within the interaction.
should_fade_in, should_fade_out: Boolean to control fade effects when showing or hiding the interaction.
end_time, start_time: Duration during which the link to the video is active.
Style:
background_color: Background color of the interaction area.
padding_top, padding_bottom: Padding for text or content within the interaction area.
align_items: Defines how the content within the interaction should be aligned ("flex-end", "center", etc.).
z_index: Determines the stacking order to ensure visibility over video content.
border:
border_color: Color of the border around the interaction area.
border_style: Style of the border (solid, dotted, etc.).
border_width: Width of the border in pixels.
border_radius: Rounding of the interaction area's corners.
Position and size attributes (height, width, left, top) to specify where and how large the interaction appears over the video.
Text:
text: HTML formatted text to display within the interaction area, often used as a label or prompt.
text_stroke: Color of the text stroke for enhanced visibility.
Example:
json
{
"action": {
"type": "link_video",
"link": "VIDEO_ID",
"should_open_in_same_window": true,
"link_video_target_custom_start_time": 16,
"previous_video_button_mode": "everywhere",
"previous_video_button_text": "Button text"
},
"attributes": {
"should_use_vertical_text_orientation": true
},
"end_time": 54.57,
"start_time": 44.57,
"style": {
"background_color": "rgb(255, 153, 0)",
"padding_top": 10,
"padding_bottom": 10,
"align_items": "flex-end",
"z_index": 50,
"border": {
"border_color": "rgb(255, 255, 0)",
"border_style": "dotted",
"border_width": 3
},
"border_radius": 214,
"height": "40.99%",
"left": "43.61%",
"top": "32.83%",
"width": "39.88%"
},
"text": "<p style=\"text-align: center;\"><span style=\"font-family: Roboto, sans-serif; font-size: 21pt; color: rgba(255,255,255,1);\">Your text here</span></p>",
"text_stroke": "black",
"title": "Linked video",
"type": "link_video",
"should_fade_in": true,
"should_fade_out": true
}
3.11 Image
Purpose: Display static or animated images over the video at specific times to complement or enhance the video content.
Attributes:
action:
type: "delayed_jump" - An action type that allows for a jump with a delay.
time: Time to jump to after the delay.
jump_at_position: Position where the jump action should be activated.
activation_style: Styling for the activation state, if applicable.
attributes:
should_click_through: Boolean to determine if clicks pass through the image to the video below.
should_fade_in, should_fade_out: Boolean to control fade effects for the image's appearance/disappearance.
end_time, start_time: Duration during which the image is visible.
image_url: URL or path to the image file to be displayed.
should_play_gif_on_mouseover: Boolean to control if an animated GIF should play on mouse hover (for GIF images).
Style:
background_color: Background color behind or around the image, if needed.
z_index: Determines the stacking order for layering over the video.
object_fit: How the image should be resized to fit its container ("cover", "contain", etc.).
opacity: Opacity of the image, affecting its transparency.
border:
border_color: Color of the border around the image.
border_style: Style of the border (solid, dotted, etc.).
border_width: Width of the border in pixels.
border_radius: Rounding of the image's corners.
Position and size attributes (height, width, left, top) to specify where and how large the image appears over the video.
Example:
json
{
"action": {
"type": "delayed_jump",
"time": 66.85,
"jump_at_position": 51.14,
"activation_style": {
"background_color": "rgb(68, 68, 68)",
"text_color": "rgb(255, 153, 0)"
}
},
"attributes": {
"should_click_through": false
},
"end_time": 56.82,
"start_time": 46.85,
"style": {
"background_color": "rgb(244, 204, 204)",
"z_index": 50,
"object_fit": "cover",
"opacity": 1,
"border": {
"border_color": "rgb(255, 0, 0)",
"border_style": "dotted",
"border_width": 46
},
"border_radius": 150,
"height": "1.72%",
"left": "0.00%",
"top": "0.00%",
"width": "0.36%"
},
"title": "Image",
"type": "image",
"should_fade_in": true,
"should_fade_out": true,
"image_url": "/img/default_image_interaction.png",
"should_play_gif_on_mouseover": false
}
3.12 Sound
Purpose: Add background or specific sound effects at certain video times.
Attributes:
sound_url: URL to the sound file.
should_enable_sound: Boolean to control sound playback.
Example:
json
{
"end_time": 96.83,
"start_time": 95.31,
"title": "Sound",
"type": "sound",
"should_enable_sound": false,
"sound_url": "SOUND_URL"
}
4. Question Interactions
4.1 Adding Questions
Questions are added under the "questions" array in the JSON. Each question object includes:
type: The type of question, like mc (multiple choice), open, or rating.
active_at: The time in the video when the question appears.
text: The question text for the user.
answers: An array of possible answers or null for open-ended questions.
action: Defines what happens upon answering.
4.2 Question Types
4.2.1 Multiple Choice (mc)
General Interaction Attributes:
active_at: The exact time in seconds when the question should appear in the video. This is common across interactions but crucial for timing questions.
Question-Specific Attributes:
type: Indicates this is a multiple-choice question. Essential for parsing and rendering the correct interaction type.
text: The actual question text that will be displayed to the user. This is standard for all question types but can include HTML for formatting.
answers: An array where each entry represents an answer option. Unique to question interactions:
text: The text of the answer option.
is_correct: Boolean indicating if this answer is correct or not.
action: Defines what happens if this answer is chosen. This can include:
type: The action to perform (jump, repeat_question, show_score_screen, etc.).
time: For actions like jump, this specifies where to jump to in the video.
interaction_id, link, question_id: These can be used to link to other interactions or external resources but are often null unless specifically needed.
should_open_in_same_window: For link actions, dictates if the link opens in a new or the current window.
action: Defines actions for different outcomes:
correct: What happens if the user answers correctly.
incorrect: Action when an incorrect answer is selected.
no_match: What to do if none of the answers match (rare but can be used for edge cases or when all answers are incorrect).
Feedback and Scoring Attributes:
counts_points_per_answer: If true, each answer can have its own point value; otherwise, points might be awarded for the question as a whole.
enable_partly_correct_feedback: When true, allows for feedback where answers might be partially correct.
explanation_partly_correct: Text or HTML explaining partial correctness, used if enable_partly_correct_feedback is true.
feedback_screen_color: Boolean to determine if the feedback screen should have a colored background.
feedback_screen_correct_answer_feedback, feedback_screen_incorrect_answer_feedback: Custom feedback messages for correct and incorrect answers.
feedback_screen_general_feedback: General feedback shown after answering (in HTML format here).
feedback_title_custom_text: Custom text for feedback titles based on the answer's outcome.
feedback_title_type: Can be automatic for system-generated titles or custom for user-defined.
feedback_type: Determines how feedback is displayed (no_feedback, direct, screen, etc.).
Visual and Interaction Attributes:
font_size: Specifies the size of the text for the question, which is less common for non-question interactions.
image_fit, image_url: Allows for an image to accompany the question, with image_fit controlling how the image scales/positions.
feedback_image_fit, feedback_image_url: Similar to above but for images shown in feedback.
is_repeatable: Determines if the question can be answered more than once (null here means it defaults to the system's setting).
layout: Specifies the visual style of the question (modern or classic).
markup: Contains configurations for additional UI elements:
back_button, feedback_action_button: Defines buttons for navigation or additional actions after feedback, including their own actions (type, time, etc.).
placeholder, prefix, suffix: Placeholder text or additional text elements for input fields, which might apply to other question types but are less common in simple MC questions.
Other Attributes:
points: Total points for the question, if not counting per answer.
should_fade_in, should_fade_out: Controls visual transitions for the question's appearance/disappearance.
should_play_sound, sound_url: Unique to this example where sound feedback or cues can be played upon interaction.
should_retry_question_on_incorrect_answer: Allows for automatic retries if an answer is incorrect.
should_show_feedback_when_answered: Controls when (or if) feedback is shown to the user.
should_shuffle_answers: Randomizes the order of answers to prevent pattern recognition.
should_submit_instantly: Determines if the answer submission happens immediately upon selection or requires a separate submit action.
subtitle_text: Additional text below the main question text, potentially for hints or context.
submit_label: Text for the submit button, if one is used.
Example:
json
{
"action": {
"correct": {
"interaction_id": null,
"link": null,
"question_id": null,
"should_open_in_same_window": false,
"time": 0,
"type": "continue_playing"
},
"incorrect": {
"interaction_id": null,
"link": null,
"question_id": null,
"should_open_in_same_window": false,
"time": 0,
"type": "continue_playing"
},
"no_match": {
"interaction_id": null,
"link": null,
"question_id": null,
"should_open_in_same_window": false,
"time": 0,
"type": "continue_playing"
}
},
"active_at": 46.85,
"answers": [
{
"action": {
"interaction_id": null,
"link": null,
"question_id": null,
"should_open_in_same_window": false,
"time": 33.48,
"type": "jump"
},
"is_correct": true,
"explanation": null,
"text": "right answer",
"points": 2
},
{
"action": {
"interaction_id": null,
"link": null,
"question_id": null,
"should_open_in_same_window": false,
"time": 0,
"type": "repeat_question"
},
"is_correct": false,
"explanation": null,
"text": "wrong answer",
"points": 1
},
{
"action": {
"interaction_id": null,
"link": null,
"question_id": null,
"should_open_in_same_window": false,
"time": 0,
"type": "show_score_screen"
},
"is_correct": false,
"explanation": null,
"text": "another wrong answer",
"points": 0
}
],
"answer_minimum_character_count": 0,
"counts_points_per_answer": true,
"enable_partly_correct_feedback": false,
"explanation_partly_correct": "",
"feedback_screen_color": true,
"feedback_screen_correct_answer_feedback": "",
"feedback_screen_general_feedback": "<!--TINYMCE--><p> </p>",
"feedback_screen_incorrect_answer_feedback": "",
"feedback_title_custom_text": null,
"feedback_title_type": "automatic",
"feedback_type": "no_feedback",
"font_size": 26,
"image_fit": null,
"image_url": null,
"feedback_image_fit": null,
"feedback_image_url": null,
"is_repeatable": null,
"layout": "modern",
"markup": {
"back_button": {
"action": {
"interaction_id": null,
"link": null,
"time": 0,
"question_id": null,
"type": "jump_to_start"
},
"is_enabled": true,
"name": "Back button"
},
"feedback_action_button": {
"action": {
"interaction_id": null,
"link": null,
"time": 0,
"question_id": null,
"type": "jump_to_start"
},
"is_enabled": false,
"name": null
},
"placeholder": null,
"prefix": null,
"suffix": null
},
"points": 0,
"should_fade_in": true,
"should_play_sound": true,
"should_retry_question_on_incorrect_answer": false,
"should_show_feedback_when_answered": null,
"should_shuffle_answers": true,
"should_submit_instantly": false,
"sound_url": "[SOUND_URL]",
"text": "Question",
"type": "mc",
"subtitle_text": "Question subtitle",
"submit_label": "Submit button label"
}
4.2.2 Open Question (open)
Purpose: To collect longer, narrative responses from viewers, useful for feedback or detailed insights.
General Interaction Attributes:
active_at: Specifies when in the video timeline the question appears.
Question-Specific Attributes:
type: Set to "essay" for an open-ended question allowing detailed text input.
text: The actual question or prompt shown to the user, can include HTML for formatting.
answers: Set to null for open questions since there's no predefined answer list.
action: Defines what happens after the user submits their answer:
correct, incorrect, no_match: Actions for different scenarios, although 'correct' and 'incorrect' might not apply directly since it's an open response, no_match could trigger if no response or an invalid one is given.
Input Control Attributes:
answer_minimum_character_count: Ensures a minimum length for the response, promoting more thoughtful answers.
Feedback and Scoring Attributes:
counts_points_per_answer: For open questions, this would typically be false since scoring is more subjective.
enable_partly_correct_feedback: Not usually relevant for essay questions unless there are partial credit scenarios.
feedback_screen_*: Settings for feedback display:
feedback_screen_color: Determines if the feedback screen has a background color.
feedback_screen_correct_answer_feedback, feedback_screen_incorrect_answer_feedback, feedback_screen_general_feedback: Customizable feedback messages in HTML format.
feedback_title_custom_text: Custom titles for feedback based on response evaluation, here specifying a "neutral" title for all feedback.
feedback_title_type: Set to "custom", using the custom text defined above.
feedback_type: "screen" suggests feedback is shown in a dedicated screen after submission.
Visual and Interaction Attributes:
font_size: Controls the text size for both the question and possibly the input field.
image_fit, image_url, feedback_image_fit, feedback_image_url: Allows for images with the question or feedback, though less common in open-ended questions.
is_repeatable: If false, the question can only be answered once, which is typical for essay questions to encourage unique responses.
layout: Here set to "modern", affecting how the question and answer input are displayed.
markup: Provides configuration for UI elements:
back_button, feedback_action_button: Defines actions for buttons, like navigating back or jumping to another part of the video after feedback.
link in back_button action points to an external URL, showing how open questions can integrate with external resources.
placeholder: Text shown in the input field before user input, encouraging or guiding responses.
prefix, suffix: Could be used to add static text before or after the input field for context or formatting.
Other Attributes:
points: Points awarded for the question, might be for participation or based on content evaluation.
should_fade_in, should_fade_out: Visual transition effects for the question's appearance.
should_play_sound, sound_url: Sound can be played when the question appears, enhancing interaction.
should_retry_question_on_incorrect_answer: Not typically applicable for essay questions but included as an option for feedback or revision scenarios.
should_show_feedback_when_answered: Here set to true, meaning feedback will be shown after submission.
should_shuffle_answers: Irrelevant for essay questions since there are no answers to shuffle.
should_submit_instantly: If false, users have to click submit, allowing for more time to compose responses.
subtitle_text: Additional context or hint below the main question text.
submit_label: Text for the submit button, guiding the user to complete their response.
Example:
json
{
"action": {
"correct": {
"interaction_id": null,
"link": null,
"question_id": null,
"should_open_in_same_window": false,
"time": 0,
"type": "continue_playing"
},
"incorrect": {
"interaction_id": null,
"link": null,
"question_id": null,
"should_open_in_same_window": false,
"time": 0,
"type": "continue_playing"
},
"no_match": {
"interaction_id": null,
"link": null,
"question_id": null,
"should_open_in_same_window": false,
"time": 0,
"type": "show_score_screen"
}
},
"active_at": 46.85,
"answers": null,
"answer_minimum_character_count": 10,
"counts_points_per_answer": false,
"enable_partly_correct_feedback": false,
"explanation_partly_correct": "",
"feedback_screen_color": false,
"feedback_screen_correct_answer_feedback": "",
"feedback_screen_general_feedback": "<!--TINYMCE--><p>Description</p>",
"feedback_screen_incorrect_answer_feedback": "",
"feedback_title_custom_text": {
"correct": null,
"incorrect": null,
"neutral": "Feedback title",
"partlyCorrect": null
},
"feedback_title_type": "custom",
"feedback_type": "screen",
"font_size": 14,
"image_fit": null,
"image_url": null,
"feedback_image_fit": null,
"feedback_image_url": null,
"is_repeatable": false,
"layout": "modern",
"markup": {
"back_button": {
"action": {
"interaction_id": null,
"link": "[URL]",
"time": 0,
"question_id": null,
"type": "link"
},
"is_enabled": true,
"name": "Back button"
},
"feedback_action_button": {
"action": {
"interaction_id": null,
"link": null,
"time": 46.85,
"question_id": null,
"type": "jump"
},
"is_enabled": true,
"name": "button title"
},
"placeholder": "placeholder text here",
"prefix": null,
"suffix": null
},
"points": 0,
"should_fade_in": true,
"should_play_sound": true,
"should_retry_question_on_incorrect_answer": false,
"should_show_feedback_when_answered": true,
"should_shuffle_answers": true,
"should_submit_instantly": false,
"sound_url": "[SOUND_URL]",
"text": "Open question",
"type": "essay",
"subtitle_text": "Question subtitle",
"submit_label": "Submit button label"
}
4.2.3 Rating Question (rating)
Purpose: To get feedback or ratings from viewers, typically using a scale or stars.
General Interaction Attributes:
active_at: Specifies when in the video timeline the question appears.
Question-Specific Attributes:
type: Set to "rating" to indicate this question is for collecting user ratings.
text: The question or prompt asking for the rating, can include HTML for formatting.
answers: Set to null since ratings don't have predefined answers but rather a scale.
action: Defines what happens after the user submits their rating:
correct, incorrect, no_match: Actions are less relevant for ratings but can define what happens after submission:
no_match here might jump to the end if no rating is given.
Feedback and Scoring Attributes:
counts_points_per_answer: Typically false for ratings as they're not usually scored.
enable_partly_correct_feedback: Not applicable for ratings in most contexts.
feedback_screen_*: Settings for feedback display, which might be used for showing the impact of the rating:
feedback_screen_color: Determines if the feedback screen has a background color.
feedback_screen_general_feedback: Could provide feedback based on the rating given.
feedback_title_custom_text, feedback_title_type: Custom or automatic titles for feedback, if any is provided.
feedback_type: Here set to "direct", indicating feedback might be shown instantly or in-line rather than on a separate screen.
Visual and Interaction Attributes:
font_size: Controls the size of text for the question prompt.
image_fit, image_url, feedback_image_fit, feedback_image_url: Could be used to display images related to the rating question or feedback.
is_repeatable: If null or false, the rating can't be changed once submitted, which is common.
layout: Here "modern", affecting how the rating interface appears.
markup: Provides configuration for UI elements:
back_button: Allows users to go back, possibly to reconsider their rating.
feedback_action_button: Can trigger actions like jumping to another part of the video based on the rating or for feedback purposes.
placeholder, prefix, suffix: Not typically used for ratings but available for additional customization.
Other Attributes:
points: Might be used if ratings contribute to a score, but often left at 0 for simple feedback.
should_fade_in: Controls how the question appears with a fade effect.
should_play_sound, sound_url: Could play a sound when the rating question appears, though here it's set to false.
should_retry_question_on_incorrect_answer: Not applicable for ratings, set to false.
should_show_feedback_when_answered: Here null, suggesting feedback might not be shown automatically.
should_shuffle_answers: Irrelevant for ratings, set to true but has no effect.
should_submit_instantly: If true, ratings are submitted immediately upon selection, typical for rating interactions.
subtitle_text: Additional context or hint below the main question text.
submit_label: Not typically needed for ratings, hence set to null.
Example:
json
{
"action": {
"correct": {
"interaction_id": null,
"link": null,
"question_id": null,
"should_open_in_same_window": false,
"time": 0,
"type": "continue_playing"
},
"incorrect": {
"interaction_id": null,
"link": null,
"question_id": null,
"should_open_in_same_window": false,
"time": 0,
"type": "continue_playing"
},
"no_match": {
"interaction_id": null,
"link": null,
"question_id": null,
"should_open_in_same_window": false,
"time": 0,
"type": "jump_to_end"
}
},
"active_at": 46.85,
"answers": null,
"answer_minimum_character_count": 0,
"counts_points_per_answer": false,
"enable_partly_correct_feedback": false,
"explanation_partly_correct": "",
"feedback_screen_color": true,
"feedback_screen_correct_answer_feedback": "",
"feedback_screen_general_feedback": "<!--TINYMCE--><p> </p>",
"feedback_screen_incorrect_answer_feedback": "",
"feedback_title_custom_text": null,
"feedback_title_type": "automatic",
"feedback_type": "direct",
"font_size": 28,
"image_fit": null,
"image_url": null,
"feedback_image_fit": null,
"feedback_image_url": null,
"is_repeatable": null,
"layout": "modern",
"markup": {
"back_button": {
"action": {
"interaction_id": null,
"link": "[URL]",
"time": 0,
"question_id": null,
"type": "jump_to_start"
},
"is_enabled": true,
"name": "Back button"
},
"feedback_action_button": {
"action": {
"interaction_id": null,
"link": null,
"time": 52.13,
"question_id": null,
"type": "jump"
},
"is_enabled": true,
"name": "button title"
},
"placeholder": null,
"prefix": null,
"suffix": null
},
"points": 0,
"should_fade_in": true,
"should_play_sound": false,
"should_retry_question_on_incorrect_answer": false,
"should_show_feedback_when_answered": null,
"should_shuffle_answers": true,
"should_submit_instantly": true,
"sound_url": null,
"text": "Question here",
"type": "rating",
"subtitle_text": "Question subtitle",
"submit_label": null
}
4.2.4 Multiple Response (mr)
Purpose: Allows viewers to select multiple answers from a list for more complex quiz scenarios.
General Interaction Attributes:
active_at: Specifies when in the video timeline the question appears.
Question-Specific Attributes:
type: Set to "mr" for multiple response questions where multiple answers can be correct.
text: The question or prompt for which multiple answers are possible, can include HTML for formatting.
answers: An array where each entry represents a possible answer:
text: The text of the answer option.
is_correct: Indicates if this answer is correct or not; multiple can be true.
action: Defines what happens if this answer is selected, often set to continue_playing for MR questions.
points: Can be used if points are awarded per correct answer, though here it's null.
action: Defines what happens after the user submits their answers:
correct, incorrect, no_match: Actions for different scenarios where:
correct might jump to another part of the video if all correct answers are selected.
incorrect could repeat the question for another attempt.
no_match might end the video or go to a score screen if no correct answers were chosen.
Feedback and Scoring Attributes:
counts_points_per_answer: Determines if points are counted per answer or for the whole question, here false.
enable_partly_correct_feedback: Set to true, allowing feedback for partially correct answers.
explanation_partly_correct: Space for explaining partial correctness, though left empty here.
feedback_screen_*: Settings for feedback display:
feedback_screen_color: Determines if the feedback screen has a background color.
feedback_screen_general_feedback, feedback_screen_correct_answer_feedback, feedback_screen_incorrect_answer_feedback: Customizable feedback messages in HTML format.
feedback_title_custom_text: Custom titles for feedback based on the response outcomes.
feedback_title_type: Set to custom for user-defined feedback titles.
feedback_type: "direct" indicates feedback is shown immediately after answering.
Visual and Interaction Attributes:
font_size: Controls the text size for the question and answers.
image_fit, image_url: Allows for an image to accompany the question, affecting how it's displayed.
feedback_image_fit, feedback_image_url: Similar to above but for images in feedback.
is_repeatable: If false, the question can't be answered again, here set to prevent repetition.
layout: Here "modern", affecting how the question and answer options are presented.
markup: Defines UI elements like buttons:
back_button, feedback_action_button: Configures actions for navigation or post-feedback actions.
placeholder, prefix, suffix: Not used here but available for additional customization.
Other Attributes:
points: Total points for the question, here set to 6, suggesting points might be awarded for correct answers.
should_fade_in: Controls how the question appears with a fade effect.
should_play_sound, sound_url: Could play a sound when the question appears, here set to false.
should_retry_question_on_incorrect_answer: If true, allows for retries if answers are incorrect.
should_show_feedback_when_answered: Set to false, feedback might not be shown automatically but could be manually triggered.
should_shuffle_answers: If true, randomizes the order of answers.
should_submit_instantly: If false, users need to click submit, providing time for multiple selections.
subtitle_text: Additional context or hint below the main question text.
submit_label: Text for the submit button.
Example:
json
{
"action": {
"correct": {
"interaction_id": null,
"link": null,
"question_id": null,
"should_open_in_same_window": false,
"time": 57.64,
"type": "jump"
},
"incorrect": {
"interaction_id": null,
"link": null,
"question_id": null,
"should_open_in_same_window": false,
"time": 0,
"type": "repeat_question"
},
"no_match": {
"interaction_id": null,
"link": null,
"question_id": null,
"should_open_in_same_window": false,
"time": 0,
"type": "jump_to_end"
}
},
"active_at": 52.13,
"answers": [
{
"action": {
"interaction_id": null,
"link": null,
"question_id": null,
"should_open_in_same_window": false,
"time": 0,
"type": "continue_playing"
},
"is_correct": true,
"explanation": null,
"text": "Right answer",
"points": null
},
{
"action": {
"interaction_id": null,
"link": null,
"question_id": null,
"should_open_in_same_window": false,
"time": 0,
"type": "continue_playing"
},
"is_correct": false,
"explanation": null,
"text": "Wrong answer",
"points": null
},
{
"action": {
"interaction_id": null,
"link": null,
"question_id": null,
"should_open_in_same_window": false,
"time": 0,
"type": "continue_playing"
},
"is_correct": true,
"explanation": null,
"text": "another right answer",
"points": null
},
{
"action": {
"interaction_id": null,
"link": null,
"question_id": null,
"should_open_in_same_window": false,
"time": 0,
"type": "continue_playing"
},
"is_correct": false,
"explanation": null,
"text": "another wrong answer",
"points": null
}
],
"answer_minimum_character_count": 0,
"counts_points_per_answer": false,
"enable_partly_correct_feedback": true,
"explanation_partly_correct": "",
"feedback_screen_color": true,
"feedback_screen_correct_answer_feedback": "",
"feedback_screen_general_feedback": "<!--TINYMCE--><p> </p>",
"feedback_screen_incorrect_answer_feedback": "",
"feedback_title_custom_text": {
"correct": "Correct",
"incorrect": "Incorrect",
"neutral": null,
"partlyCorrect": "Partly correct"
},
"feedback_title_type": "custom",
"feedback_type": "direct",
"font_size": 22,
"image_fit": "contain",
"image_url": "example url",
"feedback_image_fit": "cover",
"feedback_image_url": "example url",
"is_repeatable": false,
"layout": "modern",
"markup": {
"back_button": {
"action": {
"interaction_id": null,
"link": "example url",
"time": 0,
"question_id": null,
"type": "jump_to_start"
},
"is_enabled": true,
"name": "knopje"
},
"feedback_action_button": {
"action": {
"interaction_id": null,
"link": null,
"time": 57.64,
"question_id": null,
"type": "jump"
},
"is_enabled": true,
"name": "button title"
},
"placeholder": null,
"prefix": null,
"suffix": null
},
"points": 6,
"should_fade_in": true,
"should_play_sound": false,
"should_retry_question_on_incorrect_answer": true,
"should_show_feedback_when_answered": false,
"should_shuffle_answers": true,
"should_submit_instantly": false,
"sound_url": null,
"text": "Question",
"type": "mr",
"subtitle_text": "Question subtitle",
"submit_label": "Submit button label"
}
4.2.5 Essay Question
Purpose: To collect user input, particularly at the start of a video for personalization or data collection.
General Interaction Attributes:
active_at: Specifies when in the video timeline the question appears.
Question-Specific Attributes:
type: Set to "open" for an open-ended question where users can input text.
text: The question or prompt for which user input is expected, can include HTML for formatting.
answers: Here, an array with dummy answers where text is empty:
is_correct: Set to true for the dummy correct answer, false for others, to manage the question's logic.
action: Defines what happens if an answer is selected, often set to continue_playing since there's no real selection.
action: Defines what happens after the user submits their input:
correct, incorrect, no_match: Actions for different scenarios, although for entry questions, these might be more about flow control:
correct might jump to personalized content.
incorrect could repeat the question if format validation fails.
no_match might end the video or go to a default path.
Feedback and Scoring Attributes:
counts_points_per_answer: Typically false for entry questions as they're not scored.
enable_partly_correct_feedback: Not applicable here, set to false.
feedback_screen_*: Feedback settings might be used for validation messages:
feedback_screen_color: Determines if the feedback screen has a background color.
feedback_screen_general_feedback: Could be used to give instructions or feedback on input.
feedback_title_custom_text: Not used here, automatic titles are employed.
feedback_title_type: Set to automatic for system-generated feedback titles.
feedback_type: "no_feedback" indicates no feedback is shown, which is common for simple data entry.
Visual and Interaction Attributes:
font_size: Controls the text size for the question.
image_fit, image_url, feedback_image_fit, feedback_image_url: Not used here, entry questions typically don't require images.
is_repeatable: Set to null, suggesting the system's default behavior applies.
layout: Here "modern", affecting how the input field is presented.
markup: Configures UI elements around the input:
back_button, feedback_action_button: Set to false, indicating these buttons are not active.
placeholder: Text shown in the input field before user input, guiding the user.
prefix, suffix: Text added before or after the input area for formatting or additional information.
Other Attributes:
points: Might be set to 1 if participating in the question awards a point, regardless of input.
should_fade_in: Controls how the question appears with a fade effect.
should_play_sound, sound_url: Could play a sound when the question appears, here set to false.
should_retry_question_on_incorrect_answer: Set to false, suggesting no automatic retries.
should_show_feedback_when_answered: Set to null, feedback might not be shown automatically.
should_shuffle_answers: Irrelevant for open questions, set to true but has no effect.
should_submit_instantly: If false, users need to click submit, allowing for input review.
subtitle_text: Additional context below the main question text.
submit_label: Not set here, suggesting automatic submission or a default label.
Example:
json
{
"action": {
"correct": {
"interaction_id": null,
"link": null,
"question_id": null,
"should_open_in_same_window": false,
"time": 57.64,
"type": "jump"
},
"incorrect": {
"interaction_id": null,
"link": null,
"question_id": null,
"should_open_in_same_window": false,
"time": 0,
"type": "repeat_question"
},
"no_match": {
"interaction_id": null,
"link": null,
"question_id": null,
"should_open_in_same_window": false,
"time": 0,
"type": "jump_to_end"
}
},
"active_at": 57.64,
"answers": [
{
"action": {
"interaction_id": null,
"link": null,
"question_id": null,
"should_open_in_same_window": false,
"time": 0,
"type": "continue_playing"
},
"is_correct": true,
"explanation": null,
"text": "",
"points": null
},
{
"action": {
"interaction_id": null,
"link": null,
"question_id": null,
"should_open_in_same_window": false,
"time": 0,
"type": "continue_playing"
},
"is_correct": false,
"explanation": null,
"text": "",
"points": null
}
],
"answer_minimum_character_count": 0,
"counts_points_per_answer": false,
"enable_partly_correct_feedback": false,
"explanation_partly_correct": "",
"feedback_screen_color": true,
"feedback_screen_correct_answer_feedback": "",
"feedback_screen_general_feedback": "<!--TINYMCE--><p> </p>",
"feedback_screen_incorrect_answer_feedback": "",
"feedback_title_custom_text": null,
"feedback_title_type": "automatic",
"feedback_type": "no_feedback",
"font_size": null,
"image_fit": null,
"image_url": null,
"feedback_image_fit": null,
"feedback_image_url": null,
"is_repeatable": null,
"layout": "modern",
"markup": {
"back_button": {
"action": {
"interaction_id": null,
"link": "example url",
"time": 0,
"question_id": null,
"type": "jump_to_start"
},
"is_enabled": false,
"name": null
},
"feedback_action_button": {
"action": {
"interaction_id": null,
"link": null,
"time": 57.64,
"question_id": null,
"type": "jump_to_start"
},
"is_enabled": false,
"name": null
},
"placeholder": "Placeholder",
"prefix": "Prefix",
"suffix": "Suffix"
},
"points": 1,
"should_fade_in": true,
"should_play_sound": false,
"should_retry_question_on_incorrect_answer": false,
"should_show_feedback_when_answered": null,
"should_shuffle_answers": true,
"should_submit_instantly": false,
"sound_url": null,
"text": "Entry question",
"type": "open",
"subtitle_text": "Question subtitle",
"submit_label": null
}
4.2.6 Vacancy Question
Purpose: Specifically designed for collecting job application information or similar structured data within an interactive video.
General Interaction Attributes:
active_at: Specifies when in the video timeline the form appears.
Question-Specific Attributes:
type: Set to "vacancy" to indicate this is a form for collecting detailed user data.
text: Acts as the title for the form, can include HTML for formatting.
answers: Set to null since the response is form-based rather than answer selection.
action: Defines what happens after the user submits the form:
correct, incorrect, no_match: Actions are less relevant for vacancy forms but can define post-submission behavior:
correct might jump to a thank you or next step video segment.
incorrect could be used if form validation fails, prompting re-entry.
no_match might direct to an error or default path if data is invalid.
Feedback and Scoring Attributes:
counts_points_per_answer: Typically false as forms don't usually award points.
enable_partly_correct_feedback: Not applicable for vacancy forms.
feedback_screen_*: Feedback settings for after form submission:
feedback_screen_color: Determines if the feedback screen has a background color.
feedback_screen_general_feedback: Used here to give a description or thank you message post-submission.
feedback_title_custom_text, feedback_title_type: Not typically used here, but can customize feedback titles if needed.
feedback_type: Set to "screen" which suggests feedback is shown in a dedicated screen after submission.
Visual and Interaction Attributes:
font_size: Controls the size of text for the form title and labels.
image_fit, image_url, feedback_image_fit, feedback_image_url: Not typically used for vacancy forms but could add visual context.
is_repeatable: Set to true here, allowing users to fill out the form multiple times if needed.
layout: Here "modern", affecting how the form is displayed.
markup: Provides configuration for UI elements:
back_button, feedback_action_button: Set to false, indicating no navigation or action buttons are active post-submission.
placeholder, prefix, suffix: Not typically used for vacancy forms.
vacancy: A sub-object with specific settings for the form:
company_name_label, email_address_label, first_name_label, last_name_label: Labels for form fields.
receiver_email_address: Where form submissions are sent.
upload_instructional_placeholder: Text guiding file upload if enabled.
should_allow_file_upload: If set to true, allows for file attachments in the form.
Other Attributes:
points: Set to 0 as this isn't scored like a quiz question.
should_fade_in: Controls how the form appears with a fade effect.
should_play_sound, sound_url: Could play a sound when the form appears, here set to false.
should_retry_question_on_incorrect_answer: Not applicable, set to false.
should_show_feedback_when_answered: Here null, feedback might be shown after form submission.
should_shuffle_answers: Irrelevant for vacancy forms, set to true but has no effect.
should_submit_instantly: If false, users need to explicitly submit the form.
subtitle_text: Additional context below the form title.
submit_label: Not set here, suggesting a default or automatic submission label.
Example:
json
{
"action": {
"correct": {
"interaction_id": null,
"link": null,
"question_id": null,
"should_open_in_same_window": false,
"time": 57.64,
"type": "jump"
},
"incorrect": {
"interaction_id": null,
"link": null,
"question_id": null,
"should_open_in_same_window": false,
"time": 0,
"type": "repeat_question"
},
"no_match": {
"interaction_id": null,
"link": null,
"question_id": null,
"should_open_in_same_window": false,
"time": 0,
"type": "jump_to_end"
}
},
"active_at": 57.64,
"answers": null,
"answer_minimum_character_count": 0,
"counts_points_per_answer": false,
"enable_partly_correct_feedback": false,
"explanation_partly_correct": "",
"feedback_screen_color": true,
"feedback_screen_correct_answer_feedback": "",
"feedback_screen_general_feedback": "<!--TINYMCE--><p>Description</p>",
"feedback_screen_incorrect_answer_feedback": "",
"feedback_title_custom_text": null,
"feedback_title_type": null,
"feedback_type": "screen",
"font_size": null,
"image_fit": null,
"image_url": null,
"feedback_image_fit": null,
"feedback_image_url": null,
"is_repeatable": true,
"layout": "modern",
"markup": {
"back_button": {
"action": {
"interaction_id": null,
"link": "example url",
"time": 0,
"question_id": null,
"type": "jump_to_start"
},
"is_enabled": false,
"name": null
},
"feedback_action_button": {
"action": {
"interaction_id": null,
"link": null,
"time": 57.64,
"question_id": null,
"type": "jump_to_start"
},
"is_enabled": false,
"name": null
},
"placeholder": null,
"prefix": null,
"suffix": null,
"vacancy": {
"company_name_label": "Third field",
"email_address_label": "Email field",
"first_name_label": "First field",
"last_name_label": "Second field",
"receiver_email_address": "example@mail.com",
"upload_instructional_placeholder": "Upload file here",
"should_allow_file_upload": true
}
},
"points": 0,
"should_fade_in": true,
"should_play_sound": false,
"should_retry_question_on_incorrect_answer": false,
"should_show_feedback_when_answered": null,
"should_shuffle_answers": true,
"should_submit_instantly": false,
"sound_url": null,
"text": "Form title",
"type": "vacancy",
"subtitle_text": "Question subtitle",
"submit_label": null
}
5. Action Types
Actions define what should happen when an interaction or answer is selected. Common action types include:
jump: Jumps to a specific time in the video.
Example: {"type": "jump", "time": 45}
continue_playing: Continues playing the video from where it left off.
Example: {"type": "continue_playing"}
repeat_question: Repeats the current question or interaction.
Example: {"type": "repeat_question"}
show_score_screen: Displays a screen summarizing the score or feedback.
Example: {"type": "show_score_screen"}
link: Links to an external website or another video.
Example:{"type": "link", "link": "example.com", "should_open_in_same_window": false}
These action types can be used within interactions or question answers to control the flow of the video based on user interaction.
6. Subtitles
Purpose: Enhance accessibility or provide translations.
Attributes:
content: SRT formatted subtitle text.
is_default: Determines if these subtitles show by default.
Example:
json
{
"type": "srt",
"content": "SRT content here...",
"is_default": true,
"language": "EN",
"title": "English",
"should_show_button": true
}
7. Leveraging AI for JSON Automation
Automatic Generation: Use AI to create JSON based on video content analysis or predefined templates.
Validation: AI can check for timing issues, logical errors in quiz setup, or formatting issues.
Translation: Automate subtitle translations or interactive text localization.
Optimization: AI can suggest optimal timing and placement for interactions based on viewer engagement data.