Skip to content

HmizR/yes-youtube-summarizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

18 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


Logo

YES - YouTube Summarizer

🎬 Overview

YES - YouTube Summarizer is a web application that automatically summarizes YouTube videos using AI and allows users to interact with video content through intelligent conversations.

Instead of watching long videos, users can quickly understand key points and ask questions about the content.

✨ Features

  • 🎬 Summarize any YouTube video
  • πŸ” User authentication system
  • πŸ€– AI-generated concise summaries
  • πŸ’¬ Discuss with AI (ask questions about video content)
  • 🧠 Context-aware conversation memory
  • 🌐 Modern responsive web interface
  • 🐳 Fully Dockerized deployment

πŸ—οΈ Architecture

Frontend (Next.js)
        ↓
Backend API (Express.js)
        ↓
External Services
   β”œβ”€β”€ Ollama (AI Processing)
   └── MySQL Database

Both Ollama and MySQL currently run as external services.

The backend connects to them via environment configuration.

⚠️ Note: Currently, the database service is external and must be started manually. Future versions may include MySQL as part of Docker Compose for fully automated setup.

🧰 Tech Stack

Frontend

  • Next.js
  • React
  • Tailwind CSS

Backend

  • Node.js
  • Express.js
  • Sequelize ORM
  • MySQL

AI & Processing

  • Ollama (Local LLM)
  • YouTube Transcript Extraction

DevOps

  • Docker
  • Docker Compose

πŸ“ Project Structure

yes-youtube-summarizer/
β”‚
β”œβ”€β”€ frontend/     # Next.js client application
β”œβ”€β”€ backend/      # Express.js API server
β”œβ”€β”€ docker-compose.dev.yml
└── docker-compose.yml

πŸš€ Getting Started

To get a local copy of this project up and running, follow these steps.

πŸ“¦ Prerequisites

  • Docker (v20.x or higher) and Docker Compose.
  • Ollama Required as the external AI service.
  • MySQL (or another compatible SQL database).
  • Node.js and npm (optional)

πŸ› οΈ Installation

  1. Clone the repository

    git clone https://github.com/HmizR/yes-youtube-summarizer.git
    cd yes-youtube-summarizer
  2. Environment Setup

    Each folder already provides a template:

    frontend/.env.example
    backend/.env.example
    

    Create your environment files by copying them:

    • Backend

      cp backend/.env.example backend/.env
    • Frontend

      cp frontend/.env.example frontend/.env.local

    Then edit the .env and .env.local files according to your local configuration.

  3. Ollama Setup (Required)

    This project uses Ollama as an external AI service.

    You must install and run Ollama locally before starting the application.

    1. Install Ollama

      Download from here.

      Verify installation:

      ollama --version

    2. Pull Required Model

      Example:

      ollama pull llama3

      (Adjust the model name according to your .env configuration.)

    3. Start Ollama Service

      ollama serve

      By default, Ollama runs at:

      http://localhost:11434
      

      Make sure your backend .env matches this URL:

      OLLAMA_HOST=http://localhost:11434
      
  4. Database Setup (MySQL)

    The MySQL database is not yet managed by Docker Compose.

    You must provide your own running MySQL instance.

    This may be containerized in future releases.

    1. Install MySQL

      Install MySQL locally or run it using Docker manually.

      Example (Docker):

      docker run -d \
        --name youtube-mysql \
        -e MYSQL_ROOT_PASSWORD=password \
        -e MYSQL_DATABASE=youtube_summarizer \
        -p 3306:3306 \
        mysql:8
    2. Configure Backend Environment

      Update:

      backend/.env
      

      Example:

      DB_HOST=localhost
      DB_PORT=3306
      DB_USER=root
      DB_PASSWORD=password
      DB_NAME=youtube_summarizer
  5. Start the development server

    docker compose -f docker-compose.dev.yml up --build

πŸ“– Usage

πŸ”¨ Build the Services

  • Development mode

    docker compose -f docker-compose.dev.yml build
  • Production mode

    docker compose build

▢️ Running the Services

  • Development mode

    docker compose -f docker-compose.dev.yml up
  • Production mode

    docker compose up -d

Now you can view the app at http://localhost:3000 on your browser.

πŸ›‘ Stopping the Services

  • Development mode

    docker compose -f docker-compose.dev.yml down
  • Production mode

    docker compose down

πŸ“ƒ API Documentation

The API documentation can be accessed at http://localhost:5000/api/v1/docs.

πŸ‘¨β€πŸ’» Author

Developed by Hamizan Rifqi Afandi.