diff --git a/Classes/ViewHelpers/Format/SecondsToISO8601ViewHelper.php b/Classes/ViewHelpers/Format/SecondsToISO8601ViewHelper.php
new file mode 100644
index 0000000..84e3a3a
--- /dev/null
+++ b/Classes/ViewHelpers/Format/SecondsToISO8601ViewHelper.php
@@ -0,0 +1,62 @@
+ 60 * 60 * 24,
+ 'H' => 60 * 60,
+ 'M' => 60,
+ 'S' => 1,
+ ];
+
+ $pt = 'P';
+ $result = '';
+ foreach ($intervals as $tag => $divisor) {
+ $qty = floor($seconds / $divisor);
+ if (!$qty && $result === '') {
+ $pt = 'T';
+ continue;
+ }
+ $seconds -= $qty * $divisor;
+ $result .= $qty . $tag;
+ }
+
+ if ($result === '') {
+ $result = '0S';
+ }
+
+ return $pt . $result;
+ }
+}
diff --git a/Classes/ViewHelpers/VideoCreationDateViewHelper.php b/Classes/ViewHelpers/VideoCreationDateViewHelper.php
new file mode 100644
index 0000000..f0cfee4
--- /dev/null
+++ b/Classes/ViewHelpers/VideoCreationDateViewHelper.php
@@ -0,0 +1,75 @@
+registerArgument(
+ 'fileReference',
+ 'object',
+ 'FileReference to be used for creating the preview image'
+ );
+ }
+
+ /**
+ * Returns the absolute web path to the preview image.
+ *
+ * @param array $arguments
+ * @param \Closure $renderChildrenClosure
+ * @param RenderingContextInterface $renderingContext
+ * @return int
+ * @throws \UnexpectedValueException
+ */
+ public static function renderStatic(
+ array $arguments,
+ \Closure $renderChildrenClosure,
+ RenderingContextInterface $renderingContext
+ ): int {
+ /** @var FileReference|ExtbaseFileReference $fileReference */
+ $fileReference = $arguments['fileReference'];
+
+ // get Resource Object (non ExtBase version)
+ if (is_callable([$fileReference, 'getOriginalResource'])) {
+ // We have a domain model, so we need to fetch the FAL resource object from there
+ $fileReference = $fileReference->getOriginalResource();
+ }
+ if (!($fileReference instanceof FileInterface || $fileReference instanceof AbstractFileFolder)) {
+ throw new \UnexpectedValueException('Supplied file object type ' . get_class($fileReference) . ' must be FileInterface or AbstractFileFolder.', 1454252193);
+ }
+ $file = $fileReference->getOriginalFile();
+ if ($file->getProperty('content_creation_date')) {
+ return $file->getProperty('content_creation_date');
+ }
+ if ($file->getProperty('creation_date')) {
+ return $file->getProperty('creation_date');
+ }
+ if ($file->getProperty('crdate')) {
+ return $file->getProperty('crdate');
+ }
+ return 0;
+ }
+}
diff --git a/Classes/ViewHelpers/VideoPublicUrlViewHelper.php b/Classes/ViewHelpers/VideoPublicUrlViewHelper.php
new file mode 100644
index 0000000..bfa6abd
--- /dev/null
+++ b/Classes/ViewHelpers/VideoPublicUrlViewHelper.php
@@ -0,0 +1,73 @@
+registerArgument(
+ 'fileReference',
+ 'object',
+ 'FileReference to be used for creating the preview image'
+ );
+ }
+
+ /**
+ * Returns the absolute web path to the preview image.
+ *
+ * @param array $arguments
+ * @param \Closure $renderChildrenClosure
+ * @param RenderingContextInterface $renderingContext
+ * @return string
+ * @throws \UnexpectedValueException
+ */
+ public static function renderStatic(
+ array $arguments,
+ \Closure $renderChildrenClosure,
+ RenderingContextInterface $renderingContext
+ ): string {
+ /** @var FileReference|ExtbaseFileReference $fileReference */
+ $fileReference = $arguments['fileReference'];
+
+ // get Resource Object (non ExtBase version)
+ if (is_callable([$fileReference, 'getOriginalResource'])) {
+ // We have a domain model, so we need to fetch the FAL resource object from there
+ $fileReference = $fileReference->getOriginalResource();
+ }
+ if (!($fileReference instanceof FileInterface || $fileReference instanceof AbstractFileFolder)) {
+ throw new \UnexpectedValueException('Supplied file object type ' . get_class($fileReference) . ' must be FileInterface or AbstractFileFolder.', 1454252193);
+ }
+ $file = $fileReference->getOriginalFile();
+ $helper = OnlineMediaHelperRegistry::getInstance()->getOnlineMediaHelper($file);
+ if ($helper) {
+ $publicUrl = $helper->getPublicUrl($file);
+ } else {
+ $publicUrl = '';
+ }
+ return $publicUrl;
+ }
+}
diff --git a/Resources/Private/Extensions/fluid_styled_content/Partials/Media/Type/Video.html b/Resources/Private/Extensions/fluid_styled_content/Partials/Media/Type/Video.html
index 9295aed..7327a59 100644
--- a/Resources/Private/Extensions/fluid_styled_content/Partials/Media/Type/Video.html
+++ b/Resources/Private/Extensions/fluid_styled_content/Partials/Media/Type/Video.html
@@ -4,9 +4,11 @@
data-namespace-typo3-fluid="true">
+
+
-