The YouTube Summarizer App is a simple Python app providing detailed, college-like notes for YouTube videos. It's ideal for students, researchers, or anyone looking to extract concise, informative summaries from educational videos. The app runs locally using FastAPI for backend and Streamlit for user interface. It is also equipped with Docker support for easy deployment.
- Video Summarization: Converts YouTube transcript into detailed text notes using GPT model.
- Saving summaries: Utilizes SQLAlchemy for efficient data storage.
- Streamlit Interface: User-friendly web interface for easy operation.
- Docker Integration: Supports Docker for straightforward setup.
16.10.2024:
- Quiz mode- added option of exploratory question/answer generation
- Summary update support
- Enhancing transcript generation functionality using Whisper
- Quiz-mode- creating interactive quiz experience for the user, using questions generated from summary
Before you begin, ensure you have the following:
- Python 3.8 or higher
- Docker (optional, for Docker setup)
- An API key from OpenAI (the app uses GPT-3.5 model)
- Clone the Repository
git clone https://github.com/SzymonJak982/Youtube-Summarizer.git
cd Youtube-Summarizer
- Create a virtual environment in Python and activate it:
python3 -m venv venv
source venv/bin/activate
- Install dependencies
pip install -r requirements.txt
-
Get your OpenAI API key To get the necessary API key, follow these steps:
- Go to the OpenAI platform website
- If you don't have an account, click "Sign up" and create one.
- Once logged in, navigate to the API key management page.
- Click "Create new secret key" and note down the generated API key (you would not see the key again).
-
Run the App
streamlit run app.py
- In another terminal window, activate history endpoint with uvicorn (for summary history)
uvicorn src.endpoints.endpoints:app --reload
- Clone the Repository
git clone https://github.com/SzymonJak982/Youtube-Summarizer.git
cd Youtube-Summarizer
- Build and start the service
docker-compose up --build
Contributions are welcome! Please fork the repository and submit pull requests, or open an issue to suggest features or report bugs. Here are some of the possible contribution ideas:
- Adopt local LLM for more independency from OpenAI, e.g. using Mixtral model
- Develop transcript fetching from other platforms with API calls as well as webscraping if needed
- Develop asynchronious approach to summary generation to speed up the process for long transcripts
This project is under Apache-2.0 License. If you wish to use it in your own project you should credit the orginal owner.