Jump to content

Recruitment architecture

Where to find the configuration: extension-wide default settings, website-wide privacy settings, player options for content elements, and media-related record fields.

VidPly TYPO3 Extension Logo

Overview

LevelWhere to configureScope
Extension configurationAdmin → Settings → Extension configuration → VidPlyEntire TYPO3 installation
Settings for the data protection level‘List’ module → Privacy layer settingsSite-wide consent form for external services
Player (content element)Page module → VidPly Player CEOne player instance on a page
Media recordList module → VidPly MediaReusable element (any player/any list view)

See also “Integrations.md” for mp-core website settings that affect the JSON-LD output.

Current architecture

Extension configuration (global)

Configured under ‘Admin’ → ‘Settings’ → ‘Extension Configuration’ → ‘mpc_vidply’ (ext_conf_template.txt):

SettingTypeDefaultDescription
allowedVideoDomainsString(empty)Whitelist for external video URLs (separated by commas or line breaks; wildcards are supported)
allowedAudioDomainsString(empty)Whitelist for external audio URLs
playIconString(empty)Custom image for the play button: EXT:… Path, site-relative path or HTTPS URL
allowedPlayIconDomainsString(empty)Whitelist for external URLs of playback icons (required when using HTTPS icons)
playPositionSelectioncenterPosition of the playback overlay: centre, corners
useCssIconsbool0Use CSS-based icons for the control bar (enables customisation of the design via CSS variables)
themeSelectiondarkPlayer interface: dark or light
themeSyncEnabledbool0Synchronise player design with the site’s light/dark mode (body class + custom events)

These settings apply to every front-end player, unless they are overridden in Fluid/TypoScript.

Privacy layer settings (tx_mpcvidply_privacy_settings)

Site-wide settings for the privacy layer of external services:

SettingTypeDescription
HeadingStringOptional heading above the privacy policy text
Introductory textTextText before the link to the privacy policy
Closing textTextText following the link to the privacy policy
Link to the privacy policyStringURL to the page containing the privacy policy
Link textStringText for the link to the privacy policy
Button labelStringAccessible label for the play button

Available for YouTube, Vimeo and SoundCloud. Supports multilingual content via sys_language_uid. Empty fields use the translations from the language files.

Player settings (tt_content)

Global settings that apply to the entire player instance:

SettingTypeDefaultDescription
OptionsBit mask328Player functions (see below)
VolumeFloat0.8Initial volume (0–1)
Playback speedFloat1.0Initial speed (0.25–2x)
LanguageStringAutoUI language

Player options (bitmask)

BitValueOptionDefault
01AutoplayOff
12RepeatOff
24MutedOff
38ControlsOn
416Standard captionsOff
564KeyboardOn
6256Automatic line feedOn

Default: 8 + 64 + 256 = 328

Notes:

  • The customisable size is always enabled (no toggle button).
  • The transcript display is controlled on a per-media-record basis (tx_mpcvidply_media.enable_transcript). The transcript user interface is available if at least one selected item supports it.

Settings for media items (tx_mpcvidply_media)

Settings per item that are specific to each media record:

SettingDescription
Media typeVideo, Audio, YouTube, Vimeo, SoundCloud
Media file/URLSource file or URL
TitleTrack title
SlugURL slug for the redirect to the details in the list view (generated automatically from the title)
ArtistName of the artist
DescriptionShort text (list cards, player)
Detailed descriptionRTE text for the details page
DurationDuration in seconds
PosterThumbnail
CategoriesTYPO3 categories (list view chips + category-based rows)
SubtitlesWebVTT/SRT subtitle files
ChaptersWebVTT/SRT chapter files
Enable transcriptTranscript flag per track
Audio descriptionDescribed video (MP4/WebM switch) or VTT language via audio_description_mode
Audio description modeauto | swap | vtt_speech — Delivery method for spoken audio description
Sign languageVideo with sign language overlay
Hide speed controlHide playback speed control for this item (per track in playlists)
Hide keyboard shortcut helpHide the help button for this item (per track in playlists)
Allow downloadShow download button (uses progressive source where available)
Enable floating playerCustom, movable PiP window (only for players with a single track)

Best practices

Extension configuration (installation-wide)

Use these settings for branding and security standards, which should not vary from page to page:

  • Permitted external media domains
  • Default theme (dark/light) and page theme synchronisation
  • Custom playback icon for privacy overlay and player
  • CSS icon mode for integration into the design system

Privacy overlay settings (site-wide)

Use these for settings that should be consistent across all external services:

  • Privacy policy text
  • Links to policies
  • Button labels
  • Multilingual translations

Player level (global)

Used for settings that should be consistent across all tracks:

  • User interface behaviour (controls, keyboard)
  • Initial state (volume, speed)
  • Playlist behaviour (automatic playback)

Media level (per item)

Use this option for settings that are specific to the content in question:

  • Source files/URLs and slug
  • Metadata (title, artist, descriptions, categories)
  • Accessibility features (subtitles, chapters, AD, sign language)
  • Visual elements (poster)
  • Settings toggles per item (download, floating player, speed/hide help)

Reason

This separation offers:

  • Consistency – A consistent user experience regarding data protection across all external services
  • Centralisation – data protection texts are managed in one place
  • Multilingualism – Data protection settings can be translated for each language
  • Flexibility – Content can be customised on a per-element basis
  • Maintainability – A clear distinction between site-wide, global and local settings
  • Reusability – Media elements work in different contexts

Future considerations

Possible improvements:

  • Default labelling per element (for multilingual content)
  • Overrides for ‘Loop’ and ‘Mute’ per element (some functions for playlist titles are already available to improve speed and the visibility of help)
  • Template overrides for custom use cases

The current architecture is robust and complies with TYPO3 best practices.

Share page