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.
$ npm install --save amplify-video.js
import Video from 'amplify-video.js';
$ 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
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
$ 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
$ npm run cypress
$ npm test
For more information about end-to-end testing check README.md in e2e
directory.
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);
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);
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);
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);
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);
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);