Skip to content

Software designed to summarise the content of Youtube video within few seconds

License

Notifications You must be signed in to change notification settings

Maleehak/BriefMe

Repository files navigation

Table of Contents
  1. Quick Demo
  2. About The Project
  3. Features
  4. Built With
  5. Getting Started
  6. Contributing
  7. License

Quick Demo

About The Project

The sotware is designed to summarise the content of Youtube video within few seconds. This is a full stack open-source Youtube video summarizer built using Springboot and React.Js. This is the experimental project to utilize the existing/custom tools to extract the video in a few seconds. Backend application exposes two versions of APIs. Here's how both work:

  • v1:
    • How it works:
      1. Extract Audio from the Youtube video using FFmpeg/Yt-Dlp
      2. Convert Audio to Speech using Google Speech to Text API
      3. Summarize the extracted text using Custom Text Summarize that builds context using Similarity Matrix and Text Rank Algorithm
    • Advantage:
      • Accurate summary generation that does not relies on subtitles unlike other Youtube Video Summarizers in the market
    • Disadvantage:
      • Since downloading the audio takes time and resources, this task is computationally expensive and takes around 2-5 mins to summarize average size videos
  • v2:
    • How it works: 1. Extract Subtitles from the Youtube video using Yt-Dlp 2. Summarize the extracted text using Google Vertex AI
      • Advantage:
        • Accurately summarizes the average size videos generation within 2-4s!
      • Disadvantage:
        • Since it relies on subtitles, if the video does not contains the subtitles, this method won't work

Features

  • Youtube video to audio converter using Yt-Dlp
  • MP4 video to audio converter using FFmpeg
  • Audio to text conversion using Google Speech to Text
  • Custom Text Summarizer using Similarity Matrix and Text Rank Algorithm
  • Youtube video subtitles extracting using Yt-Dlp
  • Text Summarization using Google Vertex AI
  • Containerized Java Backend application using Docker
  • Fully configured CI/CD pipeline for backend and frontend application using Github Actions
  • Containerized Backend is deployed to Google Clound Run
  • React Frontend is deployed on Github Pages
  • Secrets are managed using Github Action Secrets
  • Google service account credentials are encrypted

Built With

Getting Started

Below is an example of how you can setup the project locally.

Installation guide

Backend

  1. Install and setup Java 11 on your system
  2. For using the yt-dlb package, we need to have Python and Ffmpeg. Use the below command to install these dependencies:
    apt-get install -y python3 wget curl ffmpeg
  3. Run the below command to install yt-dlb or use the offical guide for installation :
    wget https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -O /usr/local/bin/yt-dlp
  4. Clone the repo
    git clone https://github.com/Maleehak/BriefMe.git
  5. Create a Google Service account using this guide and grant it the following permissions to use Google Vertex AI or use official g Speech to text and Vertex AI to learn how to create and use local credentials:
    1. Vertex AI user
    2. Vertex AI Admin
    3. Editor
  6. Enable Google Speech to Text for Speech to text conversion and Vertex AI for summary generation
  7. Run the below command to start up the backend application:
    mvn clean install
    mvn spring-boot:run

Frontend

  1. Install NPM packages
    npm install
  2. Point the application to local backend server to call the APIs

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE.txt for more information.