mpc / mpc-vidply
Universal, Accessible Video & Audio Player for TYPO3. Includes support for HTML5 video/audio, YouTube, Vimeo, SoundCloud, HLS and DASH streaming, playlists, captions, transcripts, sign language, and WCAG 2.2 AA accessibility compliance.
Package info
github.com/MatthiasPeltzer/mpc-vidply
Type:typo3-cms-extension
pkg:composer/mpc/mpc-vidply
Requires
- php: ^8.2
- typo3/cms-core: ^13.4 || ^14.3
- typo3/cms-extbase: ^13.4 || ^14.3
- typo3/cms-fluid: ^13.4 || ^14.3
Requires (Dev)
- codeception/codeception: ^5.2
- codeception/module-asserts: ^3.0
- codeception/module-cli: ^2.0
- codeception/module-webdriver: ^4.0
- phpstan/extension-installer: ^1.4
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^10.5 || ^11.5
- saschaegerer/phpstan-typo3: ^3.0
- typo3/cms-backend: ^13.4 || ^14.3
- typo3/cms-install: ^13.4 || ^14.3
- typo3/coding-standards: ^0.8.0
- typo3/testing-framework: ^9.3
Suggests
- typo3/cms-fluid-styled-content: Optional: use site-package layoutRootPaths overrides for themed frame/header partials
Provides
None
Conflicts
None
Replaces
None
- dev-main
- 1.2.35
- 1.2.34
- 1.2.33
- 1.2.32
- 1.2.31
- 1.2.30
- 1.2.29
- 1.2.28
- 1.2.27
- 1.2.26
- 1.2.25
- 1.2.24
- 1.2.23
- 1.2.22
- 1.2.21
- 1.2.20
- 1.2.19
- 1.2.18
- 1.2.17
- 1.2.16
- 1.2.15
- 1.2.14
- 1.2.13
- 1.2.12
- 1.2.11
- 1.2.10
- 1.2.9
- 1.2.8
- 1.2.7
- 1.2.6
- 1.2.5
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.17
- 1.1.16
- 1.1.15
- 1.1.14
- 1.1.13
- 1.1.12
- 1.1.11
- 1.1.10
- 1.1.9
- 1.1.8
- 1.1.7
- 1.1.5
- 1.1.4
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.54
- 1.0.53
- 1.0.51
- 1.0.50
- 1.0.49
- 1.0.48
- 1.0.47
- 1.0.46
- 1.0.45
- 1.0.44
- 1.0.43
- 1.0.42
- 1.0.41
- 1.0.40
- 1.0.39
- 1.0.38
- 1.0.37
- 1.0.36
- 1.0.35
- 1.0.34
- 1.0.33
- 1.0.32
- 1.0.31
- 1.0.30
- 1.0.29
- 1.0.28
- 1.0.27
- 1.0.26
- 1.0.25
- 1.0.24
- 1.0.23
- 1.0.22
- 1.0.21
- 1.0.20
- 1.0.19
- 1.0.18
- 1.0.17
- 1.0.16
- 1.0.15
- 1.0.14
- 1.0.13
- v1.0.12
- v1.0.11
- v1.0.10
- v1.0.9
- v1.0.8
- v1.0.7
- v1.0.6
- v1.0.5
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
This package is auto-updated.
Last update: 2026-09-12 10:05:45 UTC
README
Universal, Accessible Video & Audio Player for TYPO3. Includes support for HTML5 video/audio, YouTube, Vimeo, SoundCloud, HLS and DASH streaming, playlists, captions, transcripts, sign language, and WCAG 2.2 AA accessibility compliance.
Features
- Privacy-First External Services - YouTube, Vimeo, SoundCloud with GDPR-compliant consent layer
- Site-Wide Privacy Settings - Centralized backend configuration for privacy layer texts, links, and headlines
- Media Library - Reusable media records across your site
- Auto Playlists - 2+ items automatically create playlists
- Full Accessibility - Captions, chapters, audio description, sign language, keyboard controls
- HLS Streaming - Adaptive bitrate streaming with hls.js 1.7.3 (Chrome / Firefox / Edge / desktop Safari) and native HLS on iOS / iPadOS — both paths integrate with VidPly's captions, transcript and quality menus
- DASH Streaming - MPEG-DASH via dash.js 5.2.1 (modern UMD) with adaptive quality and subtitles (integrated into video/audio types)
- Import from URL - Paste a media URL in the backend to auto-detect type, attach online media, and pre-fill title, artist, and poster
- SoundCloud Support - GDPR consent layer, then SoundCloud Widget playback (optional developer opt-in for unified VidPly controls — see PrivacyLayer.md)
- Buffering Spinner - Centered loading spinner shown automatically while the media is buffering
- Optional Download Button - Per-media toggle; progressive sources (MP4/WebM/MP3) are used automatically; for HLS/DASH-only items add a progressive fallback file
- Floating Player - Optional custom Picture-in-Picture: draggable, resizable in-page window (per media record)
- Modern Player - Responsive, browser PiP, quality switching, playback speed, keyboard-shortcuts help overlay
- Structured Data (JSON-LD) -
VideoObject/AudioObject(andItemListon gallery pages) for SEO rich results — see Developers Quickstart - TypeScript Codebase - The bundled VidPly player is now authored in strict TypeScript with shipped
.d.tsdeclarations - Conditional Asset Loading - Only loads JavaScript needed for your media types
- Listview & Detail Page — Add a VidPly Listview content element for one or more browsable rows (horizontal shelf or responsive grid), optional per-row browser pagination and sort control, category chips on cards, and links to a VidPly Detail page with short + long (RTE) description, categories, and slug or
?media=URLs; connected translations follow the default-language row configuration (seeDocumentation/Listview.md)
Quick Start
Install
composer require mpc/mpc-vidply
- Database Update → Admin Tools → Maintenance → Analyze Database Structure
- Include Site Set → Site Management → Sites → Your Site → Sets → Add
mpc/mpc-vidply
(or addmpc/mpc-vidplytodependenciesinconfig/sites/<site>/config.yaml) - Clear Caches
Create Media
List Module → VidPly Media
Fastest way: use Import from URL at the top of the form — paste a YouTube, Vimeo, SoundCloud, streaming (.m3u8 / .mpd), or allowlisted external MP4/MP3 link. VidPly detects the type and pre-fills metadata. See the Editors Guide.
Or choose media type manually:
- Video - Upload MP4, WebM or add HLS/DASH streaming URLs (with progressive fallbacks)
- Audio - Upload MP3, OGG or add HLS/DASH streaming URLs (with progressive fallbacks)
- YouTube - Paste video URL
- Vimeo - Paste video URL
- SoundCloud - Paste track/set URL
Add Player to Page
Page Module → Add Content → VidPly Player — select one or more media records (2+ creates a playlist). See the Editors Guide for player options, captions, playlists, and privacy behaviour.
Build a Mediathek (Listview)
Add a VidPly Listview content element for browsable overview rows and a VidPly Detail page for single-media views (slug URLs, categories, long descriptions). Step-by-step: Listview & Detail.
Documentation
Start at the Documentation index for audience-based navigation (editors, administrators, developers).
| Guide | For |
|---|---|
| Editors Guide | Creating media, players, captions, privacy layer |
| Listview & Detail | Mediathek overview, detail pages, routing, i18n |
| Developers Quickstart | Installation, processors, TCA, tests, JSON-LD |
| Integrations | Vue/Swiper, dynamic content, CSP, mp-core |
| Settings Architecture | Extension, privacy, player, and media settings |
| PrivacyLayer.md | GDPR consent for YouTube, Vimeo, SoundCloud |
| HLS-Implementation.md | HLS & DASH streaming and CSP |
| AssetLoading.md | Conditional JavaScript loading |
| Partials.md | Fluid template overrides |
Troubleshooting
| Problem | See |
|---|---|
| Media or playlist issues | Editors Guide → Troubleshooting |
| Privacy layer / YouTube / Vimeo / SoundCloud | PrivacyLayer.md |
| HLS/DASH or CSP errors | HLS-Implementation.md |
| Player missing in Vue/Swiper slider | Integrations.md |
| Listview routing or slugs | Listview.md |
Requirements
- TYPO3: 13.4+ or 14.x (Core, Fluid, Extbase)
- PHP: 8.2+ (8.3 recommended)
- Composer: Required
- Browsers: Chrome 90+, Firefox 88+, Safari 14+
fluid_styled_content is optional. VidPly registers its own frontend content-rendering TypoScript (lib.mpcVidplyContentElement) and ships a compatible Default layout for tt_content headers and frame classes.
License
GNU General Public License v2.0 or later
Author
Matthias Peltzer