deuxhuithuit / craft-cloudflare-stream
Upload your videos assets to Cloudflare Stream from Craft CMS assets interface
Installs: 241
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 1
Open Issues: 2
Type:craft-plugin
Requires
- php: ^8.1|^8.2|^8.3
- craftcms/cms: ^4.4.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.22
README
This plugin offers a easy way to upload your videos assets from Craft CMS to Cloudflare stream.
Installation:
- Install with composer
composer require deuxhuithuit/craft-cloudflare-stream
- Install in craft
craft plugin/install cloudflare-stream
-
Add your account id and api token in the settings.
-
Create a video stream Field and add it to your Asset data model.
-
When editing an asset, you can now opt-in into sending videos in Cloudflare Stream.
-
If your are using twig, with a field named
stream
you can access the stream data like so:
{% set value = asset.stream %} <video controls style="width: 100%" poster="{{ value.thumbnail }}"> {% if value.mp4Url and value.completed %} <source src="{{ value.mp4Url }}" type="video/mp4"> {% endif %} {% if value.playback.hls %} <source src="{{ value.playback.hls }}" type="application/x-mpegURL"> {% endif %} {% if value.playback.dash %} <source src="{{ value.playback.dash }}" type="application/dash+xml"> {% endif %} </video>
- If you are using graphql, there is a type registered to make it easy to request the proper data.
query MyQuery { asset(site: ["en"], volume: "stream") { url kind extension filename ... on stream_Asset { videoStream { uid name size thumbnailTimestampPct thumbnail preview hls dash mp4 ready completed watermark { uid created downloadedFrom height name opacity padding position scale size width } input { width height } } } } }
- You can also mass re-upload everything via Craft's cli
./craft cloudflare-stream/reupload
This extension uses Craft's Queue system, so make sure it works properly. Please make sure that Craft's max upload limit is also properly set.
Made with ❤️ in Montréal.
(c) Deux Huit Huit