Jump to content

Recruitment architecture

Configuration storage locations: extension-wide default settings, website-wide privacy settings, player options for content elements, and media-specific record fields.

VidPly TYPO3 Extension Logo

Overview

LevelWhere to configureScope
Extension configurationAdmin → Settings → Extension configuration → VidPlyEntire TYPO3 installation
Site settings (Site Set)Site Management → Sites → Settings or config/sites/<id>/settings.yamlA single website
Settings for the privacy level‘List’ module → Privacy layer settingsSite-wide consent template 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.

Website settings (per website)

Defined by the mpc/mpc-vidply Website Set (Configuration/Sets/mpc-vidply/settings.definitions.yaml). Editors and integrators can change them under ‘Site Management’ → ‘Websites’ → your website → ‘Settings’ → ‘VidPly Player’ → ‘Accessibility’; integrators can also retrieve them in config/sites/<id>/settings.yaml or as constants in TypoScript.

SettingTypeDefault valueDescription
mpcVidply.screenReaderAnnouncementsbooltrueDisplay of play/pause, volume, mute, subtitles, full-screen mode and speed changes in the player’s live pane
mpcVidply.resumePlaybackboolfalseSave playback position and offer to resume on the next visit (content elements may override this setting)
# config/sites/<id>/settings.yaml
mpcVidply.screenReaderAnnouncements: false
mpcVidply.resumePlayback: true
 
# available as TypoScript constants
{$mpcVidply.screenReaderAnnouncements}
{$mpcVidply.resumePlayback}
 

Disabling announcements suppresses the status messages that the player sends to assistive technologies (WCAG 4.1.3). Only do this if something else on the page is already announcing the same status – the player’s own prompts (help dialogue, sign language instructions for dragging and resizing) will continue to be spoken in all cases, as they are the only feedback for the action that triggered them.

Privacy level settings (tx_mpcvidply_privacy_settings)

Site-wide settings for privacy levels 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
LayoutSelectiondefaultdefault, episodeor episodes (Layouts for episode cards)
Position in the playlistSelectbelowPlaylist section in the player: below or right (Desktop; always at the bottom on mobile devices). Ignored for episode cards with an episode list
OptionsBitmask328Player functions (see below)
Continue from last positionToggleOffOverride site-wide playback resumption on a per-item basis
Show track informationToggleOn‘Now Playing’ header in the player for individual elements
VolumeFloat0.8Initial volume (0–1)
Playback speedFloat1.0Initial speed (0.25–2x)
LanguageStringAutomaticUI language

Player options (bitmask)

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

Default: 8 + 64 + 256 = 328

Notes:

  • The customisable size is always enabled (no option to toggle).
  • 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 enables 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 link to the details in the list view (automatically generated from the title)
ArtistName of the artist/performer
DescriptionShort text (list cards, player)
Detailed descriptionRTE text for the details page and the information on the episode card
DurationLength in seconds
PosterThumbnail
CategoriesTYPO3 categories (list view chips + category-based rows)
SubtitlesWebVTT/SRT subtitle files
ChaptersWebVTT/SRT chapter files
Enable transcriptTranscript flag per audio 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 playback speed buttonHide playback speed control for this track (per track in playlists)
Hide help on keyboard shortcutsHide 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 for branding and security standards that should not vary from page to page:

  • Permitted external media domains
  • Default ‘Dark’/‘Light’ theme and page theme synchronisation
  • Custom playback icon for privacy overlay and player
  • CSS icon mode for integration into the design system

Website settings (per website)

Used for policies that differ between websites within an installation:

  • Whether the player reports its status to screen readers
  • Whether visitors are offered the option to resume playback by default

Privacy level 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:

  • 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, hide speed/help)

Reason

This separation offers:

  • Consistency – A uniform 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 for each individual entry
  • Maintainability – 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 of the behaviour of playlist tracks is already in place to ensure the visibility of speed and help)
  • Template overrides for custom use cases

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

Share page