Skip to content
Finalist

Duckie

Duckie is an AI-powered platform that transforms scattered YouTube product reviews into a single, coherent narrated supercut.

Core trick

Gemini watches YouTube review videos, extracts timestamped strong moments, and a second agent trims and stitches the clips.

Tags

Description

Duckie is an AI-powered platform that transforms scattered YouTube product reviews into a single, coherent narrated supercut. Users submit a product query (e.g., "MacBook Pro M4 review"), and Duckie autonomously searches for reviews using Youtube Data API, understands them using Google Gemini's 3.1 Pro model, extracts the strongest moments with precise timestamps. A different agent downloads and trims the clips and stitches everything into a final video. You can interact with Duckie using Telegram! Thanks to Vercal! The result is a "reviewer documentary" that lets viewers hear directly from multiple creators and get the hand of any product without having to spend a ton of time.
vinaykudari/duckie★ 00 forksPythonCreated Mar 21, 2026 · last push Mar 22, 2026

README excerpt

# Duckie

Hackathon starter repo with:

- `apps/web`: Next.js 16 frontend with Vercel AI SDK chat UI and Gemini multimodal chat route
- `apps/backend`: FastAPI skeleton managed with `uv`
- `ops/`: VM deployment artifacts for systemd, nginx, and post-merge refresh

Agent setup notes live in [AGENTS.md](/Users/vinay/code/duckie/AGENTS.md).

## Quick Start

### Frontend

```bash
cd /srv/apps/duckie
pnpm install
pnpm dev:web
```

Create `apps/web/.env.local` with:

```bash
GEMINI_API_KEY=...
TELEGRAM_BOT_TOKEN=...
TELEGRAM_WEBHOOK_SECRET_TOKEN=...
TELEGRAM_BOT_USERNAME=duckie_bot
DUCKIE_BACKEND_URL=http://127.0.0.1:8000
```

### Backend

```bash
cd /srv/apps/duckie/apps/backend
~/.local/bin/uv sync
~/.local/bin/uv run uvicorn backend.api:app --reload --host 127.0.0.1 --port 8000
```

Create `apps/backend/.env` with:

```bash
APP_ENV=production
APP_HOST=0.0.0.0
APP_PORT=4195
APP_ROOT_PATH=
GEMINI_API_KEY=...
YOUTUBE_API_KEY=...
YOUTUBE_COOKIE_FILE=/absolute/path/to/cookies.txt
TELEGRAM_BOT_TOKEN=...
PUBLIC_APP_URL=https://duckie.hackerpod.dev
```

### YouTube cookies

If `yt-dlp` hits YouTube anti-bot checks, export a Netscape-format `cookies.txt` from a browser session that is logged into YouTube, then either:

- place the file at `/srv/apps/duckie/cookies.txt`, or
- set `YOUTUBE_COOKIE_FILE` to its absolute path in `apps/backend/.env`

Do not commit `cookies.txt`. The repo ignores it.

## Notes

- The landing page is the default Vercel deployment target.
- The chat playground li

Team