Skip to content

Path-yang/GleamNote.ai

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

3 Commits
ย 
ย 

Repository files navigation

GleamNote.ai

Gleam

Capture what matters from any video, in any language.

Gleam is a smart clipping tool that lets you extract and save key moments from videos (YouTube, TikTok, Instagram, etc.) with your own notes and translations. Stop saving entire videos you'll never watchโ€”capture only the insights that matter to you.

License: MIT Platform Status


๐ŸŽฏ The Problem

We've all been there:

  • Watch a 45-minute YouTube tutorial and forget the key insight by next week
  • See a TikTok with a great cooking tip but can't remember which one
  • Learn something from an Instagram Reel in another language
  • Save dozens of videos "to watch later" and never do

Traditional solutions are broken:

  • Full transcripts are overwhelming (10,000 words you'll never read)
  • Bookmarking videos gives you everything or nothing
  • No way to capture your insights with their content
  • Language barriers limit what you can learn

โœจ The Solution: Gleam

Gleam lets you selectively clip the moments that matter, add your own thoughts, and organize everything in one placeโ€”across all video platforms and languages.

Key Features

๐Ÿ“น Smart Video Clipping

  • Clip specific timestamps from any video (5 seconds to 5 minutes)
  • Works with YouTube, TikTok, Instagram Reels, and any web video
  • Automatic transcription of your clip
  • Thumbnail preview for quick recognition

๐ŸŒ Built-in Translation

  • Translate clips from any language to your preferred language
  • Side-by-side original and translated text
  • Perfect for learning from international content creators

๐Ÿ“ Your Notes, Your Way

  • Add your own thoughts and context to each clip
  • Why did this matter? How will you use it?
  • Future you will thank you

๐Ÿ—‚๏ธ Organized Collections

  • Group clips by topic, project, or any way you want
  • Tags for quick filtering
  • Search across all your clips instantly

๐Ÿ”„ Cross-Platform Sync

  • Clip on your phone, review on desktop
  • All your content, everywhere you work

๐Ÿ“ค Export & Share

  • Export to Google Docs, Apple Notes, or Markdown
  • Share collections with team members
  • Backup your knowledge base

๐Ÿš€ How It Works

On Mobile (iOS/Android)

1. Watch video in TikTok/Instagram/YouTube app
   โ†“
2. See something important at 1:23
   โ†“
3. Tap Share โ†’ Choose Gleam
   โ†“
4. Gleam opens, loads video at 1:23
   โ†“
5. Adjust clip range (1:20-1:35)
   โ†“
6. Add your note: "Great technique for pizza dough"
   โ†“
7. (Optional) Translate to your language
   โ†“
8. Save to "Cooking" collection

On Desktop (Browser Extension)

1. Watch YouTube video in Chrome/Safari
   โ†“
2. Click Gleam extension icon
   โ†“
3. Select clip range from video timeline
   โ†“
4. Add note and translation
   โ†“
5. Save to collection

๐Ÿ—๏ธ Architecture

High-Level System Design

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚         User Applications               โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  iOS App    โ”‚ Android App  โ”‚ Web App   โ”‚
โ”‚  (Swift)    โ”‚  (Kotlin)    โ”‚ (React)   โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
              โ”‚
              โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚          API Gateway                    โ”‚
โ”‚       (REST + GraphQL)                  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
              โ”‚
    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
    โ†“                   โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”      โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Core API โ”‚      โ”‚ Worker Queue โ”‚
โ”‚(Node.js) โ”‚      โ”‚   (Bull)     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜      โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
    โ”‚                   โ”‚
    โ†“                   โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚           Services Layer                โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚Transcription โ”‚ Translation  โ”‚  Video   โ”‚
โ”‚  (Whisper)   โ”‚(Google/DeepL)โ”‚Processingโ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
              โ”‚
              โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚          Data Storage                   โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  PostgreSQL  โ”‚   S3/R2      โ”‚  Redis   โ”‚
โ”‚  (Metadata)  โ”‚  (Videos)    โ”‚ (Cache)  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Tech Stack

Frontend:

  • iOS: SwiftUI, Combine
  • Android: Jetpack Compose, Kotlin Coroutines
  • Web: React, TypeScript, TailwindCSS
  • Browser Extensions: WebExtensions API

Backend:

  • API: Node.js + Express / Next.js API Routes
  • Database: PostgreSQL (Supabase)
  • File Storage: Cloudflare R2 / AWS S3
  • Queue: Bull / Redis
  • Cache: Redis

AI/ML Services:

  • Transcription: OpenAI Whisper API / AssemblyAI
  • Translation: Google Cloud Translation / DeepL API
  • Video Processing: FFmpeg

Infrastructure:

  • Hosting: Vercel (Web) + Railway (API)
  • CDN: Cloudflare
  • Auth: Supabase Auth / Clerk
  • Analytics: PostHog

๐Ÿ—‚๏ธ Database Schema

-- Users
CREATE TABLE users (
  id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
  email VARCHAR(255) UNIQUE NOT NULL,
  name VARCHAR(255),
  created_at TIMESTAMP DEFAULT NOW(),
  updated_at TIMESTAMP DEFAULT NOW()
);

-- Collections
CREATE TABLE collections (
  id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
  user_id UUID REFERENCES users(id) ON DELETE CASCADE,
  name VARCHAR(255) NOT NULL,
  description TEXT,
  created_at TIMESTAMP DEFAULT NOW(),
  updated_at TIMESTAMP DEFAULT NOW()
);

-- Clips
CREATE TABLE clips (
  id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
  user_id UUID REFERENCES users(id) ON DELETE CASCADE,
  collection_id UUID REFERENCES collections(id) ON DELETE SET NULL,
  
  -- Source info
  source_type VARCHAR(50) NOT NULL, -- 'youtube', 'tiktok', 'instagram'
  source_url TEXT NOT NULL,
  source_title VARCHAR(500),
  
  -- Clip details
  start_time INTEGER NOT NULL, -- seconds
  end_time INTEGER NOT NULL,
  thumbnail_url TEXT,
  
  -- Content
  original_text TEXT,
  original_language VARCHAR(10),
  translated_text TEXT,
  target_language VARCHAR(10),
  
  -- User content
  user_note TEXT,
  tags TEXT[], -- Array of tags
  
  created_at TIMESTAMP DEFAULT NOW(),
  updated_at TIMESTAMP DEFAULT NOW()
);

-- Indexes
CREATE INDEX idx_clips_user_id ON clips(user_id);
CREATE INDEX idx_clips_collection_id ON clips(collection_id);
CREATE INDEX idx_clips_tags ON clips USING GIN(tags);
CREATE INDEX idx_clips_created_at ON clips(created_at DESC);

๐Ÿ”ง Installation & Setup

Prerequisites

  • Node.js 18+
  • PostgreSQL 14+
  • Redis 7+
  • FFmpeg
  • API Keys: OpenAI (Whisper), Google Cloud Translation

Backend Setup

# Clone the repository
git clone https://github.com/yourusername/gleam.git
cd gleam

# Install dependencies
cd backend
npm install

# Setup environment variables
cp .env.example .env
# Edit .env with your API keys and database URLs

# Run database migrations
npm run migrate

# Start development server
npm run dev

Frontend Setup

# Web App
cd web
npm install
npm run dev

# iOS App
cd ios
pod install
open Gleam.xcworkspace

# Android App
cd android
./gradlew build

Environment Variables

# Database
DATABASE_URL=postgresql://user:password@localhost:5432/gleam
REDIS_URL=redis://localhost:6379

# APIs
OPENAI_API_KEY=sk-...
GOOGLE_TRANSLATE_API_KEY=...
DEEPL_API_KEY=...

# Storage
S3_BUCKET=gleam-clips
S3_ACCESS_KEY=...
S3_SECRET_KEY=...
S3_REGION=us-east-1

# Auth
JWT_SECRET=your-secret-key
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_ANON_KEY=...

# Frontend URLs
NEXT_PUBLIC_API_URL=http://localhost:3000

๐Ÿ“ฑ Usage Examples

API Usage

// Create a new clip
POST /api/clips
{
  "sourceUrl": "https://youtube.com/watch?v=...",
  "startTime": 65,
  "endTime": 95,
  "userNote": "Great explanation of async/await",
  "targetLanguage": "es",
  "collectionId": "uuid",
  "tags": ["javascript", "tutorial"]
}

// Get user's clips
GET /api/clips?collectionId=uuid&tags=javascript

// Search clips
GET /api/clips/search?q=async&language=en

// Export collection
GET /api/collections/:id/export?format=markdown

SDK Usage (JavaScript)

import { GleamClient } from '@gleam/sdk';

const client = new GleamClient({
  apiKey: process.env.GLEAM_API_KEY
});

// Create a clip
const clip = await client.clips.create({
  sourceUrl: 'https://youtube.com/watch?v=dQw4w9WgXcQ',
  startTime: 30,
  endTime: 45,
  userNote: 'Never gonna give you up',
  translate: true,
  targetLanguage: 'es'
});

// Get clips from a collection
const clips = await client.collections.getClips('collection-id');

// Search across all clips
const results = await client.clips.search('machine learning');

๐Ÿ—บ๏ธ Roadmap

โœ… Phase 1: MVP (Q1 2025)

  • Core clipping functionality
  • YouTube integration
  • Basic collections
  • Translation support
  • iOS app with Share Sheet
  • Android app with Share Intent

๐Ÿšง Phase 2: Enhancement (Q2 2025)

  • TikTok & Instagram support
  • Browser extensions (Chrome, Safari)
  • Advanced search & filters
  • Export to Google Docs / Apple Notes
  • Collaborative collections

๐Ÿ”ฎ Phase 3: Advanced (Q3 2025)

  • AI-powered clip suggestions
  • Voice notes on clips
  • Spaced repetition reminders
  • Team workspaces
  • API for developers

๐ŸŒŸ Phase 4: Scale (Q4 2025)

  • Podcast support
  • Offline mode
  • Desktop apps (Mac, Windows)
  • Advanced analytics
  • Premium features

๐Ÿค Contributing

We love contributions! Here's how you can help:

Bug Reports

Found a bug? Open an issue with:

  • Clear description
  • Steps to reproduce
  • Expected vs actual behavior
  • Screenshots/videos if applicable

Feature Requests

Have an idea? Start a discussion about:

  • The problem you're trying to solve
  • Your proposed solution
  • Why it would benefit other users

Pull Requests

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development Guidelines

  • Write tests for new features
  • Follow existing code style
  • Update documentation
  • Keep commits atomic and well-described

๐Ÿงช Testing

# Run all tests
npm test

# Run specific test suite
npm test -- clips.test.js

# Run with coverage
npm run test:coverage

# E2E tests
npm run test:e2e

๐Ÿ“Š Performance

  • Clip Creation: < 3 seconds (with transcription)
  • Translation: < 1 second
  • Search: < 100ms for 10,000 clips
  • Mobile App: < 50MB bundle size
  • API Response Time: p95 < 200ms

๐Ÿ” Security

  • End-to-end encryption for sensitive data
  • SOC 2 Type II compliant infrastructure
  • Regular security audits
  • GDPR and CCPA compliant
  • User data never used for AI training
  • Optional 2FA for accounts

๐Ÿ’ฐ Pricing

Free Tier

  • 50 clips/month
  • 1 collection
  • Basic translation
  • 720p video quality

Pro ($9/month)

  • Unlimited clips
  • Unlimited collections
  • Priority translation
  • 1080p video quality
  • Export to all formats
  • Priority support

Teams ($49/month)

  • Everything in Pro
  • Shared collections
  • Team collaboration
  • Admin dashboard
  • SSO support
  • Custom branding

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


๐Ÿ™ Acknowledgments

  • Whisper AI for transcription
  • FFmpeg for video processing
  • Supabase for backend infrastructure
  • All our beta testers and contributors

๐Ÿ“ž Contact & Support


๐ŸŒŸ Star History

Star History Chart


Made with โค๏ธ by the Gleam team

Website โ€ข Docs โ€ข Blog

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors