Skip to content

buildingopen/openfeedback

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenFeedback

Get AI-powered feedback on your presentations and talks. Point it at a YouTube URL or a local video file, and get structured analysis of your delivery, content, and stage presence.

Quick Start

pip install -r requirements.txt
export GEMINI_API_KEY="your-key-here"   # Get one at https://aistudio.google.com/apikey

# Analyze a YouTube talk
python openfeedback.py "https://youtube.com/watch?v=..."

# Analyze just your segment of a longer video
python openfeedback.py "https://youtube.com/watch?v=..." --start 38:00 --end 1:09:00

# Analyze a local recording
python openfeedback.py ./my-talk.mp4

# Get JSON output for scripting
python openfeedback.py ./my-talk.mp4 --json

What You Get

### 1. Content Summary
- [0:00-2:30] Introduction and problem framing...
- [2:30-8:00] Live demo of the product...

### 2. Delivery Analysis
- **Energy & enthusiasm**: Strong opener, energy dips around 5:00...
- **Filler words**: "so" used ~15 times, "um" ~8 times...

### 3. Strongest Moments
- [3:15] The live demo transition was smooth and confident...

### 4. Weakest Moments
- [7:20] Lost thread during Q&A setup...

### 5. Top 10 Actionable Fixes
1. Reduce filler word "so" by pausing instead...
2. Make eye contact with the audience, not the screen...

### 6. Ratings
| Dimension           | Score  |
|---------------------|--------|
| Content             | 7/10   |
| Delivery            | 6/10   |
| Overall             | 7/10   |

Requirements

  • Python 3.10+
  • yt-dlp (installed via requirements.txt, also needs to be on PATH)
  • A Gemini API key (free tier works for shorter videos)

Options

Flag Description
--start Start timestamp, e.g. 38:00 (YouTube only)
--end End timestamp, e.g. 1:09:00 (YouTube only)
--json Output as JSON
--model Override the Gemini model (default: gemini-2.5-flash-preview-05-20)

How It Works

  1. Downloads the video (if YouTube URL) using yt-dlp
  2. Uploads it to the Gemini Files API
  3. Asks Gemini to analyze the presentation across multiple dimensions
  4. Prints structured Markdown feedback
  5. Cleans up: deletes the uploaded file from Gemini and any temp downloads

The analysis covers content structure, delivery mechanics (energy, pacing, filler words, body language), strongest and weakest moments with timestamps, 10 actionable fixes, and a rating breakdown.

Why I built this

I gave a talk at Cursor Meetup Hamburg #3 about using AI agents for non-coding work. After the event I wanted honest feedback on my own talk, the kind a friend wouldn't give. So I fed the recording into Gemini and got a minute-by-minute breakdown: weak moments, filler words, pacing issues, concrete fixes.

It worked well enough that I turned the workflow into a tool. Free, MIT, no signup.

Built by Federico De Ponte.

About

Get AI feedback on any talk or presentation. Drop in a YouTube URL, get structured analysis powered by Gemini.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages