A full-stack application for video streaming.
Key features:
Upload & View Videos: Share your creations or enjoy content uploaded by others in a user-friendly interface.
Engagement Tools: Like, comment, and subscribe to channels to curate your personalized video feed.
YouTube Integration: Search for your favorite YouTube videos and download them directly to your device.
AI-Powered Chat Assistant: Leverage a smart virtual assistant, powered by Llama AI, to get instant answers and insights about the video content you're watching.
Ensure the following tools and services are set up before starting:
- Java 17 Runtime
- Node.js v18.20.3
- MongoDB Community Server
- AWS Account (with an S3 bucket configured)
- AWS CLI
- pytubefix
Configure AWS Single Sign-On by following the guide:
Configuring AWS CLI with SSO
-
Create a
secrets.propertiesfile inside theresourcesdirectory. -
Add the following properties to the file:
spring.data.mongodb.uri = <your MongoDB URI> groq.api.key = <your Groq API key> s3.bucket.name = <your S3 bucket name> spring.security.oauth2.resourceserver.jwt.jwk-set-uri = <your auth0 domain> auth0.audience = <your logical API URL> auth0.userInfoEndpoint = <your Auth0 user info endpoint>
-
Navigate to the
youtube-clone-uidirectory. -
Generate environment files:
ng generate environments
-
Edit the
environment.development.tsfile and add the following:export const environment = { auth_authority: <your OAuth authority>, auth_client_id: <your OAuth client ID>, springboot_server_url: "http://localhost:8080", flask_server_url: "http://127.0.0.1:5000", logical_api_url: <your Logical API URL> };
-
Create a
config.pyfile inside thebackend/flask-serverdirectory. -
Set the following properties:
AUTH0_JWK_SET_URI = <your auth0 domain> FRONTEND_SERVER = "http://localhost:4200" AUDIENCE = <your Logical API URL>
Run the following command in the Spring Boot project directory:
./mvnw clean verifyRun the following command in the youtube-clone-ui directory:
npm installbash springboot_api.shbash flask_api.shbash angular_server.shAccess the application at http://localhost:4200