Skip to content

amplify-video client library that is purpose built for Amplify Video managed resources. It's a superset of the existing amplify.js libraries for video asset.

License

Notifications You must be signed in to change notification settings

trackit/amplify-video.js

Repository files navigation

amplify-video.js

amplify-video.js is an unofficial client library that is purpose built for Amplify Video managed resources. It's a superset of the existing amplify.js libraries for video asset.

Installation

$ npm install --save amplify-video.js
import Video from 'amplify-video.js';

Local development setup

$ npm install -g
$ npm run dev

and then

import Video from 'amplify-video.js/dist';

*npm run dev will watch for changes in your file compile your project based on tsconfig.json file

Tests

Unit-tests are located in unit-tests/ directory, all unit-tests must go here.

End-to-end tests are located in e2e/ directory, it contains a React Application and Cypress allowing us to test real use cases with the library simulating user interaction in a browser.

You can run unit-tests and end-to-end tests independently

Unit-tests only

$ npm run unit-test

If you want to watch changes in your files you can pass --watch to previous command.

$ npm run unit-test -- --watch

End-to-end tests only (no GUI)

$ npm run cypress

Both (unit & end-to-end tests)

$ npm test

For more information about end-to-end testing check README.md in e2e directory.

How to use

Configuration and registration

import Amplify from 'aws-amplify';
import Video from 'amplify-video.js/dist';
import awsconfig from './aws-exports';
import awsvideoconfig from 'aws-video-exports';

Amplify.configure(awsconfig);
Amplify.register(Video);

Video Upload

import Video from 'amplify-video.js';
import awsvideoconfig from 'aws-video-exports';

const params = {
  bucket: awsvideoconfig.awsInputVideo,
};
const metadata = {
  title: 'amplify-video.js rocks!',
  description: 'Awesome description',
};

const { data } = await Video.upload(file, metadata, params);

Playback URL generation

import Video from 'amplify-video.js';
import awsVideoConfig from './aws-video-exports';

const vodAssetId = 'rand-uuid-4242-4242-4242';
const params = {
  awsOutputVideo: awsVideoConfig.awsOutputVideo,
};

const { data } = await Video.playback(vodAssetId, params);

Metadata fetch

import Video from 'amplify-video.js';
import awsVideoConfig from './aws-video-exports';

const vodAssetId = 'rand-uuid-4242-4242-4242';

const { data } = await Video.metadata(vodAssetId);

Metadata update

import Video from 'amplify-video.js';
import awsVideoConfig from './aws-video-exports';

const vodAssetId = 'rand-uuid-4242-4242-4242';
const metadata = {
  title: 'This is a new title',
  description: 'And a new awesome description',
};

const { data } = await Video.metadata(vodAssetId, metadata);

Delete

import Video from 'amplify-video.js';
import awsVideoConfig from './aws-video-exports';

const params = {
  bucket: awsvideoconfig.awsInputVideo,
};
const vodAssetId = 'rand-uuid-4242-4242-4242';

const { data } = await Video.delete(vodAssetId, params);

About

amplify-video client library that is purpose built for Amplify Video managed resources. It's a superset of the existing amplify.js libraries for video asset.

Resources

License

Stars

Watchers

Forks

Packages

No packages published