Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/punktde/cloudflare-stream

Connects the Neos asset management to the cloudflare stream service
https://github.com/punktde/cloudflare-stream

cloudflare hacktoberfest neos neoscms streaming video

Last synced: 3 months ago
JSON representation

Connects the Neos asset management to the cloudflare stream service

Awesome Lists containing this project

README

        

# PunktDe.Cloudflare.Stream

[![Latest Stable Version](https://poser.pugx.org/punktDe/cloudflare-stream/v/stable)](https://packagist.org/packages/punktDe/cloudflare-stream) [![Total Downloads](https://poser.pugx.org/punktDe/cloudflare-stream/downloads)](https://packagist.org/packages/punktDe/cloudflare-stream) [![License](https://poser.pugx.org/punktDe/cloudflare-stream/license)](https://packagist.org/packages/punktDe/cloudflare-stream)

When videos are uploaded to Neos, this package automatically uploads these videos to the [cloudflare stream service](https://www.cloudflare.com/de-de/products/cloudflare-stream/) and stores the provided DASH and HLS URIs, as well as the thumbnail URL for rendering them in the frontend.
An Eel helper is provided, to retrieve this meta data by a given video to use it in the video player of your choice.

## Installation

Install the package via composer

$ composer require punktde/cloudflare-stream

## Configuration

Just configure you cloudflare credentials:

PunktDe:
Cloudflare:
Stream:
cloudflare:
authentication:
accountIdentifier: ''
token: ''
transfer:
# Proxy to reach the cloudflare API
proxyUrl: ''

## Get Stream meta data using the provided eelHelper

In your custome project code, add a node type with a video ptoperty to select or upload a local video asset. Access the cloudflare stream meta data using the `Stream.getVideoMetaData(videoObject)` eelHelper method.

**Example Fusion code**

prototype(Vendor.Project:Content.Video) < prototype(Neos.Fusion:Component) {

video = ${q(node).property('video')}
streamMetaData = ${Stream.getVideoMetaData(this.video)}

@if.videoSelected = ${Type.isObject(this.video)}

renderer = afx`

CloudflareUid{props.streamMetaData.cloudflareUid}
Thumbnail
HLS{props.streamMetaData.hlsUri}
DASH{props.streamMetaData.dashUri}

`
}

## Provided Commands

| Command | Description |
|--------------------------|-------------------------------------------|
| `cloudflare:listvideos ` | List all uploaded videos for that account |
| `cloudflare:deletevideo `| Delete a video from cloudflare |
| `cloudflare:uploadAll` | Upload all existing videos to cloudflare |