AI-powered video content analysis for brand safety compliance. Built with Next.js and powered by Memories.ai.
- Instant Video Analysis: Upload videos and get brand safety analysis in seconds
- Interactive Timeline: Visual timeline with clickable risk markers
- GARM Categories: Detects profanity, violence, sexual content, drugs/alcohol, hate speech, sensitive issues, and sponsorship
- Multiple Export Formats: Export reports as JSON, CSV, or SRT subtitle files
- Real-time Processing: Live progress indicators and instant results
npm install- Get your API key from Memories.ai
- Create account → API section → Create new API key
- Copy
.env.exampleto.env.local:
cp .env.example .env.local- Add your API key to
.env.local:
MEMORIES_API_KEY=your_memories_ai_api_key_herenpm run devOpen http://localhost:3000 to see the application.
- Upload Video: Drag and drop a video file (MP4, AVI, MOV, etc.) up to 100MB
- Wait for Analysis: The system will upload and analyze your video using AI
- Review Timeline: Click on risk markers to jump to specific moments
- Export Results: Download analysis reports in JSON, CSV, or SRT format
- Frontend: Next.js 15, React 19, TypeScript, Tailwind CSS
- Backend: Next.js API Routes
- AI Analysis: Memories.ai (video indexing, search, transcription)
- File Handling: react-dropzone
- Deployment: Vercel-ready
- 🤬 Profanity: Explicit language and swearing
- 💋 Sexual Content: Adult material and suggestive content
- 🍺 Drugs & Alcohol: Substance use and consumption
- 🔫 Violence: Weapons, fighting, and aggressive behavior
⚠️ Hate Speech: Discriminatory language- 🗞️ Sensitive Issues: Political content and controversial topics
- 📣 Sponsorship: Undisclosed advertising content
src/
├── app/
│ ├── api/memories/ # API routes for Memories.ai integration
│ │ ├── upload/ # Video upload endpoint
│ │ ├── status/ # Processing status check
│ │ ├── analyze/ # Brand safety analysis
│ │ └── export/ # Report export (JSON/CSV/SRT)
│ ├── globals.css # Global styles
│ ├── layout.tsx # Root layout
│ └── page.tsx # Main application page
├── components/
│ ├── VideoPlayer.tsx # Video player with timeline
│ └── UploadZone.tsx # File upload component
└── lib/
├── memoriesClient.ts # Memories.ai API wrapper
└── riskCategories.ts # GARM category definitions
- Connect your repository to Vercel
- Add environment variable:
MEMORIES_API_KEY - Deploy automatically
- Problem: "Manual brand safety review takes 3+ hours per video"
- Upload: Drop in sample ad video → processing spinner
- Magic Moment: Timeline populates with risk markers instantly
- Interaction: Click marker → jump to exact timestamp → show evidence
- Value: "Export report → hand to editor → save 3 hours"
Built for AI Engine Hackathon. Open source MIT license.