Get started with Language Learner in 5 minutes.
# Install system dependencies
brew install ffmpeg poppler yt-dlp pango gdk-pixbuf glib
# Install Python packages
pip install -r requirements.txt# Install system dependencies
sudo apt-get update
sudo apt-get install ffmpeg poppler-utils python3-pip \
python3-cffi python3-brotli libpango-1.0-0 libgdk-pixbuf2.0-0
# Install yt-dlp
pip install yt-dlp
# Install Python packages
pip install -r requirements.txt# Install via Chocolatey
choco install ffmpeg
# Install Python packages
pip install -r requirements.txt
pip install yt-dlp# Copy example configuration
cp config/config.example.yaml config/config.yaml
# Edit with your course details
nano config/config.yamlMinimal config example:
course:
name: "Spanish A1"
language: "Spanish"
level: "Beginner"
language:
code: "es"
native_language: "en"
sources:
- type: "youtube"
lessons:
- id: "VIDEO_ID_HERE"
filename: "lesson1.mp4"
date: "2024-01-15"python src/main.pyThis will:
- ⬇️ Download all videos
- 🎙️ Extract audio and transcribe
- 📝 Generate comprehensive study notes
# Download only
python src/main.py --download-only
# Transcribe only
python src/main.py --transcribe-only
# Generate notes only
python src/main.py --notes-only
# Use custom config file
python src/main.py -c config/my_config.yamloutput/
├── lesson1.mp4 # Downloaded video
├── audio/
│ └── lesson1.mp3 # Extracted audio
├── transcripts/
│ ├── lesson1.txt # Text transcript
│ └── lesson1.json # JSON with timestamps
└── Comprehensive_Notes_[Language].md # 📖 YOUR STUDY GUIDE
sources:
- type: "youtube"
lessons:
- id: "dQw4w9WgXcQ"
filename: "lesson1.mp4"sources:
- type: "google_drive"
lessons:
- id: "1abc123xyz" # From: drive.google.com/file/d/1abc123xyz/view
filename: "lesson1.mp4"sources:
- type: "local"
lessons:
- filename: "my_video.mp4" # Must be in output/ directory# macOS
brew install ffmpeg
# Linux
sudo apt install ffmpegpip install yt-dlp- Ensure file is publicly accessible
- Get shareable link
- Extract file ID from URL:
drive.google.com/file/d/FILE_ID_HERE/view
- Use smaller Whisper model:
model: "small"instead of"medium" - Process shorter videos
- Use GPU if available
📖 Full Documentation: See README.md
🔧 Configuration Guide: See examples in examples/ directory
🤖 For Developers: See CLAUDE.md for contributing
Happy Learning! 🎓