Tagline: Streamline your YouTube video editing and publishing.
YouTubeLayer is a web-based collaboration platform designed for YouTube channel owners and remote video editors to simplify and streamline the video editing and publishing workflow.
The platform allows channel owners to create video projects, upload raw video files, and assign tasks to editors. Editors can then access their assigned projects, download the raw files, edit them locally, and upload the final versions back for review. Once approved, the channel owner can publish the video to YouTube with a single click.
Whether you're a solo creator working with freelance editors or a growing content team, YouTubeLayer helps you manage projects efficiently, eliminate back-and-forths, and reduce publishing delays.
YouTubeLayer is a collaboration platform for YouTube channel owners and remote video editors to streamline the editing and publishing process of YouTube videos.
- Project creation and asset management
- User roles and permissions (Owner vs Editor)
- File upload/download system
- Editor assignment
- Video review
- One-click publishing to YouTube via OAuth + YouTube Data API
- Project management (edit and delete)
- Editor management (remove editor)
- Video management (remove video)
This is a list of the known bugs and issues identified in the v2 release of the YouTubeLayer platform.
- Creates and manages video projects.
- Uploads raw video files.
- Assigns an editor to each project.
- Reviews the edited video uploaded by the editor.
- With a one-click action, uploads the final video to their YouTube channel.
- Accesses assigned projects.
- Downloads raw video files.
- Edits the video locally.
- Uploads the final edited video back to the platform for review.
- Project Creation by the Channel Owner.
- Raw File Upload (video files).
- Editor Assignment to the project.
- Editor Workflow:
- Download raw video files.
- Edit video locally.
- Upload edited version.
- Review & Approval by the Channel Owner.
- One-Click Publish to YouTube (via YouTube Data API).
- Frontend/Backend: Next.js
- Database: MongoDB
- Cloud Infrastructure: AWS (S3, ECR, ECS)
- Authentication: Google OAuth 2.0
- Video Upload: YouTube API
YouTubeLayer
│
├── Frontend/Backend (Next.js)
│
├── MongoDB (User/Project Data)
│
├── AWS S3 (Video Storage)
│
├── AWS ECR (Container Image)
│
├── AWS ECS (Runs YouTube Uploader Container)
│
└── YouTube API + Google OAuth (For publishing)
git clone https://github.com/roydevashish/youtubelayer.git
cd youtubelayer
npm install
- Setup a MongoDB database
- Setup Resend to send email
- Setup/generate a random secret for NextAuth
- Setup AWS as per the below requirement:
- An IAM user with permissions for ECS, ECR, S3
- An S3 bucket for uploading raw and edited videos
- An ECR repository to host the container image
- An ECS cluster to run the container
- A task definition that spins the container to upload videos to YouTube
- Setup Google OAuth at Google Cloud Platform for OAuth API Keys
Create a .env
file inside /container
directory with:
YT_AWS_ACCESS_KEY=
YT_AWS_SECRET_ACCESS_KEY=
YT_AWS_BUCKET=
YT_AWS_REGION=
OAUTH_CLIENT_ID=
OAUTH_CLIENT_SECRET=
OAUTH_REDIRECT_URI=
- Build a container image from the files inside
/container
- Publish the container image to ECR
Create a .env
file in the root directory with the following:
MONGODB_URI=
RESEND_DOMAIN=
RESEND_API_KEY=
NEXTAUTH_SECRET=
NEXTAUTH_URL=
YT_AWS_ACCESS_KEY=
YT_AWS_SECRET_ACCESS_KEY=
YT_AWS_BUCKET=
YT_AWS_REGION=
YT_AWS_TASK_DEFINITION=
YT_AWS_CLUSTER=
YT_AWS_CONTAINER_NAME=
YT_AWS_SECURITY_GROUP=
YT_AWS_SUBNET_1=
YT_AWS_SUBNET_2=
YT_AWS_SUBNET_3=
OAUTH_CLIENT_ID=
OAUTH_CLIENT_SECRET=
OAUTH_REDIRECT_URI=
npm run dev
Open http://localhost:3000 with your browser to see the result.
No license specified as of now.
GitHub: @roydevashish