Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/apivideo/api.video-strapi-plugin

A Strapi plugin for managing uploads to api.video.
https://github.com/apivideo/api.video-strapi-plugin

strapi strapi-cms strapi-plugin strapi4 strapicms video video-processing

Last synced: 14 days ago
JSON representation

A Strapi plugin for managing uploads to api.video.

Awesome Lists containing this project

README

        


Logo - api.video


Strapi v4 - api.video uploader


A powerful Strapi plugin to easily manage your videos and integrate them in your project.


Twitter Badge
Pull Requests Badge

---


UI preview


This plugin provides the ability to upload content via a file to upload to api.video.


### Table of Contents

- [✨ Features](#-features)
- [⏳ Installation](#-installation)
- [Via Strapi Marketplace](#via-strapi-marketplace)
- [Via command line](#via-command-line)
- [🖐 Requirements](#-requirements)
- [🔧 Configuration](#-configuration)
- [👤 Permissions](#-permissions)
- [💾 Metadata](#-metadata)
- [🤝 Contributing](#-contributing)
- [📚 References](#-references)

## ✨ Features

- **Upload videos** using a file to [api.video](https://api.video) inside of [Strapi](https://strapi.io/)
- **Manage assets** with the plugin's asset grid and pagination capabilities
- **Search** for assets using title
- **Preview content** using our player (powered by the [api.video-player-react](https://github.com/apivideo/api.video-react-player) package)
- **Delete assets** which result in the [api.video](https://api.video) Asset also being deleted

## ⏳ Installation

### Via Strapi Marketplace

We're available on the [Strapi Marketplace](https://market.strapi.io/plugins/@api.video-strapi-uploader-plugin).

### Via command line

(Use **yarn** to install this plugin within your Strapi project (recommended). [Install yarn with these docs](https://yarnpkg.com/lang/en/docs/install/).)

```bash
yarn add @api.video/strapi-uploader-plugin@latest
```

After successful installation you've to re-build your Strapi instance. To archive that simply use:

```bash
yarn build
yarn develop
```

or just run Strapi in the development mode with `--watch-admin` option:

```bash
yarn develop --watch-admin
```

The **api-video-uploader** plugin should appear in the **Plugins** section of Strapi sidebar after you run app again.

As a next step you must configure your the plugin by the way you want to. See [**Configuration**](#🔧-configuration) section.

All done. Enjoy 🎉

## 🖐 Requirements

**api.video**

- A [api.video](https://api.video) account
- You will only an **Api Key** which can be created in the [api.video Dashboard](https://dashboard.api.video/apikeys)

Complete installation requirements are exact same as for Strapi itself and can be found in the documentation under [Installation Requirements](https://docs.strapi.io/developer-docs/latest/getting-started/introduction.html).

**Minimum environment requirements**

- Node.js `>=14.19.1 <=18.x.x`
- NPM `>=6.x.x`

In our minimum support we're following [official Node.js releases timelines](https://nodejs.org/en/about/releases/).

**Supported Strapi versions**:

- Strapi v4.5.1 (recently tested)
- Strapi v4.x

> This plugin is designed for **Strapi v4** and is not working with v3.x.

**We recommend always using the latest version of Strapi to start your new projects**.

## 🔧 Configuration

In order for this plugin to communicate with [api.video](https://api.video), a configuration needs to be set for the plugin before it can be used.

With your **Api Key**, navigate to the Settings view within [Strapi](https://strapi.io/) and click the "General" section under **API.VIDEO UPLOADER**.

On this view, enter your Api Key and click the Save button.


Plugin configuration

To resolve **Content Security Policy directive** issue and to visualize the thumbnail and the video, we need to configure external ressource like `embed.api.video`and `cdn.api.video/vod/`. Modify the `middlewares.js` file like below:

```javascript
// config/middlewares.js
module.exports = ({ env }) => [
'strapi::errors',
{
name: 'strapi::security',
config: {
contentSecurityPolicy: {
useDefaults: true,
directives: {
'connect-src': ["'self'", 'https:'],
'img-src': ["'self'", 'data:', 'blob:', 'embed.api.video', 'cdn.api.video/vod/'],
'frame-src': ["'self'", 'data:', 'blob:', 'embed.api.video'],
upgradeInsecureRequests: null,
},
},
},
},
'strapi::cors',
'strapi::poweredBy',
'strapi::logger',
'strapi::query',
'strapi::body',
'strapi::favicon',
'strapi::public',
]
```

## 👤 Permissions

With the Community Edition of [Strapi](https://strapi.io/), any user with the role of super administrator can configure and use the plugin.

With Strapi Enterprise the permissions can be fine tuned according to the role of users. This is done in the **Roles** view in the **Administration Panel**.

## 💾 Metadata

By default we send the value `Strapi`as `Upload source` to keep track. This value is set by default and can't be changed.

## 🤝 Contributing

Contributions, issues and feature requests are welcome!

If you encounter an error or have questions, please feel free to file inquiries on the [Issues](https://github.com/apivideo/api.video-strapi-plugin/issues) page for `@api.video/strapi-uploader-plugin`.

## 📚 References

- [api.video](https://docs.api.video/docs/apivideo-api-reference)
- [strapi.io](https://strapi.io/)