
Overview
| Level | Where to configure | Scope |
|---|---|---|
| Extension configuration | Admin → Settings → Extension configuration → VidPly | Entire TYPO3 installation |
| Site settings (Site Set) | Site Management → Sites → Settings or config/sites/<id>/settings.yaml | A single website |
| Settings for the privacy level | ‘List’ module → Privacy layer settings | Site-wide consent template for external services |
| Player (content element) | Page module → VidPly Player CE | One player instance on a page |
| Media record | List module → VidPly Media | Reusable 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):
| Setting | Type | Default | Description |
|---|---|---|---|
allowedVideoDomains | String | (empty) | Whitelist for external video URLs (separated by commas or line breaks; wildcards are supported) |
allowedAudioDomains | String | (empty) | Whitelist for external audio URLs |
playIcon | String | (empty) | Custom image for the play button: EXT:… Path, site-relative path or HTTPS URL |
allowedPlayIconDomains | String | (empty) | Whitelist for external URLs of playback icons (required when using HTTPS icons) |
playPosition | Selection | center | Position of the playback overlay: centre, corners |
useCssIcons | bool | 0 | Use CSS-based icons for the control bar (enables customisation of the design via CSS variables) |
theme | Selection | dark | Player interface: dark or light |
themeSyncEnabled | bool | 0 | Synchronise 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.
| Setting | Type | Default value | Description |
|---|---|---|---|
mpcVidply.screenReaderAnnouncements | bool | true | Display of play/pause, volume, mute, subtitles, full-screen mode and speed changes in the player’s live pane |
mpcVidply.resumePlayback | bool | false | Save 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:
| Setting | Type | Description |
|---|---|---|
| Heading | String | Optional heading above the privacy policy text |
| Introductory text | Text | Text before the link to the privacy policy |
| Closing text | Text | Text following the link to the privacy policy |
| Link to the privacy policy | String | URL to the page containing the privacy policy |
| Link text | String | Text for the link to the privacy policy |
| Button label | String | Accessible 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:
| Setting | Type | Default | Description |
|---|---|---|---|
| Layout | Selection | default | default, episodeor episodes (Layouts for episode cards) |
| Position in the playlist | Select | below | Playlist section in the player: below or right (Desktop; always at the bottom on mobile devices). Ignored for episode cards with an episode list |
| Options | Bitmask | 328 | Player functions (see below) |
| Continue from last position | Toggle | Off | Override site-wide playback resumption on a per-item basis |
| Show track information | Toggle | On | ‘Now Playing’ header in the player for individual elements |
| Volume | Float | 0.8 | Initial volume (0–1) |
| Playback speed | Float | 1.0 | Initial speed (0.25–2x) |
| Language | String | Automatic | UI language |
Player options (bitmask)
| Bit | Value | Option | Default |
|---|---|---|---|
| 0 | 1 | Autoplay | Off |
| 1 | 2 | Repeat | Off |
| 2 | 4 | Steamed | Off |
| 3 | 8 | Controls | On |
| 4 | 16 | Standard captions | Off |
| 5 | 64 | Keyboard | On |
| 6 | 256 | Automatic line feed | On |
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:
| Setting | Description |
|---|---|
| Media type | Video, Audio, YouTube, Vimeo, SoundCloud |
| Media file/URL | Source file or URL |
| Title | Track title |
| Slug | URL slug for the link to the details in the list view (automatically generated from the title) |
| Artist | Name of the artist/performer |
| Description | Short text (list cards, player) |
| Detailed description | RTE text for the details page and the information on the episode card |
| Duration | Length in seconds |
| Poster | Thumbnail |
| Categories | TYPO3 categories (list view chips + category-based rows) |
| Subtitles | WebVTT/SRT subtitle files |
| Chapters | WebVTT/SRT chapter files |
| Enable transcript | Transcript flag per audio track |
| Audio description | Described video (MP4/WebM switch) or VTT language via audio_description_mode |
| Audio description mode | auto | swap | vtt_speech — Delivery method for spoken audio description |
| Sign language | Video with sign language overlay |
| Hide playback speed button | Hide playback speed control for this track (per track in playlists) |
| Hide help on keyboard shortcuts | Hide the help button for this item (per track in playlists) |
| Allow download | Show download button (uses progressive source where available) |
| Enable floating player | Custom, 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.