731 шрифт за 2 часа вместо 60: как мы автоматизировали лицензионный аудит парсером метаданных шрифтов
Клиент — компания из digital-сегмента. Подробности под NDA.
Задача — проверить 731 шрифт на лицензионную чистоту, разделить на свободные и коммерческие, отдельно выделить шрифты российских разработчиков.
Решение — скрипт-парсер CSS-метаданных шрифтов: читает поля License, Vendor, Copyright и сверяет их с открытыми реестрами правообладателей — международными и российскими.
Результат — аудит занял 2 часа вместо 60. Высвободившееся время в тарифе пошло на другие задачи клиента в том же месяце.
Контекст
В рамках абонентского обслуживания мы сопровождаем компанию из digital-сегмента. В тарифе клиента — 20 часов работы юриста. Обычно этого времени хватает примерно на 30 задач, в зависимости от их объёма.
Клиент обратился с задачей: провести аудит 731 используемого шрифта и разделить их на свободные и коммерческие, а также выделить шрифты российских разработчиков. Для этого юристу необходимо вручную проверить лицензию каждого шрифта:
- Идентифицировать каждый шрифт: установить название и правообладателя.
- Найти официальный источник — сайт, репозиторий или иной источник, подтверждающий происхождение шрифта.
- Найти и изучить лицензионное соглашение.
- Установить, какой тип использования шрифта разрешён: свободный (бесплатный, в т.ч. для коммерческого использования), условно-свободный (бесплатный только для личного использования), коммерческий (требует покупки лицензии).
- Определить, к какой юрисдикции принадлежит правообладатель (Россия или иная страна).
- Сделать таблицу и вручную фиксировать результат по каждой позиции.
Перед тем как взять задачу в работу, мы оценили ресурсы: ручной аудит занимает 50–60 часов (5 минут на файл). Стоимость задачи для клиента составила бы 312 000 ₽ — это эквивалент трех месяцев абонентской поддержки.
Чтобы выполнить задачу быстрее, мы написали скрипт, который извлекает метаданные напрямую из CSS-описаний шрифтов и сверяет их с открытыми реестрами правообладателей. Такой аудит занял 2 часа. Тот же подход в некоторых случаях применим к смежным IP-аудитам — изображениям, иконкам, видео и любым цифровым активам с метаданными о правообладателе.
Как работает парсер
Скрипт обходит весь пакет (731 позицию) и по каждому шрифту выполняет три шага:
- Извлекает метаданные из CSS — поля License, Vendor, Copyright и сопутствующие комментарии и спецтеги.
- Нормализует значения — у разных вендоров написание и формат записи лицензии отличаются, без нормализации сверка с реестрами дала бы много ложных «не найдено».
- Сверяет с базами правообладателей — международными (MyFonts, Linotype, FontShop) и российскими (ParaType, Letterhead, type.today).
На выходе по каждой позиции — одна строка: имя файла → правообладатель → тип лицензии → юрисдикция вендора.
Что получил клиент
1. Итоговую таблицу с тремя срезами по каждой позиции:
- Свободные — шрифты с открытыми лицензиями (SIL OFL, Apache, public domain). Использовать можно без покупки, с соблюдением условий лицензии.
- Коммерческие — со ссылкой на вендора и типом лицензионной модели (per-user, per-server, web font subscription).
- Российские разработчики — отдельный фильтр поверх обоих сегментов: для проектов с требованием импортозамещения и миграций на отечественные шрифты.
По каждой позиции — комментарий с рекомендацией: оставить как есть, заменить, докупить лицензию или вынести на ручную перепроверку.
При этом у метода есть ограничения. Парсер опирается на метаданные, которые заполнил автор шрифта. Если поле License пустое или данные не обновлены после ребрендинга студии — такие позиции мы дополнительно проверяли вручную. На выборочной проверке расхождений с парсером не обнаружили.
2. Сэкономленные часы. Высвободившееся время в тарифе пошло на другие задачи клиента в том же месяце.
Если вы хотите больше узнать об этом способе или нашем опыте автоматизации, напишите Марине Джатэ в Телеграм или через форму обратной связи