5.5 KiB
YouTube Transcript Summarizer — Mac Setup Guide
This is a step-by-step guide to get the app running on your Mac. No prior experience with servers or Terminal needed.
What you're setting up
This app has two parts:
- A small server that runs locally on your Mac (not on the internet — only you can access it). It downloads YouTube audio and talks to Google's Gemini AI.
- A webpage you open in your browser that connects to that local server.
Nothing is uploaded anywhere. Everything runs on your machine.
Where to save the project
The youtube-summarizer folder you downloaded from Cowork can live anywhere, but the conventional place for projects like this on a Mac is:
~/Projects/youtube-summarizer
~ means your home folder (e.g., /Users/grant). If you don't have a Projects folder yet, you'll create one below.
To move the files there:
- Open Finder
- Go to your home folder (press
Cmd + Shift + H) - Create a new folder called
Projectsif you don't have one (right-click → New Folder) - Drag the
youtube-summarizerfolder from your Cowork downloads intoProjects
You should end up with this structure:
~/Projects/youtube-summarizer/
├── public/
│ └── index.html ← the app you open in your browser
├── server/
│ ├── index.js ← the backend server code
│ └── package.json ← lists the server's dependencies
├── setup.sh ← automatic setup script
└── GET-STARTED.md ← this file
Step 1: Install Node.js (if you don't have it)
Node.js is what runs the server. Check if you already have it:
- Open Terminal (press
Cmd + Space, type "Terminal", hit Enter) - Type this and press Enter:
node --version
- If you see a version number like
v20.11.0→ you're good, skip to Step 2 - If you see "command not found" → install it:
- Go to https://nodejs.org
- Download the LTS version (the green button)
- Open the downloaded
.pkgfile and follow the installer - Close and reopen Terminal, then try
node --versionagain
Step 2: Run the setup script
This installs yt-dlp (the YouTube audio downloader) and the server's dependencies. In Terminal:
cd ~/Projects/youtube-summarizer
bash setup.sh
You should see checkmarks for Node.js, yt-dlp, and the server dependencies. If yt-dlp isn't found and can't auto-install, run:
brew install yt-dlp
(If you don't have Homebrew either, install it first from https://brew.sh — it's a one-line Terminal command shown on their homepage.)
Step 3: Start the server
cd ~/Projects/youtube-summarizer/server
npm start
You should see:
YouTube Summarizer API running on http://localhost:3001
✓ yt-dlp 2025.x.x (up to date)
Leave this Terminal window open. The server runs as long as this window is open. To stop it later, press Ctrl + C.
Step 4: Open the app
Open the webpage in your browser. The easiest way — open a new Terminal tab (Cmd + T) and run:
open ~/Projects/youtube-summarizer/public/index.html
Or just double-click index.html in Finder. It opens like any webpage.
Step 5: Add your Gemini API key
- In the app, click "Gemini API Settings" to expand it
- Paste your Gemini API key into the API Key field
- Pick a model (the default
gemini-2.0-flashis fast and cheap)
Don't have a key yet? Get one free:
- Go to https://aistudio.google.com/apikey
- Sign in with your Google account
- Click "Create API Key"
- Copy the key and paste it in the app
Your key is saved in your browser's localStorage so you don't have to re-enter it each time.
Step 6: Summarize a video
- Paste a YouTube URL
- Click Summarize
- Watch the 3-step pipeline: Download audio → Transcribe → Analyze topics
- Click any topic section to expand the full transcript with clickable timestamps
Day-to-day usage
Each time you want to use the app:
- Open Terminal
- Run:
cd ~/Projects/youtube-summarizer/server && npm start
- Open
index.htmlin your browser (bookmark it for easy access) - When done, press
Ctrl + Cin Terminal to stop the server
That's it. Two commands.
Troubleshooting
"Cannot connect to backend at localhost:3001" → The server isn't running. Go back to Step 3.
"yt-dlp not installed"
→ Run brew install yt-dlp in Terminal, then restart the server.
Download fails or hangs → yt-dlp might be outdated. The app will try to auto-update it, but you can also manually run:
yt-dlp -U
"Gemini API error: 403" or "401" → Your API key is invalid or expired. Get a new one from https://aistudio.google.com/apikey
Long videos take a while → Normal. A 1-hour video takes ~30 seconds to download audio, then 30-60 seconds for Gemini to transcribe, then another 10-20 seconds for topic analysis. The app shows live progress.
Optional: Make it even easier to start
You can create a shortcut so you just double-click to launch everything. In Terminal:
cat > ~/Projects/youtube-summarizer/start.command << 'EOF'
#!/bin/bash
cd "$(dirname "$0")/server"
echo "Starting YouTube Summarizer..."
echo "Press Ctrl+C to stop."
echo ""
npm start
EOF
chmod +x ~/Projects/youtube-summarizer/start.command
Now you have a start.command file in the project folder. Double-click it to launch the server — it opens Terminal automatically. Then just open index.html in your browser.