https://github.com/trackit/amplify-video.js
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.
https://github.com/trackit/amplify-video.js
Last synced: 12 months ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/trackit/amplify-video.js
- Owner: trackit
- License: apache-2.0
- Created: 2021-04-13T08:09:58.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2021-11-07T17:09:14.000Z (over 4 years ago)
- Last Synced: 2025-06-09T08:47:53.678Z (12 months ago)
- Language: TypeScript
- Size: 3.11 MB
- Stars: 1
- Watchers: 4
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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
```sh
$ npm install --save amplify-video.js
```
```ts
import Video from 'amplify-video.js';
```
## Local development setup
```sh
$ npm install -g
$ npm run dev
```
and then
```ts
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
```sh
$ npm run unit-test
```
If you want to watch changes in your files you can pass --watch to previous command.
```sh
$ npm run unit-test -- --watch
```
### End-to-end tests only (no GUI)
```sh
$ npm run cypress
```
### Both (unit & end-to-end tests)
```sh
$ npm test
```
For more information about end-to-end testing check [README.md](./e2e/README.md "e2e's README.md") in `e2e` directory.
## How to use
### Configuration and registration
```ts
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
```ts
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
```ts
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
```ts
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
```ts
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
```ts
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);
```