
Overview
| Level | Where to configure | Scope |
|---|---|---|
| Extension configuration | Admin → Settings → Extension configuration → VidPly | Entire TYPO3 installation |
| Settings for the data protection level | ‘List’ module → Privacy layer settings | Site-wide consent form 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.
Privacy layer settings (tx_mpcvidply_privacy_settings)
Site-wide settings for the privacy layer 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 |
|---|---|---|---|
| Options | Bit mask | 328 | Player functions (see below) |
| Volume | Float | 0.8 | Initial volume (0–1) |
| Playback speed | Float | 1.0 | Initial speed (0.25–2x) |
| Language | String | Auto | UI language |
Player options (bitmask)
| Bit | Value | Option | Default |
|---|---|---|---|
| 0 | 1 | Autoplay | Off |
| 1 | 2 | Repeat | Off |
| 2 | 4 | Muted | 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 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:
| Setting | Description |
|---|---|
| Media type | Video, Audio, YouTube, Vimeo, SoundCloud |
| Media file/URL | Source file or URL |
| Title | Track title |
| Slug | URL slug for the redirect to the details in the list view (generated automatically from the title) |
| Artist | Name of the artist |
| Description | Short text (list cards, player) |
| Detailed description | RTE text for the details page |
| Duration | Duration 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 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 speed control | Hide playback speed control for this item (per track in playlists) |
| Hide keyboard shortcut help | 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 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.