Skip to content

Turn any YouTube playlist into a structured email course — delivered daily

Notifications You must be signed in to change notification settings

howwohmm/mindos

Repository files navigation

MindOS

Turn any YouTube playlist into a structured email course — delivered daily.

MindOS extracts transcripts from YouTube videos, uses AI to generate learning-focused emails, and delivers them on a schedule you choose. Each video becomes 1–5 emails per day depending on your frequency setting.

How It Works

YouTube Playlist → Transcript Extraction → AI Processing → Scheduled Email Delivery
  1. Paste a YouTube playlist URL
  2. Choose your schedule (1x, 2x, 3x, or 5x daily), tone, and depth
  3. MindOS extracts transcripts, processes them through an LLM, and emails you throughout the day

Features

  • Flexible frequency: 1x to 5x emails per video per day
  • Depth control: TL;DR → Standard → Deep Dive
  • Tone options: Casual, Direct, Academic, ELI5, Witty
  • Transcript publishing: Auto-publishes full transcripts via Telegraph/paste.rs
  • Course management: Create, track, and cancel courses
  • Background scheduler: Automated email delivery via cron-style scheduler

Tech Stack

  • Frontend: Streamlit
  • Backend: Google Sheets (via gspread)
  • AI: OpenRouter (Gemini Flash)
  • Email: Gmail SMTP
  • Transcripts: youtube-transcript-api + yt-dlp

Setup

1. Clone & Install

git clone https://github.com/howwohmm/mindos.git
cd mindos
pip install -r requirements.txt

2. Configure Environment

cp .env.example .env
# Edit .env with your credentials

Required keys:

  • GMAIL_USER — your Gmail address
  • GMAIL_APP_PASSWORDGmail App Password (not your regular password)
  • OPENROUTER_API_KEY — free key from OpenRouter

3. Google Sheets Setup

You need a Google Service Account with access to a Google Spreadsheet:

  1. Create a service account at Google Cloud Console
  2. Download the credentials JSON and save as credentials.json
  3. Create a Google Spreadsheet and share it with the service account email
  4. The app will auto-create the required sheets (Courses, Queue, Users)

4. Run

streamlit run app.py

Project Structure

├── app.py                 # Streamlit UI
├── mindos.py              # Core backend (Google Sheets DB)
├── process_email.py       # LLM prompt engine
├── mailer_utils.py        # Email sending logic
├── frequency_config.py    # Frequency → email parts mapping
├── get_transcript.py      # YouTube transcript extraction
├── telegraph_utils.py     # Transcript publishing (Telegraph/paste.rs)
├── scheduler.py           # Background email scheduler
├── reset_db.py            # Database reset utility
├── requirements.txt
├── .env.example
└── legacy/                # Old POC files (Telegram flow)

Scheduler

For automated delivery, run the scheduler alongside the Streamlit app:

python scheduler.py

It checks the queue every hour and sends any due emails.

License

MIT

About

Turn any YouTube playlist into a structured email course — delivered daily

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages