YouTube Clone

I've created a YouTube Clone which has the following functionality List videos, Watch videos, Sign in/out, Upload a video, and Watching the transcoded video deployed on GCP here.

This clone uses 11 main technologies in it's tech stack: TypeScript, Next.js, Express.js, Docker, FFmpeg, Firebase Auth, Firebase Functions, Firebase Firestore, Google Cloud Storage, Google Cloud Pub/Sub, and Google Cloud Run.

Architecture

1. Cloud Storage will store the raw and processed videos uploaded by users.
2. Pub/Sub will send messages to the video processing service.
3. Cloud Run will host a non-public video processing service. After it transcodes videos, they will be uploaded to Cloud Storage.
4. Cloud Firestore will store the metadata for the videos.
5. Cloud Run will host a Next.js app, which will serve as the Youtube web client.
6. The Next.js app will make API calls to Firebase Functions.
7. Firebase Functions will fetch videos from Cloud Firestore and return them.