Skip to content

adhirajpandey/vidwiz

Repository files navigation

VidWiz

Description

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

Features

  1. 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.
  2. 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.
  3. 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.
  4. Self-Hosted

    • Full privacy with a self-hosted backend.
    • Enhanced security over your data.
    • No third-party data sharing.

Quick start (Docker Compose)

Prereqs: Docker, Docker Compose

  1. 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
  1. Start services:

Local development (Poetry)

Prereqs: Python 3.10–3.13, Poetry, running PostgreSQL

  1. Install deps: poetry install
  2. Export env vars (match .env above)
  3. Run app (dev): poetry run vidwiz (runs Flask dev server on 0.0.0.0:5000)

Extension setup

  1. Load unpacked from extension/ in a Chromium browser (chrome://extensions → Developer mode → Load unpacked)
  2. Configure backendEndpoint in extension/popup.js to your API base URL if self hosting
  3. 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)
  4. In the extension popup’s DevTools console: localStorage.setItem('notes-token', '')

The popup reads the current YouTube title/timestamp and calls POST /notes.

Running tests

  • poetry run pytest

Roadmap

  • 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

Screenshots

Dashboard

dashboard-UI

Video Notes

notes-ui

Extension

extension-ui

Mobile View

mobile-ui

About

Easily take notes while watching youtube

Topics

Resources

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •