Projects / Content Moderation System | Faizan Nadeem
Role
Backend & AI Engineer
Timeline
January 2025 โ€” April 2025
Team size
โ€”
Status
โ— Completed
Category
AI ยท Content Moderation
Overview

Content Moderation System โ€” Filtering offensive content across text, audio, image, and video

Content Moderation System is a multi-modal service that detects and filters offensive content across four content types: text, audio, images, and video. It was built between January and April 2025.

Instead of treating moderation as a text-only problem, the system handles each medium with a method suited to it. Text goes through leetspeak normalization so disguised words are still caught. Audio is moderated by beeping only the offending segments, which keeps the rest of the recording usable. Images and video are moderated with OpenAI CLIP.

I built the Flask backend that ties this together: RESTful moderation endpoints, token-based authentication, rate limiting, and database logging of every moderation result.

4
Content types moderated
CLIP
Image and video classification
REST
Token auth and rate limiting

Core features

  • Text Moderation โ€” detects offensive language, including obfuscated spellings, through leetspeak normalization
  • Audio Moderation โ€” beeps out only the offending segments while preserving the surrounding context
  • Image & Video Moderation โ€” content classification with OpenAI CLIP
  • Moderation Logging โ€” every result is stored in a database for review

Platform capabilities

  • RESTful Endpoints โ€” one API surface for every content type
  • Token-Based Authentication โ€” only authorized clients can submit content
  • Rate Limiting โ€” protects the service from abuse and runaway usage

Technical architecture

Python ยท Flask logo
Python ยท Flask
Lightweight web framework for the moderation REST API.
FFmpeg ยท MoviePy logo
FFmpeg ยท MoviePy
Audio and video processing, including segment-level editing.
OpenAI CLIP logo
OpenAI CLIP
Model used to classify images and video frames.
Database logo
Database
Stores the result of every moderation request.

Challenges

  • Catching offensive text that is deliberately obfuscated (leetspeak)
  • Censoring audio without muting or discarding the whole clip
  • Moderating visual content, not just text

Solutions

  • Normalized leetspeak before matching, so obfuscated words are treated like their plain spelling
  • Beeped only the offending audio segments, keeping the rest of the clip intact
  • Used OpenAI CLIP for image and video moderation