731 шрифт за 2 часа вместо 60: как мы автоматизировали лицензионный аудит парсером метаданных шрифтов


Клиент — компания из digital-сегмента. Подробности под NDA.

Задача — проверить 731 шрифт на лицензионную чистоту, разделить на свободные и коммерческие, отдельно выделить шрифты российских разработчиков.

Решение — скрипт-парсер CSS-метаданных шрифтов: читает поля License, Vendor, Copyright и сверяет их с открытыми реестрами правообладателей — международными и российскими.

Результат — аудит занял 2 часа вместо 60. Высвободившееся время в тарифе пошло на другие задачи клиента в том же месяце.


Контекст

В рамках абонентского обслуживания мы сопровождаем компанию из digital-сегмента. В тарифе клиента — 20 часов работы юриста. Обычно этого времени хватает примерно на 30 задач, в зависимости от их объёма.

Клиент обратился с задачей: провести аудит 731 используемого шрифта и разделить их на свободные и коммерческие, а также выделить шрифты российских разработчиков. Для этого юристу необходимо вручную проверить лицензию каждого шрифта:

  1. Идентифицировать каждый шрифт: установить название и правообладателя.
  2. Найти официальный источник — сайт, репозиторий или иной источник, подтверждающий происхождение шрифта.
  3. Найти и изучить лицензионное соглашение.
  4. Установить, какой тип использования шрифта разрешён: свободный (бесплатный, в т.ч. для коммерческого использования), условно-свободный (бесплатный только для личного использования), коммерческий (требует покупки лицензии).
  5. Определить, к какой юрисдикции принадлежит правообладатель (Россия или иная страна).
  6. Сделать таблицу и вручную фиксировать результат по каждой позиции.

Перед тем как взять задачу в работу, мы оценили ресурсы: ручной аудит занимает 50–60 часов (5 минут на файл). Стоимость задачи для клиента составила бы 312 000 ₽ — это эквивалент трех месяцев абонентской поддержки.

Чтобы выполнить задачу быстрее, мы написали скрипт, который извлекает метаданные напрямую из CSS-описаний шрифтов и сверяет их с открытыми реестрами правообладателей. Такой аудит занял 2 часа. Тот же подход в некоторых случаях применим к смежным IP-аудитам — изображениям, иконкам, видео и любым цифровым активам с метаданными о правообладателе.


Как работает парсер

Скрипт обходит весь пакет (731 позицию) и по каждому шрифту выполняет три шага:

  1. Извлекает метаданные из CSS — поля License, Vendor, Copyright и сопутствующие комментарии и спецтеги.
  2. Нормализует значения — у разных вендоров написание и формат записи лицензии отличаются, без нормализации сверка с реестрами дала бы много ложных «не найдено».
  3. Сверяет с базами правообладателей — международными (MyFonts, Linotype, FontShop) и российскими (ParaType, Letterhead, type.today).

На выходе по каждой позиции — одна строка: имя файла → правообладатель → тип лицензии → юрисдикция вендора.


Что получил клиент

1. Итоговую таблицу с тремя срезами по каждой позиции:

  • Свободные — шрифты с открытыми лицензиями (SIL OFL, Apache, public domain). Использовать можно без покупки, с соблюдением условий лицензии.
  • Коммерческие — со ссылкой на вендора и типом лицензионной модели (per-user, per-server, web font subscription).
  • Российские разработчики — отдельный фильтр поверх обоих сегментов: для проектов с требованием импортозамещения и миграций на отечественные шрифты.

По каждой позиции — комментарий с рекомендацией: оставить как есть, заменить, докупить лицензию или вынести на ручную перепроверку.

При этом у метода есть ограничения. Парсер опирается на метаданные, которые заполнил автор шрифта. Если поле License пустое или данные не обновлены после ребрендинга студии — такие позиции мы дополнительно проверяли вручную. На выборочной проверке расхождений с парсером не обнаружили.



2. Сэкономленные часы. Высвободившееся время в тарифе пошло на другие задачи клиента в том же месяце.



Если вы хотите больше узнать об этом способе или нашем опыте автоматизации, напишите Марине Джатэ в Телеграм или через форму обратной связи