VidWiz is designed to enhance your YouTube learning and note-taking experience. It allows you to capture and organize your thoughts while watching YouTube videos/lectures/video essays, with a special focus on timestamp-based note-taking. The extension integrates seamlessly with YouTube's interface, making it easy to save notes at specific moments/timestamps in videos.
Additionally, it leverages AI to automatically generate comprehensive notes for any timestamp, providing intelligent summaries and insights from the video content at that specific moment.
The extension is built with:
- Frontend: HTML5, CSS3, and vanilla JavaScript for extension
- Backend: Flask (Python) for REST API
- Database: PostgreSQL for data storage
- LLM: OpenAI/Gemini models for intelligent note generation
-
Multi-Client Support
- Use the extension with any Chromium-based browser.
- Use with Android devices via Macrodroid macros.
- Use with iOS devices via Shortcuts automation.
-
Interactive Dashboard
- A modern UI with a consolidated view of all your notes.
- Search for videos.
- Open videos directly at the note's timestamp.
- Edit and delete notes with ease.
-
AI Magic
- Automatically generate accurate notes for any timestamp using LLMs.
- Set your custom AI provider and API key.
- Toggle the AI generation feature on or off.
-
Self-Hosted
- Full privacy with a self-hosted backend.
- Enhanced security over your data.
- No third-party data sharing.
Prereqs: Docker, Docker Compose
- Create a .env file with at least:
# App
DB_URL=postgresql://postgres:postgres@database:5432/vidwiz
SECRET_KEY=change-me
ADMIN_TOKEN=change-admin-token
# AWS
AWS_ACCESS_KEY_ID=your-key
AWS_SECRET_ACCESS_KEY=your-secret
AWS_REGION=ap-south-1
SQS_QUEUE_URL=https://sqs.ap-south-1.amazonaws.com/123456789012/vidwiz
S3_BUCKET_NAME=vidwiz
# Postgres container
POSTGRES_DB=vidwiz
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
- Start services:
- Development: docker compose up -d --build → API at http://localhost:5000
Prereqs: Python 3.10–3.13, Poetry, running PostgreSQL
- Install deps: poetry install
- Export env vars (match .env above)
- Run app (dev): poetry run vidwiz (runs Flask dev server on 0.0.0.0:5000)
- Load unpacked from extension/ in a Chromium browser (chrome://extensions → Developer mode → Load unpacked)
- Configure backendEndpoint in extension/popup.js to your API base URL if self hosting
- Generate a token for the extension:
- Option A: JWT via POST /user/login (expires in 24h)
- Option B: Long‑term token via POST /user/token (recommended)
- In the extension popup’s DevTools console: localStorage.setItem('notes-token', '')
The popup reads the current YouTube title/timestamp and calls POST /notes.
- poetry run pytest
- Better UI/UX for Dashboard
- Improve note CRUD functionality
- AI generated note
- Lambda workflow optimization
- SQS Implementation
- Refine self-hosted setup
- Cloud Hosted Offering - Subscription model
Dashboard
Video Notes
Extension
Mobile View