Перейти к содержанию

Кинопросмотр

Кинопросмотр — это рабочая панель для фильмов, сериалов, аниме, мультов и видео на канале. Она помогает владельцу и модераторам держать в порядке текущий просмотр, каталог карточек, серии, озвучки, оценки и тайминги опасных моментов.

Главная идея простая: стример смотрит контент, а PulseCaster помогает не держать всё в голове. Модератор может быстро указать, что сейчас идёт, выбрать серию, закрепить озвучку, поправить статус, а доверенный модератор таймингов — проверить и подготовить предупреждения для live-просмотра.

Кому что делать

Роль Что обычно делает
Владелец включает раздел, задаёт правила работы, завершает просмотры, ставит оценку стримера
Модератор канала привязывает текущий фильм или сериал, меняет серию, озвучку, статус и карточки
Доверенный модератор таймингов добавляет, правит, подтверждает, отклоняет и сдвигает тайминги
Зритель смотрит состояние, каталог и статистику через !медиа; может поставить оценку и предложить тайминг, если такая возможность доступна

Обычный модератор не должен автоматически становиться модератором таймингов. Тайминги влияют на боевой просмотр: если ошибиться, предупреждение может появиться не вовремя или не появиться вовсе.

Важное разделение

Управлять просмотром и карточками — это одно. Модерировать тайминги опасных моментов — другое. Доверенный доступ к таймингам выдаёт только администратор бота, потому что это чувствительная зона. Его стоит давать только тем, кто понимает формат просмотра канала.

Нужна помощь разработчика?

Напишите mrgorkiy в Telegram. Укажите страницу, ожидаемый результат, что произошло и шаги для повторения. Можно приложить скриншот или короткое видео. Перед отправкой закройте токены, коды подтверждения и приватные ссылки OBS.

Что есть на странице

Блок Для чего нужен
Сводка показывает количество карточек, текущие просмотры, просмотренное и планы по всему каналу
Просмотры и перепросмотры история заходов на карточку: даты, статусы и эфиры каждого просмотра
Сейчас в эфире показывает привязанное к стриму медиа, сезон, серию, часть и озвучку
Сейчас смотрим быстрый старт: создать или привязать текущий просмотр
Справка подсказки по командам, тегам в названии стрима и ручной фиксации — кнопка Справка в шапке страницы
Обслуживание разовая операция «снять архив таймингов для всех карточек» — кнопка Обслуживание в шапке страницы
Каталог канала список карточек фильмов, сериалов, аниме и видео
Рабочая область карточки четыре вкладки: информация о медиа, статус просмотра, тайминги и история изменений
Лайв-тайминги компактный экран для предупреждений во время эфира
Онлайн-просмотр режим просмотра с защитным слоем поверх видео

Справка и обслуживание раньше лежали в самом низу страницы, под каталогом: на канале с большим списком карточек до них нужно было прокрутить всё. Теперь это две кнопки в шапке, и обе доступны из палитры Быстрые действия (⌘K / Ctrl+K) по запросам «справка», «архив», «обслуживание».

Рекомендуемый сценарий

1. Привязать просмотр
через страницу, команду или тег в названии стрима
2. Уточнить контекст
сезон, серия, часть, озвучка, статус
3. Проверить тайминги
профиль, категории, подтверждение и сдвиги
4. Завершить
отметить просмотр, оценку и итоговый статус

1. Как задать текущий просмотр

Есть три удобных способа.

Через страницу

Откройте Кинопросмотр и блок Сейчас смотрим.

  1. Введите название.
  2. При необходимости включите Ручная фиксация.
  3. Нажмите Создать карточку.

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

Через команду чата

Команда для владельца и модераторов:

!смотрим <название>
!смотрим аниме <название>
!смотрим кинчик <название>
!смотрим [фильм: Название] [озвучка: AniLibria]

Команда удобна во время эфира: модератору не нужно открывать форму, если нужно быстро закрепить текущий просмотр.

Выбор из нескольких совпадений

Если по названию находится несколько вариантов — в каталоге канала или в источниках метаданных, — бот больше не берёт первый попавшийся. Он присылает пронумерованный список и ждёт ответ 2 минуты:

!смотрим человек паук
@mod, нашёл несколько вариантов «человек паук»: 1) Человек-паук (2002, фильм, Spider-Man);
2) Новый Человек-паук (2012, фильм); 3) Человек-паук: Вдали от дома (2019, фильм).
Ответь номером: !смотрим 1 (2 минуты) или уточни запрос, например !смотрим человек паук 2004.

!смотрим 1
Теперь смотрим Человек-паук.

Правила выбора:

  • список ждёт ответа только от того, кто вызвал команду, и только на этом канале;
  • если название совпадает точно (один в один), бот привязывает карточку сразу, без вопроса;
  • уточнить запрос по-прежнему можно вручную: !смотрим человек паук 2004;
  • если ответить номером, когда список не предлагался, бот отработает обычный сценарий и создаст карточку с таким названием.

Через название стрима

PulseCaster умеет понимать ключи в названии трансляции:

[медиа: Название]
[фильм: Название]
[кино: Название]
[мульт: Название]
[аниме: Название]
[сериал: Название]
[видео: Название]
[мульт: Рик и Морти, сезон: 2 серия: 5, озвучка: Сыендук]

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

2. Ручная фиксация

Ручная фиксация защищает текущий выбор от автоматической синхронизации по названию стрима.

Включайте её, если:

  • название стрима меняется ради шутки или кликбейта;
  • в названии есть несколько медиа;
  • автоопределение выбрало не тот фильм;
  • модератор вручную выбрал нужную серию или озвучку;
  • во время просмотра нельзя рисковать заменой карточки.

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

Проще говоря: ручная фиксация говорит боту “мы уже выбрали правильный просмотр, не меняй его автоматически”. Она влияет на текущую карточку, сезон, серию, часть и озвучку, которые используются в публичной странице, командах и live-таймингах.

3. Сезон, серия и часть

Для сериалов, аниме и мультсериалов важно фиксировать, что именно смотрят.

Команды:

!серия дальше
!эпизод следующий
!эпизод сезон 1 серия 3
!эпизод s1e3
!эпизод с1 е3
!эпизод часть 2

Что происходит:

  • текущая карточка остаётся той же;
  • меняется сезон, серия или часть;
  • предыдущая серия может отмечаться как просмотренная;
  • live-тайминги начинают смотреть на нужный контекст.

Если активная серия уже определена, основной короткий вариант — !серия дальше. Совместимые команды !эпизод следующий и !эпизод дальше делают то же самое. Бот покажет, с какой серии на какую собирается переключиться, и попросит автора команды написать !подтвердить в течение двух минут.

Команда переходит только на серию, которая уже есть в структуре медиа. Она не создаёт номер простым прибавлением единицы. Если текущая серия последняя, бот сообщает о завершении сезона; если в структуре уже есть следующий сезон, предлагается его первая существующая серия.

Если старая версия команды уже успела создать несуществующую серию-заглушку, владелец или модератор может удалить именно её:

!серия удалить сезон 3 серия 9
!подтвердить

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

На странице карточки можно также вручную отметить прогресс по сериям: Смотрим, Просмотрено, Пауза, Брошено или В планах. Это полезно, если команда восстанавливает историю после эфира.

Чтобы отметить уже просмотренный сезон или конкретную серию, не переключая текущий эфир, используйте:

!отметить просмотрено
!отметить просмотрено сезон 3
!отметить просмотрено сезон 3 серия 1
!отметить пауза сезон 3 серия 2

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

Полная форма с явно заданным сезоном и серией предназначена для точного исправления истории и применяется сразу.

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

4. Озвучка, субтитры и версии

Команда:

!озвучка <название>

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

Почему это важно:

  • тайминги могут отличаться между озвучками и плеерами;
  • один и тот же опасный момент может быть сдвинут на несколько секунд;
  • live-страница может показывать разные профили таймингов для разных версий.

Если стример смотрит в другой озвучке или другом плеере, модератору лучше сразу переключить профиль таймингов или зафиксировать правильную озвучку через !озвучка.

5. Статусы просмотра

Доступные статусы:

Статус Когда использовать
В планах хотите посмотреть позже
Смотрим сейчас идёт на канале
Просмотрено просмотр завершён
Брошено решили не продолжать
Пауза временно отложили

Команда для владельца и модераторов:

!статус watching
!статус completed
!статус dropped
!статус wishlist
!статус paused
!статус completed <название>

На странице карточки можно нажать Завершить просмотр и, если нужно, сразу поставить оценку.

6. Каталог карточек

Каталог канала хранит все медиа, которые канал смотрел, смотрит или планирует.

Список загружается страницами по 120 карточек. Кнопка Показать ещё под списком подгружает следующую страницу и показывает, сколько карточек осталось. Строка над списком пишет и общее число найденных карточек, и сколько из них уже загружено.

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

Карточка может содержать:

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

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

6.1. Рабочая область карточки

Кнопка Открыть у карточки ведёт на её отдельную страницу — рабочую область. Страница разделена на четыре вкладки, чтобы стример и модератор не искали нужное действие в одной длинной простыне.

Вкладка Что там Кому видно
Информация название, описание, постеры, жанры, рейтинги источников, родительский гид общие данные каталога
Просмотр статус, даты, комментарий модератора, оценка стримера, прогресс по сериям только твой канал
Тайминги сегменты, версии таймингов, структура сезонов, предложения зрителей общие для произведения
История кто и когда менял карточку, на каких стримах её смотрели только твой канал

Что общее, а что только твоё

Это главное разделение на странице.

Общие данные каталога — название, оригинальное название, описание, постер, задник, жанры, страны, студии, годы, длительность и возрастной рейтинг. Одна и та же карточка используется всеми каналами PulseCaster, поэтому на вкладке Информация эти поля показываются только для чтения. Обычный путь их обновить — кнопка Обновить из источников.

Если источник ошибся, владелец канала, модератор или администратор может нажать Исправить вручную. Тогда поля открываются для правки, но страница явно предупреждает: изменения увидят другие каналы, а следующая синхронизация может их перезаписать. Чтобы автоопределение по названию стрима не подменяло произведение, включи ручную фиксацию на вкладке Просмотр.

Данные только твоего канала — статус просмотра, даты начала и завершения, комментарий модератора, ручная фиксация, оценка стримера и прогресс по конкретным сериям. Они живут на вкладке Просмотр и никогда не уходят в общий каталог: один и тот же фильм может быть «в планах» у одного стримера и «просмотрен» у другого.

Кнопка Сохранить статус отправляет только эти поля. Данные каталога она не трогает — отметить серию просмотренной теперь физически не может перезаписать метаданные произведения.

Родительский гид и триггеры DoesTheDogDie

Обе сводки приходят из внешних источников на английском и переводятся автоматически через LLM. Рядом с заголовком каждого блока стоит метка, которая честно говорит, что перед тобой:

Метка Что это значит
Переведено автоматически текст перевёл ИИ по данным источника
Перевод вручную сводку написал модератор канала
Частичный перевод переведены известные названия тем и пометки вроде «Умеренно», комментарии остались на языке источника
Без перевода автоперевод не сработал, показан оригинал

Если стоит «Частичный перевод» или «Без перевода» — нажми Обновить из источников в шапке карточки, перевод запустится заново. Перевод идёт по всем LLM-провайдерам из gpt.providers по порядку: если первый недоступен (например, лежит прокси), запрос уходит в следующий. Ответ, который вернулся на английском или сломанным JSON, отбраковывается и тоже уводит на следующего провайдера.

Причину неудачи видно в логах API по строкам media: parents guide translation failed и media: doesthedogdie translation failed, а сам маршрут провайдеров — по llm provider failed / llm request succeeded с полем operation (media_parents_guide_translate, media_doesthedogdie_translate, media_timing_notes_translate).

История изменений

Вкладка История собирает в одну хронологию:

  • правки карточки из панели управления и с пульта эфира — кто, когда и какие поля менял;
  • смену статуса просмотра;
  • стримы, на которых карточку смотрели, с сезоном, серией и длительностью.

Переключатель Всё / Изменения / Просмотры фильтрует ленту. Данные приходят из GET /api/v1/channels/{channelId}/media/entries/{entryId}/activity и доступны владельцу канала, модератору, администратору и модератору таймингов.

6.1. Просмотры и перепросмотры

Одну и ту же карточку канал может смотреть несколько раз. Каждый заход — отдельная строка истории со своим статусом, датами и эфирами:

Номер Как называется в интерфейсе
1 Просмотр
2 Перепросмотр
3 и дальше Перепросмотр №2, Перепросмотр №3, …

Блок Просмотры и перепросмотры живёт на вкладке Просмотр рабочей области карточки и на публичной странице медиа. В каталоге у карточки, которую смотрели больше одного раза, появляется отметка Смотрели 2 раза.

Как строки появляются сами

  • когда карточку привязывают к эфиру (!смотрим, тег в названии стрима, блок Сейчас смотрим), PulseCaster находит незакрытый просмотр и продолжает его;
  • если последний просмотр уже завершён (Просмотрено или Брошено), привязка открывает новый просмотр — это и есть перепросмотр по заказу чата;
  • эфиры привязываются к строке автоматически, поэтому у каждого просмотра видно, на каких стримах его смотрели;
  • когда карточка получает статус Просмотрено или Брошено — командой, из пульта эфира или руками, — открытый просмотр закрывается с этой датой;
  • статус На паузе просмотр не закрывает: канал вернётся к тому же заходу, а не начнёт новый.

Из этого следует одно ограничение: перепросмотр начинается только тогда, когда предыдущий заход закрыт. Если карточку ни разу не отметили просмотренной, повторная привязка продолжит тот же просмотр. Такую историю всегда можно поправить руками.

Как добавить историю руками

Кнопка Добавить просмотр вручную в том же блоке заводит строку с любыми датами — например, чтобы перенести старые просмотры из другого сервиса или записать перепросмотр, который прошёл вне стрима. Каждую строку можно изменить или удалить; после удаления номера пересчитываются, поэтому в истории не остаётся дырок вроде «просмотр 1, перепросмотр 3».

Карточка показывает даты последнего захода: Начали смотреть и Просмотрено в каталоге берутся из самой свежей строки истории.

Что было до этой функции

Старые перепросмотры отдельно не записывались, поэтому при обновлении вся прошлая история каждой карточки собралась в один Просмотр №1 с уже известными датами и эфирами. Всё, что канал смотрит после обновления, разделяется автоматически.

API каталога

Список карточек приходит из GET /api/v1/channels/{channelId}/media/entries с параметрами query, status, limit (максимум 200) и offset. Ответ содержит саму страницу и счётчики по всему каналу:

{
  "status": "success",
  "data": {
    "items": [],
    "summary": { "total": 195, "watching": 3, "completed": 180, "wishlist": 12, "paused": 0, "dropped": 0 },
    "total": 195,
    "limit": 120,
    "offset": 0,
    "has_more": true
  }
}

summary считается по всему каналу и не зависит от query и status; total — число карточек под текущим фильтром, по нему работает has_more. Раньше эндпоинт отдавал в data только массив карточек, из-за чего клиент показывал размер страницы вместо реального размера каталога.

У каждой карточки в списке есть watch_runs_count — сколько раз её смотрели.

API просмотров и перепросмотров

Метод и путь Что делает
GET /api/v1/channels/{channelId}/media/entries/{entryId}/runs список просмотров карточки с эфирами
POST /api/v1/channels/{channelId}/media/entries/{entryId}/runs добавляет просмотр вручную
PATCH /api/v1/channels/{channelId}/media/entries/{entryId}/runs/{runId} правит просмотр
DELETE /api/v1/channels/{channelId}/media/entries/{entryId}/runs/{runId} удаляет просмотр и пересчитывает номера
GET /api/v1/public/media/channels/{channelId}/entries/{entryId}/runs то же для публичной страницы, только чтение

Запись доступна владельцу канала, доверенному медиа-модератору и администратору; чтение — всем, кто видит карточку. Даты передаются в формате ГГГГ-ММ-ДД, пустая строка очищает дату. Ответ карточки (GET .../entries/{entryId} и публичный аналог) содержит те же строки в поле watch_runs, поэтому отдельный запрос нужен не всегда.

7. Теги и поля карточки

В кинопросмотре “теги” живут в нескольких местах.

Что Для чего
Жанры помогают искать и группировать карточки
Страны полезны для подборок и фильтрации
Студии помогают отличать версии и источники
Бейджи короткие внутренние пометки канала
Комментарий модератора что именно смотрели, какая версия, что важно помнить
Начали смотреть дата начала для любого статуса, включая незавершённые сериалы и импорт истории
Закончили смотреть дата завершения для статуса «Просмотрено»
Возрастной рейтинг ориентир по чувствительности контента

Хорошие бейджи короткие и понятные: марафон, хэллоуин, аниме-клуб, пересмотр, чат выбрал.

8. Тайминги опасных моментов

Тайминги — это сегменты, где нужно заранее предупредить стримера или подготовить защитный слой.

Категории таймингов:

Категория Что означает
Нагота обнажённые сцены
Сексуальный контент сексуальные сцены или намёки
Насилие драки, убийства, опасные сцены
Жесть кровь, расчленение, тяжёлые визуальные моменты
Рвота сцены с рвотой
Мат ненормативная лексика
Запрещённые слова слова, которые нельзя пропускать на канале
Наркотики употребление или демонстрация наркотиков
Другое всё, что не попало в остальные категории

Тайминг обычно состоит из:

  • времени с;
  • времени по;
  • категории;
  • комментария;
  • сезона и серии, если это сериал;
  • версии таймингов, если есть разные озвучки или плееры;
  • статуса проверки.

9. Модерация таймингов

На странице карточки во вкладке Тайминги доверенный модератор может:

  • добавить сегмент вручную;
  • вставить блок таймингов текстом;
  • исправить начало и конец;
  • сдвинуть тайминг на -5с, -1с, +1с, +5с;
  • подтвердить тайминг;
  • отклонить тайминг;
  • отредактировать категорию и комментарий;
  • удалить неверный сегмент;
  • массово подтвердить, отклонить, удалить или сдвинуть выбранные сегменты;
  • заблокировать автора плохих зрительских предложений;
  • экспортировать тайминги в JSON, CSV, Excel или TXT.

Статусы проверки:

Статус Как читать
Подтверждено можно использовать в боевом просмотре
Нужна проверка модератор ещё не подтвердил
Отклонено использовать не нужно
Подтверждено trusted пришло от доверенного источника или модератора
Карантин требует осторожной проверки
Строгий карантин не использовать без ручного решения
Кандидат на правку похоже на дубль или неточную запись

Рабочий подход

Сначала подтверждайте только очевидные и важные тайминги. Потом сдвигайте неточные места. Лучше меньше, но точнее: live-режим ценит доверие больше, чем длинный список сомнительных предупреждений.

10. Live safe и лайв-тайминги

Лайв-тайминги — компактная страница для стримера и команды во время эфира. Она обновляется сама и показывает актуальные сегменты.

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

На live-странице удобно:

  • видеть текущий фильм, сезон, серию и часть;
  • проверить выбранную озвучку или профиль таймингов;
  • вручную перемотать таймер;
  • посмотреть, что будет через несколько секунд;
  • открыть публичный live URL;
  • быстро обновить данные.

11. Онлайн-просмотр

Онлайн-просмотр открывает режим просмотра с защитным слоем поверх видео.

Он нужен, если команда хочет:

  • держать видео внутри PulseCaster;
  • показывать предупреждения поверх просмотра;
  • использовать блюр или защитный слой;
  • смотреть тайминги прямо рядом с видео.

Важно: для защитного слоя включайте fullscreen именно PulseCaster, а не fullscreen самого iframe-плеера. Иначе предупреждения и блюр могут оказаться не поверх видео.

12. Предложения зрителей

Зрители могут помогать с таймингами и структурой, если такая возможность включена.

Что может попасть к модераторам:

  • новый тайминг;
  • правка времени;
  • предложение сезона или серии;
  • уточнение части;
  • жалоба на плохой тайминг.

Доверенный модератор решает, что делать:

  • подтвердить;
  • отклонить;
  • поправить;
  • перенести к правильной серии;
  • заблокировать автора, если он системно отправляет мусор.

13. Ручные команды

Команды для владельца и модераторов:

Команда Что делает
!смотрим <название> задаёт текущий просмотр
!смотрим аниме <название> задаёт текущий просмотр как аниме
!смотрим кинчик <название> задаёт текущий просмотр как фильм или кинопросмотр
!смотрим [фильм: Название] [озвучка: AniLibria] задаёт просмотр и сразу фиксирует озвучку
!смотрим <номер> отвечает на предложенный список вариантов, например !смотрим 2
!серия дальше предлагает переключиться на следующую серию текущего сезона и ждёт подтверждения автора
!эпизод следующий совместимый синоним команды !серия дальше
!серия удалить сезон 3 серия 9 безопасно удаляет ошибочную автозаглушку после подтверждения
!эпизод s1 e3 выбирает сезон и серию
!эпизод с1 е3 выбирает сезон и серию русскими буквами
!эпизод сезон 1 серия 3 выбирает сезон и серию словами
!эпизод part 2 выбирает часть
!отметить просмотрено предлагает отметить текущую серию или фильм просмотренными и ждёт подтверждения автора
!отметить просмотрено сезон 3 отмечает сезон как просмотренный, не переключая текущий эфир
!отметить просмотрено сезон 3 серия 1 отмечает конкретную серию как просмотренную
!озвучка <название> выбирает озвучку или версию
!статус watching ставит статус Смотрим
!статус completed ставит статус Просмотрено
!статус dropped ставит статус Брошено
!статус wishlist ставит статус В планах
!статус paused ставит статус Пауза
!статус completed <название> ставит статус конкретной карточке
!таймач [ник] [время] [причина] выдаёт таймаут пользователю
!таймач [время] [причина] ответом на сообщение выдаёт таймаут автору сообщения, на которое ответили
!боньк [ник] [время] [причина] то же действие в более мягкой чатовой форме

Команды для зрителей:

Команда Что делает
!медиа показывает текущий просмотр
!медиа статистика показывает размер каталога и прогресс по отмеченным сезонам и сериям
!медиа все показывает список просмотренного
!медиа <название> ищет конкретную карточку
!смотрел ..., !смотрела ..., !смотрели ..., !было ... совместимые названия !медиа
!можностримить <название> проверяет карточку по фильтрам канала; короткий вариант — !риск, прежний — !чепомедиа
!оценка 8 ставит оценку текущему просмотру
!оценка <название> 9 ставит оценку конкретной карточке
!оценка медиа <название> 9 оценивает именно медиа, даже если в играх есть такое же название

Если несколько зрителей оценивают одну карточку почти одновременно, бот собирает их ответы 2,5 секунды и отправляет одно сообщение с именами, оценками и итоговой оценкой. Ошибки ввода по-прежнему показываются сразу.

Если бот отвечает, что не понимает текущее медиа, сначала задайте его через !смотрим или тег в названии стрима.

Проверка !можностримить использует год, IMDb-рейтинг, студии и найденные легальные площадки. Ответы имеют три уровня: красный — карточка не проходит настроенные фильтры, жёлтый — фильтры пройдены, но права не подтверждены, зелёный — в карточке отдельно зафиксирована лицензия или статус public domain. MDBList, OMDb и Watchmode помогают собрать метаданные и варианты легального просмотра, но не выдают разрешение на ретрансляцию в Twitch.

Название с опечаткой не остаётся без ответа: бот предложит похожие карточки канала, а карточки с одинаковыми названиями покажет с годом и типом — Дюна (1984, фильм), Дюна (2021, фильм). Зритель выбирает вариант ответом !смотрел 1; для оценки работает такой же ответ !оценка 1, причём бот использует оценку из исходной команды.

Чтобы импортировать старую историю нового стримера, откройте Добавить карточку и укажите Начали смотреть: дата доступна при любом статусе. Для завершённого просмотра выберите Просмотрено и заполните Закончили смотреть. Обе даты отображаются в каталоге владельца/модератора и на публичной странице канала. Дата начала не может быть позже даты завершения.

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

Карточка сохраняется сразу с выбранными данными. Загрузка структуры сериала из источников и поиск таймингов продолжаются в фоне. До пяти таких задач выполняются одновременно на процесс API; оператор может изменить лимит через media_metadata.background_concurrency (от 1 до 64). Очередь хранится в памяти процесса, содержит до 256 ожидающих задач и прекращается при остановке API. Если очередь занята, интерфейс сообщает об этом; повторить подготовку можно через Обновить из источников.

14. Настройки команд

В общих настройках канала можно включать и выключать команды.

Для зрителей обычно важны:

  • !медиа (и совместимые !смотрел, !смотрела, !смотрели, !было);
  • !можностримить (совместимые !риск и !чепомедиа);
  • !оценка — общий доступ к оценкам;
  • !оценка — медиа — разрешает оценивать фильмы и сериалы;
  • !оценка — игры — разрешает оценивать категории игр.

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

Для владельца и модераторов:

  • !смотрим;
  • !серия / !эпизод;
  • !отметить;
  • !озвучка;
  • !статус.

Если команда не отвечает, проверьте не только права пользователя, но и то, включена ли сама команда в настройках канала.

Пример работы во время эфира

  1. Модератор пишет !смотрим [аниме: Монстр].
  2. Если серия уже определена и началась следующая, пишет !серия дальше, проверяет подсказку и подтверждает её.
  3. Если смотрят в конкретной озвучке, пишет !озвучка AniLibria.
  4. Доверенный модератор открывает Лайв-тайминги и проверяет профиль таймингов.
  5. При неточности сдвигает сегмент на -1с или +1с.
  6. Новые зрительские предложения оставляет в очереди до проверки.
  7. После просмотра владелец или модератор ставит !статус completed.
  8. Владелец ставит оценку или завершает просмотр через карточку.

Если что-то не работает

Симптом Где смотреть сначала
Бот не понимает, что смотрим задайте медиа через !смотрим или блок Сейчас смотрим
Автоопределение перебивает выбор включите Ручная фиксация
Тайминги не подходят к видео проверьте озвучку, плеер и профиль таймингов
На live-странице нет новых предложений они могут ждать проверки и не попадать в live safe
Модератор не может править тайминги нужен доверенный доступ к модерации таймингов
Команда не отвечает проверьте, включена ли команда в общих настройках
Серия отмечена неверно используйте !эпизод или !отметить просмотрено сезон N серия M
Предупреждение появляется рано или поздно сдвиньте тайминг на несколько секунд и подтвердите правку

Хороший кинопросмотр держится на трёх привычках: модератор сразу фиксирует текущее медиа, доверенный человек проверяет тайминги, а после эфира карточка закрывается статусом и оценкой. Тогда архив остаётся полезным, а live-предупреждения не превращаются в шум.