{"id":26042576,"url":"https://github.com/trackit/amplify-video.js","last_synced_at":"2025-06-19T02:34:38.424Z","repository":{"id":57177470,"uuid":"357473897","full_name":"trackit/amplify-video.js","owner":"trackit","description":"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.","archived":false,"fork":false,"pushed_at":"2021-11-07T17:09:14.000Z","size":3261,"stargazers_count":1,"open_issues_count":2,"forks_count":1,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-06-09T08:47:53.678Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/trackit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-04-13T08:09:58.000Z","updated_at":"2024-06-13T16:51:49.000Z","dependencies_parsed_at":"2022-09-14T02:30:30.669Z","dependency_job_id":null,"html_url":"https://github.com/trackit/amplify-video.js","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/trackit/amplify-video.js","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trackit%2Famplify-video.js","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trackit%2Famplify-video.js/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trackit%2Famplify-video.js/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trackit%2Famplify-video.js/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/trackit","download_url":"https://codeload.github.com/trackit/amplify-video.js/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trackit%2Famplify-video.js/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260672827,"owners_count":23044871,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-07T16:35:37.643Z","updated_at":"2025-06-19T02:34:33.403Z","avatar_url":"https://github.com/trackit.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# amplify-video.js\n\namplify-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.\n\n## Installation\n\n```sh\n$ npm install --save amplify-video.js\n```\n\n```ts\nimport Video from 'amplify-video.js';\n```\n\n## Local development setup\n\n```sh\n$ npm install -g\n$ npm run dev\n```\n\nand then\n\n```ts\nimport Video from 'amplify-video.js/dist';\n```\n\n\\*`npm run dev` will watch for changes in your file compile your project based on `tsconfig.json` file\n\n## Tests\n\nUnit-tests are located in `unit-tests/` directory, all unit-tests must go here.\n\nEnd-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.\n\nYou can run unit-tests and end-to-end tests independently\n\n### Unit-tests only\n\n```sh\n$ npm run unit-test\n```\n\nIf you want to watch changes in your files you can pass --watch to previous command.\n\n```sh\n$ npm run unit-test -- --watch\n```\n\n### End-to-end tests only (no GUI)\n\n```sh\n$ npm run cypress\n```\n\n### Both (unit \u0026 end-to-end tests)\n\n```sh\n$ npm test\n```\n\nFor more information about end-to-end testing check [README.md](./e2e/README.md \"e2e's README.md\") in `e2e` directory.\n\n## How to use\n\n### Configuration and registration\n\n```ts\nimport Amplify from 'aws-amplify';\nimport Video from 'amplify-video.js/dist';\nimport awsconfig from './aws-exports';\nimport awsvideoconfig from 'aws-video-exports';\n\nAmplify.configure(awsconfig);\nAmplify.register(Video);\n```\n\n### Video Upload\n\n```ts\nimport Video from 'amplify-video.js';\nimport awsvideoconfig from 'aws-video-exports';\n\nconst params = {\n  bucket: awsvideoconfig.awsInputVideo,\n};\nconst metadata = {\n  title: 'amplify-video.js rocks!',\n  description: 'Awesome description',\n};\n\nconst { data } = await Video.upload(file, metadata, params);\n```\n\n### Playback URL generation\n\n```ts\nimport Video from 'amplify-video.js';\nimport awsVideoConfig from './aws-video-exports';\n\nconst vodAssetId = 'rand-uuid-4242-4242-4242';\nconst params = {\n  awsOutputVideo: awsVideoConfig.awsOutputVideo,\n};\n\nconst { data } = await Video.playback(vodAssetId, params);\n```\n\n### Metadata fetch\n\n```ts\nimport Video from 'amplify-video.js';\nimport awsVideoConfig from './aws-video-exports';\n\nconst vodAssetId = 'rand-uuid-4242-4242-4242';\n\nconst { data } = await Video.metadata(vodAssetId);\n```\n\n### Metadata update\n\n```ts\nimport Video from 'amplify-video.js';\nimport awsVideoConfig from './aws-video-exports';\n\nconst vodAssetId = 'rand-uuid-4242-4242-4242';\nconst metadata = {\n  title: 'This is a new title',\n  description: 'And a new awesome description',\n};\n\nconst { data } = await Video.metadata(vodAssetId, metadata);\n```\n\n#### Delete\n\n```ts\nimport Video from 'amplify-video.js';\nimport awsVideoConfig from './aws-video-exports';\n\nconst params = {\n  bucket: awsvideoconfig.awsInputVideo,\n};\nconst vodAssetId = 'rand-uuid-4242-4242-4242';\n\nconst { data } = await Video.delete(vodAssetId, params);\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrackit%2Famplify-video.js","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftrackit%2Famplify-video.js","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrackit%2Famplify-video.js/lists"}