VidPly is a universal, accessible video and audio player extension for TYPO3 13/14, based on the open-source vidply player. It offers comprehensive support for HTML5 media, YouTube, Vimeo, SoundCloud and HLS streaming, with a privacy-focused approach and compliance with the WCAG 2.1 AA accessibility guidelines.
System requirements
- TYPO3 13.4+ or 14.x
- PHP 8.2 or higher (8.3 recommended)
- Composer installation recommended (but not required)
- Modern browsers: Chrome 90+, Firefox 88+, Safari 14+
Key features
- External services with data protection as the top priority – YouTube, Vimeo, SoundCloud with GDPR-compliant consent form
- Media library – Reusable media assets across your entire website
- Automatic playlists – two or more items automatically create playlists
- Full accessibility – subtitles, chapters, audio description, sign language, keyboard control
- HLS streaming – Adaptive bitrate streaming with hls.js
- Modern player – Responsive design, picture-in-picture, quality switching, playback speed
Supported media types
| Type | Source | Privacy level | Formats/Notes |
|---|---|---|---|
| HTML5 video | Upload/URL | No | MP4, WebM, OGG |
| HTML5 audio | Upload/URL | No | MP3, OGG, WAV |
| YouTube | Video URL | Yes | GDPR consent required |
| Vimeo | Video URL | Yes | GDPR consent required |
| SoundCloud | Track/set URL | Yes | GDPR consent required |
| HLS | .m3u8 URL | No | Adaptive bitrate streaming |
Data protection level (GDPR compliance)
For external services such as YouTube, Vimeo and SoundCloud, VidPly takes a privacy-oriented approach:
- Pre-consent – Only a poster image and the play button are displayed.
- No external requests – No tracking scripts or cookies are loaded until the user interacts
- Clear privacy notices – Users are informed about data transmission to external services
- One-click activation – The video is loaded and played immediately after consent is given
- Multilingual support – Privacy notices available in German and English
Privacy-optimised embedding
- YouTube uses the privacy-optimised domain
youtube-nocookie.com - Clear player interface with minimal branding
- No recommendations for similar videos
Accessibility features
VidPly offers comprehensive support for accessibility in accordance with WCAG 2.1 AA:
Captions and subtitles
- Support for WebVTT files (.vtt)
- Support for multiple languages
- Configurable track types: subtitles, captions, descriptions
- Specification of language code and name
Chapters
- WebVTT-based chapter markers
- Visual chapter navigation
- Jump to specific sections
Audio description
- Alternative audio track for visually impaired users
- Switch between standard and described video
Sign language
- Overlay with sign language interpretation
- Picture-in-picture display
Transcripts
- Automatically generated, searchable transcripts from subtitles
- Clickable text lines to jump to specific points
- Optional display of the transcript window
Player options
| Option | Default | Description |
|---|---|---|
| Controls | On | Show player controls |
| Keyboard | On | Enable keyboard shortcuts |
| Responsive | On | Responsive resizing |
| Automatic indentation | On | Automatically play the next item in the playlist |
| Autoplay | Off | Start automatically |
| Repeat | Off | Repeat content |
| Transcript | Off | Show transcript window |
Keyboard shortcuts
- Space bar or K – Play/Pause
- M – Mute/Unmute
- F – Full screen
- C – Turn subtitles on/off
- Left/right arrow – Fast-forward/rewind 10 seconds
- Up/Down arrow – Increase/decrease volume by 10%
- Home – Go to the beginning
- End – Go to the end
Playlist functionality
- Automatic creation – Selecting two or more media items creates a playlist
- Visual panel – Thumbnail list with track navigation
- Automatic skip – Automatically plays the next track
- Repeat option – Repeat all tracks
- Drag & drop ordering – Arrange items in any order
HLS streaming
- Full HLS support via the hls.js library
- Works in all modern browsers
- Adaptive bitrate streaming
- Compatible with Content Security Policy (CSP)
- Ideal for live streams and long-form content
Conditional loading of assets
VidPly intelligently loads only the JavaScript required for specific media types:
- External services (YouTube, Vimeo, SoundCloud) – Only PrivacyLayer.js (~5 KB)
- Local video/audio files – VidPlay core + PlaylistInit (~180 KB)
- HLS streaming – Only adds hls.js if .m3u8 streams are detected
- Playlists – PlaylistInit.js is only loaded for 2 or more items.
This results in a reduction in JavaScript overhead for external services of up to 97%.
Template structure
Modular Fluid template parts for customisation:
VidPly/Assets.html– Asset registrationVidPly/VideoSources.html– Rendering of video sourcesVidPly/AudioSources.html– Playback of audio sourcesVidPly/Tracks.html– Subtitle and chapter tracksVidPly/MetadataScripts.html– Accessibility metadataVidPly/PrivacyLayer.html– Consent for external services
Two-step workflow
- Create media recordings – Create reusable media assets in the VidPly media library
- Add player to page – Insert a VidPly Player content element and select your media.
Installation
composer require mpc/mpc-vidply
After installation
- Run the database update via the maintenance module.
- Insert the static template “VidPly Player (mpc_vidply)” in the Site Settings or on the home page in the root template.
- Clear all caches.
Licence and author
VidPly is released under the GNU General Public License v2.0 or later. Developed by Matthias Peltzer.