sitegeist / assetsource-3qvideo
Neos Asset Source for 3Q Videos
Installs: 7 891
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 4
Forks: 0
Open Issues: 0
Type:neos-package
Requires
- neos/neos: ^7.0 || ^8.0 || dev-master
This package is auto-updated.
Last update: 2024-10-29 15:01:32 UTC
README
A Neos Asset Source for 3QVideo (https://3q.video/). The videos are not actually imported once selected. Instead a metafile is created with just the metadata needed for rendering a player.
Authors & Sponsors
- Søren Malling - soren@websupply.dk
- Martin Ficzel - ficzel@sitegeist.de
The development and the public-releases of this package is generously sponsored by http://www.sitegeist.de.
Setup
Install composer package
composer require sitegeist/assetsource-3qvideo
Configure asset source
Configure the asset source with the following properties, in your Settings.yaml
- either global or in a site package
Neos:
Media:
assetSources:
3qvideo:
assetSource: 'Sitegeist\AssetSource\ThreeQVideo\AssetSource\ThreeQVideoAssetSource'
assetSourceOptions:
label: '3Q Video'
description: ' 3Q Video asset source'
apiKey: <api-key>
projectId: <project-id>
Use the assets in your own project
The package contains a Mixin for selecting 3Q Videos and a presentational component for rendering the videoplayer. To actually use the building blocks in your own project you have to define a NodeType with configuration and rendering.
NodeTypes.3QVideo.yaml:
'Vendor.Site:Content.3QVideo':
ui:
label: '3Q Video'
icon: video
superTypes:
'Neos.Neos:Content'
'Sitegeist.AssetSource.3QVideo:3QVideo': true
Content.3QVideo.fusion:
prototype(Vendor.Site:Content.3QVideo) < prototype(Neos.Neos:ContentComponent) {
asset = ${q(node).property('3qvideo')}
renderer = Sitegeist.AssetSource.3QVideo:VideoPlayer {
playoutId = ${ThreeQVideo.playoutIdForAsset(props.asset)}
playerId = ${'video-' + node.identifier}
muted = ${props.muted ? props.muted : true}
autoplay = ${props.autoplay ? props.autoplay : false}
loop = ${props.loop ? props.loop : false}
controls = ${props.controls ? props.controls : true}
}
}
Acknowledgements
Inspired by the format of @bwaidelich and the Pimcore Asset source