{"id":13509976,"url":"https://github.com/video-dev/video-transcoding-api","last_synced_at":"2025-03-30T15:30:22.827Z","repository":{"id":12657103,"uuid":"49979478","full_name":"video-dev/video-transcoding-api","owner":"video-dev","description":"Agnostic API to transcode media assets across different cloud services.","archived":false,"fork":false,"pushed_at":"2023-03-06T09:02:25.000Z","size":10177,"stargazers_count":630,"open_issues_count":35,"forks_count":72,"subscribers_count":39,"default_branch":"main","last_synced_at":"2024-11-01T10:35:08.304Z","etag":null,"topics":["api","encoding","media-factory","multimedia","transcoding","video"],"latest_commit_sha":null,"homepage":"","language":"Go","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/video-dev.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2016-01-19T20:03:50.000Z","updated_at":"2024-10-30T05:38:30.000Z","dependencies_parsed_at":"2024-01-06T12:03:10.802Z","dependency_job_id":"4f1e4bf0-2fac-4576-bd8a-b7564bbf903e","html_url":"https://github.com/video-dev/video-transcoding-api","commit_stats":{"total_commits":1032,"total_committers":21,"mean_commits":"49.142857142857146","dds":0.5426356589147288,"last_synced_commit":"2c78f9bffee7b113bb5ad2b5c998895479563d07"},"previous_names":["nytimes/video-transcoding-api"],"tags_count":56,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/video-dev%2Fvideo-transcoding-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/video-dev%2Fvideo-transcoding-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/video-dev%2Fvideo-transcoding-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/video-dev%2Fvideo-transcoding-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/video-dev","download_url":"https://codeload.github.com/video-dev/video-transcoding-api/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246338563,"owners_count":20761402,"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":["api","encoding","media-factory","multimedia","transcoding","video"],"created_at":"2024-08-01T02:01:19.535Z","updated_at":"2025-03-30T15:30:22.183Z","avatar_url":"https://github.com/video-dev.png","language":"Go","readme":"![video-transcoding-api logo](https://cloud.githubusercontent.com/assets/244265/14191217/ae825932-f764-11e5-8eb3-d070aa8f2676.png)\n\n# Video Transcoding API\n\n[![Build Status](https://github.com/video-dev/video-transcoding-api/actions/workflows/main.yml/badge.svg)](https://github.com/video-dev/video-transcoding-api/actions/workflows/main.yml)\n[![Go Report Card](https://goreportcard.com/badge/github.com/video-dev/video-transcoding-api)](https://goreportcard.com/report/github.com/video-dev/video-transcoding-api)\n[![Docker Pulls](https://img.shields.io/docker/pulls/videodev/video-transcoding-api?color=green)](https://hub.docker.com/r/videodev/video-transcoding-api)\n\nThe Video Transcoding API provides an agnostic API to transcode media assets\nacross different cloud services. Currently, it supports the following\nproviders:\n\n- [Bitmovin](http://bitmovin.com)\n- [Elemental Conductor](http://www.elementaltechnologies.com/products/elemental-conductor)\n- [Encoding.com](http://encoding.com)\n- [Hybrik](https://www.hybrik.com)\n- [Zencoder](http://zencoder.com)\n- [MediaConvert](https://aws.amazon.com/mediaconvert)\n\n## Setting Up\n\nWith [latest Go](https://golang.org/dl/) installed, make sure to export the follow\nenvironment variables:\n\n### Providers configuration\n\n#### For [Bitmovin](http://bitmovin.com)\n\n```\nexport BITMOVIN_API_KEY=your.api.key\nexport BITMOVIN_AWS_ACCESS_KEY_ID=your.access.key.id\nexport BITMOVIN_AWS_SECRET_ACCESS_KEY=your.secret.access.key\nexport BITMOVIN_AWS_STORAGE_REGION=your.s3.region.such.as.US_EAST_1.or.EU_WEST_1\nexport BITMOVIN_DESTINATION=s3://your-s3-bucket\nexport BITMOVIN_ENCODING_REGION=your.provider.region.such.as.AWS_US_EAST_1.or.GOOGLE_EUROPE_WEST_1\nexport BITMOVIN_ENCODING_VERSION=STABLE.or.BETA\n```\n\n#### For [Elemental Conductor](http://www.elementaltechnologies.com/products/elemental-conductor)\n\n```\nexport ELEMENTALCONDUCTOR_HOST=https://conductor-address.cloud.elementaltechnologies.com/\nexport ELEMENTALCONDUCTOR_USER_LOGIN=your.login\nexport ELEMENTALCONDUCTOR_API_KEY=your.api.key\nexport ELEMENTALCONDUCTOR_AUTH_EXPIRES=30\nexport ELEMENTALCONDUCTOR_AWS_ACCESS_KEY_ID=your.access.key.id\nexport ELEMENTALCONDUCTOR_AWS_SECRET_ACCESS_KEY=your.secret.access.key\nexport ELEMENTALCONDUCTOR_DESTINATION=s3://your-s3-bucket/\n```\n\n#### For [Encoding.com](http://encoding.com)\n\n```\nexport ENCODINGCOM_USER_ID=your.user.id\nexport ENCODINGCOM_USER_KEY=your.user.key\nexport ENCODINGCOM_DESTINATION=http://access.key.id:secret.access.key@your-s3-bucket.s3.amazonaws.com/\nexport ENCODINGCOM_REGION=\"us-east-1\"\n```\n\n#### For [Hybrik](https://www.hybrik.com)\n\n```\nexport HYBRIK_URL=your.hybrik.api.endpoint.such.as.https://api_demo.hybrik.com/v1\nexport HYBRIK_COMPLIANCE_DATE=20170601\nexport HYBRIK_OAPI_KEY=your.hybrik.oapi.key\nexport HYBRIK_OAPI_SECRET=your.hybrik.oapi.secret\nexport HYBRIK_AUTH_KEY=your.hybrik.auth.key\nexport HYBRIK_AUTH_SECRET=your.hybrik.auth.secret\nexport HYBRIK_DESTINATION=s3://your-s3-bucket\nexport HYBRIK_PRESET_PATH=video-transcoding-api-presets\n```\n\n``HYBRIK_PRESET_PATH`` is optional and defines the folder presets will be\nstored in. If not specified, it will default to\n'video-transcoding-api-presets'.\n\n#### For [Zencoder](http://zencoder.com)\n\n```\nexport ZENCODER_API_KEY=your.api.key\nexport ZENCODER_DESTINATION=http://access.key.id:secret.access.key@your-s3-bucket.s3.amazonaws.com/\n```\n\n#### For [MediaConvert](https://aws.amazon.com/mediaconvert/)\n\n```\nexport MEDIACONVERT_AWS_ACCESS_KEY_ID=your.access.key.id\nexport MEDIACONVERT_AWS_SECRET_ACCESS_KEY=your.secret.access.key\nexport MEDIACONVERT_AWS_REGION=\"us-east-1\"\nexport MEDIACONVERT_ENDPOINT=your.mediaconvert.endpoint\nexport MEDIACONVERT_QUEUE_ARN=your.queue.arn\nexport MEDIACONVERT_ROLE_ARN=your.iam.role.arn\nexport MEDIACONVERT_DESTINATION=s3://your-s3-bucket\n```\n\n### Database configuration\n\nIn order to store preset maps and job statuses we need a Redis instance\nrunning. Learn how to setup and run a Redis\n[here](http://redis.io/topics/quickstart). With the Redis instance running, set\nits configuration variables:\n\n```\nexport REDIS_ADDR=192.0.2.31\nexport REDIS_PASSWORD=p4ssw0rd.here\n```\n\nIf you are running Redis in the same host of the API and on the default port\n(6379) the API will automatically find the instance and connect to it.\n\nWith all environment variables set and redis up and running, clone this\nrepository and run:\n\n```\n$ git clone https://github.com/video-dev/video-transcoding-api.git\n$ make run\n```\n\n## Running tests\n\n```\n$ make test\n```\n\n## Using the API\n\nCheck out on our Wiki [how\nto](https://github.com/video-dev/video-transcoding-api/wiki/Using-Video-Transcoding-API)\nuse this API.\n\n## Contributing\n\n1. Fork it\n2. Create your feature branch: `git checkout -b my-awesome-new-feature`\n3. Commit your changes: `git commit -m 'Add some awesome feature'`\n4. Push to the branch: `git push origin my-awesome-new-feature`\n5. Submit a pull request\n\n## License\n\n- This code is under [Apache 2.0\n  license](https://github.com/video-dev/video-transcoding-api/blob/master/LICENSE).\n- The video-transcoding-api logo is a variation on the Go gopher that was\n  designed by Renee French and copyrighted under the [Creative Commons\n  Attribution 3.0 license](https://creativecommons.org/licenses/by/3.0/).\n","funding_links":[],"categories":["Go","Recently Updated","HarmonyOS","api","Video Encoding, Transcoding \u0026 Packaging Tools"],"sub_categories":["[Mar 14, 2025](/content/2025/03/14/README.md)","Windows Manager","Cloud-Based Encoding Solutions"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvideo-dev%2Fvideo-transcoding-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvideo-dev%2Fvideo-transcoding-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvideo-dev%2Fvideo-transcoding-api/lists"}