Женские, молодёжные и юношеские лиги играют настоящие туры, ставят настоящие рекорды — но живут в разных чатах и на разных сайтах: yflrussia часто не даёт данных даже по матчу, который уже начался или закончился. RFS.Football — сайт, который показывает этот футбол так же профессионально, как большая лига: живой счёт, составы, статистика игрока, медиа, официальный PDF-протокол — на данных того же профессионального движка вещания, которым пользуются операторы прямого эфира. И, в отличие от типового сайта под одну лигу, рассчитан на любое число турниров сразу — хоть один, хоть пятьдесят.
У каждой лиги сегодня есть в лучшем случае yflrussia или wfl.ru — и почти никогда собственных протоколов матчей: их попросту не существует в доступном виде. Найти информацию сложно, а единственный реальный способ хоть что-то узнать — искать нужную группу во «ВКонтакте» и листать её вручную. Этого достаточно, чтобы турнир существовал. Недостаточно, чтобы его смотрели, обсуждали, гордились игроком месяца и делились ссылкой на профиль дочки-нападающей. RFS.Football закрывает именно этот разрыв — превращает уже существующие данные матчей в сайт уровня топ-лиги, не заставляя никого вводить их дважды.
Сейчас у многих лиг — женских, молодёжных, юношеских — попросту нет своего цифрового дома. Один из немногих существующих отраслевых сайтов (yflrussia.ru) не обновлялся визуально годами и по сегодняшним меркам выглядит морально устаревшим, а сами турниры физически разбросаны по десяткам разных чатов, групп и таблиц без единого центра. Мы предлагаем не ещё один такой же сайт, а единую систему, под которую подключается любое число лиг сразу.
football-overlay.ru — профессиональная система управления графикой прямых трансляций: то, чем оператор пользуется во время матча, чтобы поверх видео появлялись счёт, составы, статистика, титры судей и комментаторов. RFS.Football не вводит спортивные данные сам — он читает те же факты в тот момент, когда они уже появились в эфире у зрителя трансляции.
Во время матча у оператора открыта одна страница «Управление матчем»: счёт и таймер (добавленное время считается как в настоящем футболе — «45+3», а не отдельным числом рядом), 25 типов событий одной кнопкой, расстановка на поле перетаскиванием игроков, погода, тренеры и шесть судейских ролей — вплоть до VAR. Гол на табло меняется мгновенно, автора и детали оператор уточняет чуть позже, эфир не ждёт, пока заполнится форма.
Каждое нажатие кнопки на пульте улетает по Socket.IO через очередь сообщений Redis и долетает разом до всех открытых окон графики — и до той самой публичной ленты, которую читает витрина RFS.Football. Redis нужен именно потому, что систему обслуживают два независимых серверных процесса одновременно: без общей очереди событие, отправленное на один процесс, не увидели бы зрители, подключённые к другому.
Технически графика — не отдельная программа и не встроенный плагин видеомикшера, а обычная веб-страница (браузерный источник), которая накладывается поверх видео слоем в OBS или vMix. Это и даёт гибкость: подключить, обновить или заменить графику — значит просто открыть другой URL, а не переустанавливать софт на площадке.
Цвета, шрифт, логотип и набор доступных титров хранятся в отдельной сущности «Пакет графики» — сменить визуальный бренд лиги значит выбрать другой пакет, а не переписывать код трансляции. Это ровно тот же принцип, на котором построена цветовая система RFS.Football (маджента для женских лиг, лайм для молодёжных и юношеских) — просто применённый на уровень ниже, у первоисточника данных. Ниже — два реальных, настоящих титра с одного и того же движка: лайм-графика ЖМФЛ (реальный завершённый матч Чертаново — Мастер-Сатурн) и полностью другой, фиолетово-лаймовый пакет графики для стороннего заказчика — тот же движок под чужим брендом.
Экспериментальный пакет графики: карточки титров получают 3D-наклон, тень контакта с газоном и отражение — не плоская плашка поверх видео, а объект в сцене. Для настоящего позиционирования на конкретной точке поля есть отдельная студия калибровки камеры: оператор отмечает 4 и более известных точки разметки на кадре, система считает проективную матрицу (гомографию), и дальше сама переводит координаты газона в пиксели именно этой камеры — тем же математическим методом, что используют профессиональные системы разметки офсайда.
Перед матчем комментатор открывает готовый дашборд подготовки: форма обеих команд (5 прошлых и 5 будущих игр), последние личные встречи, турнирная таблица с подсветкой обеих команд, дни рождения игроков и тренеров ±3 дня от даты матча — и может скачать PDF-отчёт по самому матчу, клубу, игроку или судье одним кликом, без копания в таблицах.
Сравнение игроков — отдельный инструмент «⚔️ Сравнить игроков»: два игрока в двух колонках, построчно матчи/минуты/голы/передачи/удары/карточки, лучший показатель подсвечивается — готовый аргумент для эфирной дискуссии «кто сильнее», а не подсчёт в уме на ходу.
ЕБУ — Единая база ударений. У каждого игрока, тренера, судьи и комментатора можно один раз кликом отметить, на какую букву падает ударение в фамилии — и дальше это ударение видно всем комментаторам с подписью, кто и когда его поставил. Мелкая деталь, которая на практике решает вполне реальную проблему прямого эфира: не переспрашивать и не коверкать имя игрока в кадре.
Статистика лиги — не три случайные цифры, а полноценный разрез по игрокам (бомбардиры, ассистенты, гол+пас, все виды ударов) и по командам (удары и угловые за матч, допущенные угловые, владение мячом, фолы) — плюс вратари, судьи, минуты, статистика по периодам и дома/в гостях, рекорды лиги и отдельно пенальти. Экспорт в Excel — одной кнопкой, без пересчёта вручную.
QR-код в углу экрана трансляции ведёт на чат зрителей — с фильтром слов и модерацией; отдельная «комната» комментатора показывает тот же чат ему лично, чтобы отвечать на реплики или зачитывать их в эфир, не выходя из рабочего окна. Голосования зрителей запускаются той же кнопкой, а результаты можно вывести прямо в графику эфира титром, как обычное событие матча.
Есть push-уведомления о голах, игровые бейджи за активность в чате, печатные QR-карточки игроков для программки на трибуне и готовые встраиваемые виджеты счёта и турнирной таблицы для сторонних страниц.
Во время матча в эфир и на витрину идут удары, угловые, владение, фолы, карточки — быстрые, понятные цифры, которые обновляются в реальном времени. Это не претендует на роль исчерпывающего постматчевого разбора аналитика — и не должно им быть. Задача другая: не перегрузить эфир, а дать зрителю именно ту информацию, которую он хочет увидеть в моменте, чтобы оставаться внутри игры, а не листать таблицы.
Два серверных процесса вместо одного — стало возможно благодаря той же очереди Redis, — плановый ночной перезапуск в 05:00 до самых ранних матчей, бэкап базы данных в один клик, журнал изменений по каждой записи, отметка «этот матч сейчас также редактирует ещё один оператор». Обычные практики надёжного продакшена, а не разовый скрипт для одного турнира.
Отдельный белый ярлык системы: свой визуальный дизайнер пакетов графики, свои клубы/игроки/лиги, та же студия калибровки камеры. Уже сегодня система умеет обслуживать чужой турнир под его собственным брендом — без единой правки кода (см. скриншот второго, фиолетово-лаймового пакета графики выше).
Почему это важно для RFS.Football: обещание «сколько угодно лиг» — не маркетинговый лозунг, а повторение архитектурного решения, которое уже работает уровнем ниже, на самом источнике данных.
Пакет графики — это просто набор цветов, шрифтов и HTML/CSS-шаблонов, а значит визуальный язык графики не привязан к тому, что уже есть. Мы можем нарисовать титры с нуля под конкретный брендбук лиги или турнира — любую стилистику, любые формы плашек и анимации, — либо взять уже существующие у вас титры (макеты, референсы, готовую графику от другого подрядчика) и вшить их как новый пакет графики в ту же систему управления матчем, которой уже пользуется оператор. В обоих случаях логика ввода данных (счёт, события, составы) остаётся той же самой — меняется только то, как это выглядит на экране.
Оператор трансляции ведёт графику эфира — тем самым, без дополнительных действий, фиксирует факты матча.
football-overlay.ru отдаёт эти же факты наружу read-only каналом по ключу доступа. Ни одного отдельного расчёта.
RFS.Football обновляет счёт, позиции игроков и статистику матча на глазах у зрителя — без перезагрузки страницы.
За RFS.Football и football-overlay.ru стоит не только код. Это ещё и продакшн-команда, которая может взять на себя матч и лигу целиком — от постановки трансляции на площадке до готового видеообзора, который зритель увидит уже через несколько часов после финального свистка.
Режиссёры трансляций, одни из лучших replay-операторов и операторы с опытом 10+ лет именно в спортивных съёмках — не специалисты по корпоративным конференциям, которые взяли в руки камеру для футбола. Понимание игры считывается в выборе ракурса и темпе монтажа быстрее, чем в любом брифинге, — это разница, которую видно на экране.
Оператору графики и оператору статистики не обязательно находиться на стадионе рядом с режиссёром: и управление титрами, и подсчёт статистики ведутся через тот же веб-интерфейс, что и на площадке, — то есть буквально из любой точки мира. Это не компромисс по качеству, а осознанная экономия: меньше логистики и командировочных на каждый матч, при том же результате в эфире.
Отдельные люди в команде занимаются именно послематчевым монтажом: качественный видеообзор (голы, ключевые моменты, лучшие эпизоды) выкладывается на сайт и в группу «ВКонтакте» лиги не на следующий день, а в течение 3 часов после финального свистка — пока матч ещё свежий в памяти у болельщика и есть смысл им делиться.
Итог: мы готовы закрыть весь цикл матча и лиги целиком — препродакшн (подготовка эфира и графики), продакшн (съёмка и вещание) и постпродакшн (быстрые хайлайты и обзоры) — как единый подряд, а не набор разрозненных подрядчиков на каждом этапе.
Сегодня по-настоящему в эфире — одна лига: ЖМФЛ полностью доведена до готовой статистики (таблица, шесть лидербордов, честная карьера игрока). Это не потолок платформы, а просто текущая точка на пути — лига здесь всего лишь запись в общей модели данных со своим цветом и названием, и пятидесятая лига запускается тем же способом, что и первая.
Разница между тремя группами — не в возможностях платформы, а в том, на каком этапе сейчас содержательная работа: где-то нужно просто начать вносить статистику по турам, а где-то — завести турнир с нуля. И то, и другое — вопрос контента, не разработки: девять разделов сайта, цветовая линейка, лидерборды и профили появляются у новой лиги автоматически, без единой правки кода.
Ценность платформы растёт быстрее числа самих лиг. Чем больше турниров — юношеских, молодёжных, женских — работает в одной системе, тем проще любому зрителю найти нужную информацию и остаться на сайте: тот, кто открыл матч ЮФЛ, оказывается в один клик от МФЛ и женской лиги, потому что подача везде одинаково понятна и прозрачна — те же профили игроков, та же турнирная таблица, тот же живой счёт. Это сетевой эффект, а не масштаб ради масштаба: каждая новая подключённая лига увеличивает видимость и вовлечённость не только для себя, а для всей экосистемы сразу.
Пять последних результатов и пять ближайших матчей по всем лигам разом, «игрок дня», блоки «недавно смотрели» и «мои матчи» при входе в аккаунт. Открывающий экран не привязан к одной лиге — это дежурная сводка по всему сайту, а не витрина одного турнира.
Плитка группируется по акценту: маджента — женский футбол, лайм — молодёжный и юношеский. Девятая, двадцатая карточка добавляется тем же способом, каким сделаны эти восемь — записью в реестре и цветом группы, без новой вёрстки.
Обзор, турнирная таблица, расписание с фильтрами по туру и клубу, реестр клубов, поиск по игрокам, пять личных лидербордов, медиа, новости и документы лиги — девять вкладок под общей навигацией. Это не одна большая страница «обо всём», а полноценный сайт лиги внутри сайта.
Во вкладку «Документы» можно прикрепить любые регламентирующие бумаги турнира — регламент, положение о лиге, дисциплинарные решения — PDF, DOC или DOCX, доступные всем посетителям без входа. Загружать и обновлять их может только админ или суперадмин, как и полагается официальным документам, а не творческому контенту.
Турнирная таблица, форма последних пяти игр, шесть личных лидербордов (бомбардиры, ассистенты, гол+пас, вратари, удары команд) — числа те же, что оператор видит в кабинете комментатора во время трансляции. Один расчёт, две витрины.
Лучшего игрока тура и символическую сборную выбирает не редактор на глаз и не открытое голосование — это результат собственной системы подсчёта очков: у каждого амплуа (вратарь, крайний/центральный защитник, опорник, плеймейкер, крайний/центральный нападающий) свой набор весов по статистике матчей тура. Из двух классических расстановок (4-1-2-2-1 и 3-2-2-2-1) автоматически выбирается та, что даёт больший суммарный балл — форма может меняться от тура к туру, но сам расчёт всегда прозрачный и воспроизводимый, а не «на глаз».
Счёт, владение мячом, реакции болельщиков, лента ключевых событий — голы, карточки, замены с пометкой «кто вместо кого» — обновляются по сокет-соединению с football-overlay.ru прямо во время игры. Зрителю не нужно обновлять страницу, чтобы узнать о голе.
Полная хронология по минутам, включая связки «кто вместо кого вышел» и авторов голевых передач — не только итоговый счёт, а история того, как именно он сложился, минута за минутой.
Протокол не собирается постфактум в чьём-то кабинете — он складывается по мере того, как оператор статистики вносит данные: составы и первые события видны уже во время самой игры, а полная, подписанная версия готова в течение минуты после финального свистка. Судья, делегат матча, представитель команды или просто зритель распечатывают документ прямо со своего телефона, ещё не уйдя со стадиона — не нужно ждать, пока кто-то сведёт бумаги вечером дома.
Открыт любому посетителю сайта без входа и пароля — те же данные, что видны в системе вещания (составы, голы и передачи, карточки, судейская бригада, тренеры, погода, статистика матча), просто в виде готового к печати документа с QR-кодом на живую страницу матча.
То же самое работает и в обратную сторону — для матчей без прямой трансляции. Как только клуб или лига передают бумажный протокол, оператор вносит его в систему, и уже в течение 15 минут полная информация появляется на сайте: составы обеих команд, события матча и, где это возможно (если протокол содержит расстановку), позиции игроков на поле — зрителю не нужно ждать сведения итогов до конца тура.
Координаты на поле и цвета кружков — не сгенерированная схема по амплуа, а реальные данные того конкретного матча: тот же комплект формы, что был на команде в этот день. Ниже — полные составы с капитаном, жёлтыми/красными карточками и заменами.
Позиция, возраст, клуб, сезонные итоги и honest-статистика минут: если игрок вышел на замену в добавленное время — сайт не покажет фантомные «−3 минуты», как бывает у самодельных таблиц. Ниже — матч за матчем: соперник, счёт, минуты, гол/пас, карточки.
Блок «Хронология карьеры» — это фактически трансферная история игрока: за какой клуб и в каком туре он выходил на поле. По мере подключения новых сезонов и лиг сюда добавится и переход между самими лигами — например, из юношеского дивизиона в молодёжный, а оттуда в суперлигу, — то есть будет видно не только «где играл», но и как игрок рос по уровню турниров. Соперник в истории матчей ведёт на карточку клуба, клуб — на состав, состав — на профиль партнёра по команде: сайт устроен как связный граф, а не набор изолированных страниц.
Вместимость арены, загруженные комплекты формы, полный ростер с позициями и ближайшие/прошедшие матчи клуба с фильтрами по сопернику и туру — визитка команды, а не строка в общем списке.
Ниже — не пункты дорожной карты на будущее, а раздел сайта, который уже отвечает пользователям прямо сегодня: реакции, голосования и ставки на гол считаются в реальном времени, ровно как и остальная live-статистика матча, и не требуют регистрации, чтобы попробовать.
🔥👏😢😡⚽ под каждым матчем и новостью — без входа, только анонимная метка устройства, чтобы не голосовать дважды.
Зрители выбирают лучшего игрока матча в открытом окне после финального свистка, результат виден сразу всем.
Тот же опрос, что оператор запускает прямо в эфир, доступен и на сайте — с результатами в реальном времени.
Во время live-матча зритель ставит на автора следующего гола — результат баннером в ту же секунду, как гол забит.
Один инпут на весь сайт — игроки, клубы, новости и матчи сразу, с выдачей на лету.
На странице игрока — подсказка «может быть интересно» по амплуа, возрасту и результативности. Прозрачная формула, не чёрный ящик.
Клубы, лиги и игроки в закладки, лента «мои матчи» и «недавно смотрели» — работает даже без аккаунта, на устройстве зрителя.
Ручной переключатель для дневного просмотра с трибуны — тёмная «прайм-тайм» сцена не единственный вариант.
Готовая картинка счёта для соцсетей и мессенджеров собирается на лету под конкретный матч, а не рисуется вручную редактором.
Высота цветной полосы слева = объём прав. Никто не получает повышенную роль автоматически — заявка на регистрацию редактора, фотографа или видеооператора ждёт подтверждения администратором.
Читает всё бесплатно: новости, таблицы, статистику, медиа, документы лиг. Комментировать нельзя.
+ комментарии под новостями, избранные клубы/лиги, лента «мои матчи», подписка на уведомления о голах, свой видеоплеер трансляций.
+ публикует свои фотогалереи. Текстовые новости — вне его раздела.
+ публикует свои видеообзоры (YouTube / VK Видео — просто ссылка, без загрузки тяжёлых файлов).
+ пишет и публикует свои текстовые новости лиги.
+ создаёт ключ трансляции для матча, привязывает готовую запись, загружает фото бумажного протокола — единственный, помимо админов, кто может это делать.
+ публикации любого автора, модерация комментариев, документы лиг, управление пользователями уровня ниже (одобрение заявок, роли, блокировка).
+ управляет самими админами, полный контроль над сайтом, видит журнал действий и аналитику публикаций.
Сводка публикаций и заявок на регистрацию, создание пользователей нужной роли в один клик, управление комментариями, документами лиг и журналом действий — обычная приборная панель, знакомая любому, кто вёл соцсети или CMS.
Оператора трансляции или второго администратора нельзя получить через форму регистрации — только руками суперадмина или админа. Это осознанная защита: расширенные права выдаёт человек, а не форма на сайте.
Next.js 16 + React 19 на фронте, собственная база Postgres — только для новостей, медиа и документов. Все спортивные данные — не копируются, читаются напрямую.
Сайт крутится на отдельном сервере через специально расширенный read-only API — ни одного лишнего килобайта нагрузки на систему, которая в этот момент ведёт живую трансляцию матча.
Если football-overlay.ru недоступен долю секунды, сайт показывает последний известный результат, а не пустой экран — и сам сообщает об этом администраторам.
Позиции игроков, счёт и статистика обновляются по сокет-соединению — то же самое, что видит оператор в кабинете эфира, с разницей в секунды.
Карта сайта, RSS, микроразметка schema.org, шеринг в Telegram, QR-профили игроков — сайт с самого начала настроен на охват, а не только на переходы по прямой ссылке.
Минуты на замене, голы в свои ворота, добавленное время — везде разобраны и перепроверены отдельно от того, что просто «лежит в базе».
Проверено на десктопе и мобильной ширине для каждого нового раздела — не «адаптивность по умолчанию», а реальная сверка в браузере.
Кто что может делать, описано в одном месте кода, а не размазано по страницам — новая роль или право не превращается в поиск по всему проекту.
Каждое новое поле, которое появляется в football-overlay.ru (цвета формы, погода, судьи), добавляется в публичный API аддитивно — старые интеграции не ломаются.
Реакции, MVP-голосование, live-опросы и «угадай гол» — не пункт бэклога, а рабочий раздел сайта уже сегодня (см. выше).
Плеер с метками голов/карточек на шкале, привязка уже идущей трансляции с VK Видео/YouTube одной ссылкой.
Прозрачная формула (форма + разница мячей + фактор своего поля) уже считается на football-overlay.ru — на сайте останется только показать три вероятности.
Та же формула по амплуа уже умеет считать не только тур, а весь сезон целиком на движке трансляций — добавить как ещё одну витрину лиги, рядом с уже работающей сборной тура.
Приём live-сигнала по SRT/RTMP напрямую с площадки — расчёт мощностей под 50 одновременных матчей уже сделан.
Визуальный профиль игрока сразу по нескольким метрикам — быстрое сравнение на глаз поверх уже посчитанных цифр.
Английская версия сайта — canonical-заготовка под /en уже есть в SEO-слое, остаётся перевод контента.
Меня зовут Антон Белоусов.
Футбол в моей жизни уже более 30 лет — фактически с шести лет. А более 10 лет моя профессиональная деятельность непосредственно связана с телевизионным производством, прямыми трансляциями и технологиями, которые используются во время эфира.
За это время я успел поработать сразу в нескольких направлениях телевизионного и спортивного производства. Сегодня я совмещаю работу режиссёра прямых эфиров, режиссёра и дизайнера телевизионной графики, программиста, а также работаю Replay Operator в VAR-центре.
Такое сочетание профессий для меня принципиально важно.
Я знаю телевизионную трансляцию не только с точки зрения человека, который пишет программное обеспечение. Я сам работаю в прямом эфире и понимаю, что происходит за несколько секунд до выхода графики в эфир, как работает режиссёр, что требуется оператору титров, насколько критичны скорость и надёжность системы и почему во время матча интерфейс должен позволять выполнить нужное действие практически мгновенно.
С другой стороны, как разработчик я понимаю, как все эти процессы можно автоматизировать, связать между собой и превратить из набора отдельных программ, таблиц, файлов и ручных операций в единую систему.
Именно на пересечении этих компетенций появился RFS-Football.
Для меня это не просто очередной IT-продукт для спорта. Это результат многолетней работы внутри футбольных и телевизионных процессов и понимания тех проблем, с которыми организаторы соревнований, федерации, телевизионные бригады, режиссёры, статистики и операторы графики сталкиваются на реальных матчах.
Работая режиссёром графики, я смотрю на систему глазами человека, которому необходимо красиво и правильно показать информацию зрителю.
Работая режиссёром прямого эфира — глазами человека, который отвечает за трансляцию целиком и не может позволить себе ждать, пока кто-то исправит данные или разберётся со сложным интерфейсом.
Работая Replay Operator в VAR-центре — глазами специалиста, который знает, насколько в современном футболе важны точность, скорость, регламентированные процессы и ответственность каждого участника производственной цепочки.
А работая программистом — понимаю, как все эти требования реализовать технически.
Поэтому при создании RFS-Football моей задачей было не просто сделать программу для вывода футбольных титров.
Моя цель значительно шире — создать профессиональную технологическую среду, в которой данные о соревновании, матчах, командах, игроках, составах, событиях и статистике могут использоваться для управления телевизионной графикой быстро, централизованно и понятно для людей, непосредственно работающих на трансляции.
При этом система изначально создаётся с учётом реальных условий спортивного производства: нескольких матчей и стадионов, разных уровней доступа сотрудников, удалённой работы, оперативного изменения данных, взаимодействия статистиков и телевизионной команды и возможности использовать различные графические пакеты под конкретный турнир или федерацию.
Я считаю большим преимуществом RFS-Football то, что продукт развивается изнутри индустрии.
Мне не приходится представлять, как работает футбольная трансляция, — я работаю в ней сам. Мне не нужно предполагать, что удобно режиссёру или оператору графики, — я сам выполняю эту работу. И мне не требуется объяснять разработчику, какой продукт необходимо создать, — я непосредственно участвую в его разработке.
RFS-Football — это не попытка адаптировать обычное программное обеспечение под футбол. Это система, которая изначально создавалась вокруг футбола, прямого эфира и реальных процессов спортивного телевидения.
Инфраструктура рассчитана не на конкретное число турниров, а на любое. Вопрос не «поместится ли ваша лига», а с какого тура начать вносить статистику — сайт для неё соберётся тем же вечером.