Demonstration: https://www.youtube.com/watch?v=bU4bNd35Rb0
EDL Processing Demo : https://drive.google.com/file/d/1rJc6RJfmfOCAbP_9ovvzZogF8R_l9M_i/view?usp=sharing
Vidsyncro is a serverless video publishing platform which takes videos as input and produces production grade assets like subtitles, transcoded dash package. It also generates suitable title, description and social media post.
- Collaborative platform for editors and creators
- Automated production pipelines (transcoding, subtitle generation, thumbnail generation)
- Secure management and API services
- Social integrations for direct uploads to platforms like YouTube
- Optimized review process using EDLs and other short formats
- AWS Lambda
- Node.js
- AWS SAM (Serverless Application Model)
- AWS S3
- AWS Fargate
- Handling EDLs when folder structures or assets are modified
- Competition with existing services like Vimeo, Frame.io
- Synchronizing local and cloud storage
Follow these instructions to set up and run the project locally.
Before you begin, ensure you have the following installed:
-
Clone the repository:
git clone https://github.com/nikhil-babar/vidsyncro-backend.git cd vidsyncro-backend
-
Build the project:
sam build
-
Run the API locally:
sam local start-api
-
Create AWS resources:
-
ECS Cluster: Create an ECS Cluster through the AWS Management Console or using AWS CLI.
-
S3 Bucket: Create an S3 bucket through the AWS Management Console or using AWS CLI.
-
-
Configure SAM and environment variables:
Update the SAM configuration file and environment variables with your AWS credentials, ARNs, and resource names.
Example for
.env
:SECRET_KEY: <YOUR_SECRET_KEY> REGION: <YOUR_REGION> SNS_TOPIC: arn:aws:sns:<YOUR_REGION>:<YOUR_ACCOUNT_ID>:<YOUR_SNS_TOPIC_NAME> CLUSTER: <YOUR_CLUSTER_NAME> CLUSTER_SUBNET: <YOUR_CLUSTER_SUBNET_ID> CLUSTER_SECURITY_GROUP: <YOUR_SECURITY_GROUP_ID> VIDEO_BUCKET: <YOUR_VIDEO_BUCKET_NAME> URL_EXPIRATION_SECONDS: <YOUR_URL_EXPIRATION_SECONDS> MONGO_URL: <YOUR_MONGO_URL> MONGO_DB_NAME: <YOUR_MONGO_DB_NAME> API_GATEWAY_URL: <YOUR_API_GATEWAY_URL> FRONTEND_END: <YOUR_FRONTEND_END_URL> SES_IDENTITY_ARN: arn:aws:ses:<YOUR_REGION>:<YOUR_ACCOUNT_ID>:identity/<YOUR_SES_IDENTITY> EMAIL: <YOUR_EMAIL> ASSEMBLY_API_KEY: <YOUR_ASSEMBLY_API_KEY> HUGGINGFACE_API_KEY: <YOUR_HUGGINGFACE_API_KEY> GEMINI_API_KEY: <YOUR_GEMINI_API_KEY> GOOGLE_CLIENT_ID: <YOUR_GOOGLE_CLIENT_ID>
-
Start the API locally again (if necessary):
sam local start-api
-
Test API endpoints:
Use tools like Postman or cURL to test the API endpoints and verify the integration with MongoDB.
To contribute to this project, follow these steps:
- Fork this repository.
- Create a branch:
git checkout -b feature/your-feature
. - Make your changes and commit them:
git commit -m 'Add feature'
. - Push to the branch:
git push origin feature/your-feature
. - Create a pull request.
This project is licensed under the MIT License.
For questions or suggestions, please reach out to [email protected].
--