diff --git a/typo3/sysext/core/Classes/Resource/Rendering/VimeoRenderer.php b/typo3/sysext/core/Classes/Resource/Rendering/VimeoRenderer.php index ba480cac6870..739551d2b6c8 100644 --- a/typo3/sysext/core/Classes/Resource/Rendering/VimeoRenderer.php +++ b/typo3/sysext/core/Classes/Resource/Rendering/VimeoRenderer.php @@ -127,8 +127,16 @@ protected function collectOptions(array $options, FileInterface $file) */ protected function createVimeoUrl(array $options, FileInterface $file) { - $videoId = $this->getVideoIdFromFile($file); + $videoIdRaw = $this->getVideoIdFromFile($file); + $videoIdRaw = GeneralUtility::trimExplode('/', $videoIdRaw, true); + + $videoId = $videoIdRaw[0]; + $hash = $videoIdRaw[1] ?? null; + $urlParams = []; + if (!empty($hash)) { + $urlParams[] = 'h=' . $hash; + } if (!empty($options['autoplay'])) { $urlParams[] = 'autoplay=1'; // If autoplay is enabled, enforce muted=1, see https://developer.chrome.com/blog/autoplay/ diff --git a/typo3/sysext/core/Tests/Unit/Resource/Rendering/VimeoRendererTest.php b/typo3/sysext/core/Tests/Unit/Resource/Rendering/VimeoRendererTest.php index 84336958e690..709785eed6a7 100644 --- a/typo3/sysext/core/Tests/Unit/Resource/Rendering/VimeoRendererTest.php +++ b/typo3/sysext/core/Tests/Unit/Resource/Rendering/VimeoRendererTest.php @@ -227,7 +227,7 @@ public function renderOutputWithPrivateVimeoCodeIsCorrect(): void $fileResourceMock = $this->createMock(File::class); self::assertSame( - '', + '', $subject->render($fileResourceMock, '300m', '200') ); } @@ -247,7 +247,7 @@ public function renderOutputIsEscaped(): void $fileResourceMock = $this->createMock(File::class); self::assertSame( - '', + '', $subject->render($fileResourceMock, '300m', '200') ); }