paella-core
Version:
Multistream HTML video player
285 lines • 14.8 kB
JSON
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://paellaplayer.upv.es/schema/v1/config.schema.json",
"title": "paella-core configuration file",
"description": "Configuration of paella-core options and plugins.",
"type": "object",
"properties": {
"fallbackId": {
"description": "paella-core >= 1.8. Specifies a default video identifier to be used in case one is not specified.",
"type": "string"
},
"repositoryUrl": {
"description": "Sets the URL of the manifest file repository for the videos",
"type": "string"
},
"manifestFileName": {
"description": "Set the filename of the video manifest that paella-core will attemp to load.",
"type": "string"
},
"defaultLayout": {
"description": "Indicates the default layout for videos.",
"type": "string"
},
"defaultLanguage": {
"description": "paella-core >= 1.23. Defines a default language to use, if the browser language does not match any of the dictionary languages.",
"type": "string"
},
"defaultAudioStream": {
"description": "In multi stream videos, defines which is the default audio stream, in case one is not explicitly defined in the video manifest",
"type": "string"
},
"defaultVideoPreview": {
"description": "paella-core >= 1.11. Indicates the preview image in landscape mode. This attribute is a path to an image, relative to the location of the configuration file.",
"type": "string"
},
"defaultVideoPreviewPortrait": {
"description": "paella-core >= 1.12. Indicates the preview image in portrait mode. This attribute is a path to an image, relative to the location of the configuration file.",
"type": "string"
},
"logLevel": {
"description": "Allows you to set the default logging level using the paella-core logger.",
"type": "string"
},
"accessibility": {
"description": "paella-core >= 1.24. Defines several accessibility options.",
"type": "object",
"properties": {
"clickWithSpacebar": {
"description": "If true, the spacebar will function as click action. Note that the return key will always function as click action.",
"type": "string"
}
}
},
"progressIndicator": {
"description": "paella-core >= 1.2. Set the visual configuration parameters for the progress indicator.",
"type": "object",
"properties": {
"showTotal": {
"description": "Show or hide the total duration of the video in the progress indicator. If false only the current time of the video is shown",
"type": "boolean"
},
"parentContainer": {
"description": "Indicates the container where the progress indicator will be displayed: over progress indicator or beside the buttons",
"type": "string",
"default": "progressIndicator",
"enum": [
"progressIndicator",
"buttonArea"
]
},
"side": {
"descriptions": "Used to configure whether the progress indicator will be displayed on the left or the right side of the container selected in 'parentContainer' property.",
"type": "string",
"default": "left",
"enum": [
"left",
"right"
]
},
"visible": {
"description": "Allows you to hide the progress indicator",
"type": "boolean",
"default": true
},
"showHandler": {
"description": "Allows to show or hide the progress indicator handle button.",
"type": "boolean",
"default": false
},
"hideHandlerOnMouseOut": {
"description": "In case the 'showHandler' parameter is true, this parameter allows to select whether the handler is hidden when the mouse cursor is not over the playback bar.",
"type": "boolean",
"default": false
},
"showRemainingProgress": {
"description": "Allows you to configure whether a different colour will be displayed in the playback bar, whick fills in the remaining time of the video. If the value is false, then the remaining time will be displayed transparent",
"type": "boolean",
"default": false
},
"inlineMode": {
"description": "Allows to display the playbar in the center of the playbar, between the buttons. This setting is more suitable when we have few plugins active, because it reduces the overall height of the playback bar.",
"type": "boolean",
"default": false
}
}
},
"preferences": {
"description": "paela >= 1.19. Manages the paella-core user preference system.",
"type": "object",
"properties": {
"sources": {
"description": "Stores the configuration of each data soruce for the preferences. The key are the name of the data source, and the value are the settings for the data source.",
"type": "object",
"properties": {
"cookie": {
"description": "Preference settings for using cookies as the data source",
"type": "object",
"properties": {
"consentType": {
"description": "This is the type of cookie that will be used to store preferences via de Cookie Consent API",
"type": "string"
}
}
},
"dataPlugin": {
"description": "Settings for using data plugins as the data source for preferences",
"type": "object",
"properties": {
"context": {
"description": "Data context for use with data plugin",
"type": "string"
}
}
}
}
},
"currentSource": {
"description": "Sets the data source for storing preferences. The possible values of this attribute are the keys defined in the 'sources' object",
"type": "string"
}
}
},
"videoContainer": {
"description": "Sets the configuration options related to the video container",
"type": "object",
"properties": {
"overPlaybackBar": {
"description": "paella-core >= 1.4. If true, the video container will be placed above the playback bar.",
"type": "boolean",
"default": false
},
"restorePlaybackRate": {
"description": "paella-core >= 1.5. If true, user settings for playback speed will be stored in the preferences",
"type": "boolean",
"default": true
},
"restoreVolume": {
"description": "paella-core >= 1.5. If true, user settings for volume will be stored in preferences.",
"type": "boolean",
"default": true
},
"restoreVideoLayout": {
"description": "paella-core >= 1.19. Save settings on video layout restauration",
"type": "object",
"properties": {
"enabled": {
"description": "If true, the last video layout selected by the user will be restored, if it is available for current video",
"type": "boolean",
"default": true
},
"global": {
"description": "Sets whether the video layout restoration settings are video specific or global. If true, the settings is global, so the video layout will be restored for all the videos.",
"type": "boolean",
"default": true
}
}
},
"restoreLastTime": {
"description": "paella-core >= 1.18. Sets whether to remember the last known time instant for a particular video, in case it is reloaded.",
"type": "object",
"properties": {
"enabled": {
"description": "If true, the last known time instant for the video will be remembered.",
"type": "boolean",
"default": true
},
"remainingSeconds": {
"description": "Used to prevent the current instant of time from being restored, whenever there are less than 'remainingSeconds' seconds left in the video.",
"type": "number",
"default": 5
}
}
},
"dynamicLayout": {
"description": "Dynamic layouts intherit many properties from the video container, so a section as been added in the configuration to control them.",
"type": "object",
"properties": {
"landscapeVerticalAlignment": {
"description": "defines the vertical alignment of videos when they are in landscape format.",
"type": "string",
"enum": [
"align-bottom",
"align-center",
"align-top"
]
},
"portraitHorizontalAlignment": {
"description": "defines the horizontal alignment of videos when they are in portrait format.",
"type": "string",
"enum": [
"align-left",
"align-center",
"align-right"
]
}
}
}
}
},
"buttonGroups": {
"description": "paella-core >= 1.22. Controls the generation of button groups. A button group is a plugin for grouping buttons within a drop-down panel",
"type": "array",
"items": {
"$ref": "https://paellaplayer.upv.es/schema/v1/button-group-plugin.schema.json"
}
},
"cookieConsent": {
"description": "paella-core >= 1.8. Defines the cookie consent settings required by the European General Data Protection Regulation, to be used in the paella-core cookie APIs.",
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"description": "This is the cookie type identifier to be used in the API to identify the type of cookie to be written. For example, 'necessary'",
"type": "string"
},
"title": {
"description": "It is a name that identifies this type of cookie, which must be human-readable and translatable by the dictionary APIs.",
"type": "string"
},
"description": {
"description": "It is an explanatory text that tells the user for what purposes cookies of this type will be used.",
"type": "string"
},
"required": {
"description": "Indicates whether this type of cookie is mandatory for the operation of the player. If it is mandatory, the script APIs that use this type of cookie will always work and cannot be disabled.",
"type": "boolean",
"default": false
}
}
}
},
"plugins": {
"description": "is an object where the configuration parameters of each plugin are defined. The key of each sub object corresponds to the plugin identifier, and each sub object is its configuration.",
"type": "object",
"patternProperties": {
"^([a-z0-9]+\\.)+[a-z0-9]+$": {
"anyOf": [
{
"$ref": "https://paellaplayer.upv.es/schema/v1/plugin.schema.json"
},
{
"$ref": "https://paellaplayer.upv.es/schema/v1/button-group-plugin.schema.json"
},
{
"$ref": "https://paellaplayer.upv.es/schema/v1/button-plugin.schema.json"
},
{
"$ref": "https://paellaplayer.upv.es/schema/v1/menu-button-plugin.schema.json"
},
{
"$ref": "https://paellaplayer.upv.es/schema/v1/pop-up-button-plugin.schema.json"
},
{
"$ref": "https://paellaplayer.upv.es/schema/v1/canvas-button-plugin.schema.json"
},
{
"$ref": "https://paellaplayer.upv.es/schema/v1/video-layout-plugin.schema.json"
}
]
}
}
}
}
}