YTAI summarizes YouTube videos and is not the first project to do that. However, it offers some features that other similar projects and AI summarizers on the internet don't:
- provide a custom prompt ✍️
- you can tailor the response to your needs by providing a custom prompt or just use the default summarization
- automatically save summaries 📂
- the summaries can be automatically saved in the directory where you run the app. The summaries will be available under
<YT-channel-name>/<video-title>.md
- the summaries can be automatically saved in the directory where you run the app. The summaries will be available under
- choose from different OpenAI models 🤖
- currently available: gpt-3.5-turbo, gpt-4 (turbo), gpt-4o
- by choosing a different model, you can summarize even longer videos and potentially get better responses
- experiment with settings ⚙️
- adjust the temperature and top P of the model
- choose UI theme 🖌️
- go to the three dots in the upper right corner, select settings and choose either light, dark or my aesthetic custom theme
No matter how you choose to run the app, you will first need to get an OpenAI API-Key. This is very straightforward and free. Have a look at their instructions to get started.
# build locally
docker build --tag=ytai:latest .
# or pull from Docker Hub
docker pull sudoleg/ytai:latest
docker run -d -p 8501:8501 -v $(pwd):/app/responses -e OPENAI_API_KEY=<your-openai-api-key> --name yt-summarizer sudoleg/ytai:latest
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
export OPENAI_API_KEY=<your-openai-api-key>
streamlit run main.py
Feedback and contributions are welcome! This is a small side-project and it's very easy to get started! Here’s the gist to get your changes rolling:
- Fork & clone: Fork the repo and clone your fork to start.
- Pick an issue or suggest One: Choose an open issue to work on, or suggest a new feature or bug fix by creating an issue for discussion.
- Develop: Make your changes.
- Ensure your code is clean and documented. Test the changes at least exploratively. Make sure to test 'edge cases'.
- Commit your changes with clear, descriptive messages, preferably using conventional commits.
- Stay updated: Keep your branch in sync with the main branch to avoid merge conflicts.
- Pull Request: Push your changes to your fork and submit a pull request (PR) to the main repository. Describe your changes and any relevant details.
- Engage: Respond to feedback on your PR to finalize your contribution.
The project is built using some amazing libraries:
- The project uses YouTube Transcript API for fetching transcripts.
- LangChain is used to create a prompt, submit it to an LLM and process it's response.
- The UI is built using Streamlit.
This project is licensed under the MIT License - see the LICENSE file for details.