Если видео урок считается просмотренным без просмотра, ученики могут получать доступ к следующим модулям, сертификатам или тестам без реального прохождения материала. Это ломает логику обучения и доверие к платформе.

Нужно проверить, по какому событию урок отмечается просмотренным: открытие страницы, старт видео, процент просмотра, достижение конца или серверная запись прогресса.

Коротко: что делать

  • Проверить условие отметки урока просмотренным
  • Посмотреть события плеера: play, pause, timeupdate, ended
  • Проверить, можно ли перемотать видео в конец
  • Проверить отправку прогресса на backend
  • Проверить сценарии обновления страницы и нескольких вкладок

Основные причины

У этой проблемы редко бывает одна универсальная причина. Обычно нужно проверить связку настроек, данных, кода и внешних сервисов, а потом уже выбирать способ исправления.

  • Урок отмечается просмотренным при открытии страницы
  • Событие ended вызывается после перемотки
  • Frontend отправляет процент просмотра без серверной проверки
  • Прогресс кешируется или копируется между уроками
  • Несколько вкладок перезаписывают состояние

Пошаговая диагностика

Диагностику лучше вести от конкретного примера: один пользователь, один запрос, один документ, одно событие или один экран. Так проще увидеть точку, где система начинает вести себя неправильно.

  • Открыть урок тестовым учеником и смотреть сетевые запросы
  • Проверить, какой endpoint меняет статус
  • Попробовать перемотку, обновление страницы и повторный вход
  • Сравнить client time и server progress
  • Проверить логи прогресса по секундам

Как исправить проблему

Исправление должно закрывать корневую причину, а не только внешний симптом. Если проблема связана с доступами, платежами, данными или безопасностью, сначала стоит сделать резервную копию и проверить правку на тестовом сценарии.

  • Отмечать просмотр только после достижения нужного процента реального времени
  • Проверять прогресс на backend, а не доверять одному запросу frontend
  • Ограничить перемотку, если курс этого требует
  • Хранить прогресс по уроку, пользователю и версии видео
  • Добавить защиту от повторных вкладок и ложных событий

Безопасный план решения

Сначала сформулируйте правило прохождения: процент, время, конец видео или комбинация условий. Затем проверяйте его на тестовом ученике и разных браузерах.

Чего не стоит делать

  • Не отмечать урок просмотренным при загрузке страницы
  • Не доверять произвольному проценту с frontend
  • Не блокировать перемотку без бизнес-решения
  • Не менять прогресс старых учеников без отчета

Что подготовить перед исправлением

  • Ссылка на урок
  • Правило прохождения видео
  • Плеер или LMS, которые используются
  • Пример пользователя с ошибочным прогрессом

FAQ

Можно ли считать урок просмотренным по событию ended?

Можно, но только если перемотка и подмена события не дают ложный результат.

Нужно ли хранить прогресс на сервере?

Да, если прогресс влияет на доступ, сертификаты или оплату.

Почему ошибка появляется не у всех?

Могут влиять браузер, автоплей, мобильный плеер, несколько вкладок и качество связи.

Когда стоит обратиться за помощью

Обратиться стоит, если прогресс влияет на выдачу сертификатов, доступ к следующим урокам или оплату курса.

Итог

Начните с endpoint, который ставит статус просмотра. Если нужно исправить прогресс LMS и события видео, можно написать в Telegram @rabotator_support.