Profanity Detection API
REST API для поиска мата в тексте, аудио и видео. Морфологический анализатор PyMorphy3 находит нецензурную лексику во всех падежах, формах и с намеренными искажениями — через один HTTP-запрос.
Морфологический анализ
PyMorphy3 + словарь из 500+ корней. Находит «хуй», «хую», «хуем», «охуел», «похуистически» — все формы, все падежи, все приставки.
Устойчив к обфускации
Распознаёт мат с намеренными искажениями: «бл*ть», «сууука», «х_уй», leet-speak («bl9t»). Кастомные словари для ваших кейсов.
Русский + английский
Модели для обоих языков, параметр language=ru|en. Автоопределение языка на /analyze/media через Deepgram detect_language.
Для текста, аудио и видео
Текст — POST /analyze/text до 50 000 символов. Аудио и видео — POST /analyze/media, /analyze/media-url, загрузка файла или YouTube/VK/RuTube-ссылки.
Позиции слов в ответе
Ответ содержит массив words с полями text, isProfane, startMs, endMs. Удобно для подсветки в UI, генерации субтитров, ручной модерации.
Высокая точность
Режим standard — 97%+ precision. Режим precise — 99%+ за счёт двух AI-провайдеров параллельно. Режим enhanced — для песен, отделяет вокал через Demucs.
Примеры вызова
import os
from videocensor import VideoCensor
client = VideoCensor(api_key=os.environ["VIDEOCENSOR_API_KEY"])
result = client.analyze_text("проверь этот текст на мат")
# result: AnalyzeTextResult(flagged_count=..., categories=...)import { VideoCensor } from "@videocensor/sdk";
const client = new VideoCensor({ apiKey: process.env.VIDEOCENSOR_API_KEY! });
const result = await client.analyzeText("check this text for profanity");
// result: { flaggedCount: ..., categories: [...] }curl -X POST https://videocensor.ru/api/v1/analyze/text \
-H "X-API-Key: $VIDEOCENSOR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"test","language":"ru"}'import os
from videocensor import VideoCensor
client = VideoCensor(api_key=os.environ["VIDEOCENSOR_API_KEY"])
result = client.analyze_media("/path/to/video.mp4", language="ru")
# result: AnalyzeTextResult(flagged_count=..., categories=...)Где применяется
Модерация UGC
Проверка постов, комментариев, имён пользователей перед публикацией.
YouTube-блогеры
Проверка видео перед загрузкой — предотвращение demonetization за мат.
Подкаст-продакшены
Автоматическая проверка эпизодов перед публикацией, генерация списка таймкодов с матом.
Корпоративные записи
Модерация записей звонков, вебинаров, внутренних совещаний для compliance.
Образовательные платформы
Фильтрация пользовательского контента в детских и учебных приложениях.
Контент-студии
Проверка сценариев, скриптов, озвучки до релиза.
Profanity Detection — вопросы
Чем ваш Profanity Detection API отличается от bad-words npm-пакетов?+
Пакеты вроде bad-words или profanity-filter — статические списки слов, не ловят падежи, формы, обфускацию. Наш API использует морфологический анализатор PyMorphy3 + 500+ корней + AI-модели, работает с текстом, аудио и видео.
Поддерживает ли API другие языки кроме русского и английского?+
Сейчас полноценно — русский и английский. Остальные языки на roadmap. Параметр language=ru|en, автоопределение для медиа.
Как обрабатываются слова с намеренными искажениями?+
Нормализация перед анализом: замена цифр на буквы (1→i, 3→e, 0→o), удаление повторов символов, удаление пунктуации внутри слов. Потом морфологический разбор и поиск по корням.
Можно ли добавить свои слова?+
Да. Параметр customDictionary в запросе — массив ваших слов. Они будут лемматизированы и проверены вместе с базовым словарём. Для whitelist — параметр whitelist.
Есть ли false positives?+
Да, в редких случаях (например, «конь» в словосочетании «хуй коня»). Используйте whitelist для конкретных слов или снизьте пресет до mild для снижения чувствительности.
Какое время ответа?+
Текст — 50-200 мс. Аудио/видео — зависит от длительности: минута аудио в standard ≈ 8 секунд processing. В Precise — ≈ 15 секунд. В Enhanced — ≈ 60 секунд (Demucs). Для длинных файлов используйте webhooks.
Поиск мата через API за 30 секунд
100 кредитов/мес на Free. pip install videocensor, импорт, запрос — готово.