Наша собственная статистика посещений включена всегда. Google Analytics помогает нам понять, как пользуются нашими публичными страницами (но не вашим рабочим пространством после входа), и включается только с вашего разрешения. См. нашу политику конфиденциальности.

API Bilibili Комментарии поверх видео

POST

Состояние API

Состояние за 24 ч
Норма
Среднее время за 24 ч
—
  • Стабильно / норма
  • Доступно
  • Ограничено
  • Почти недоступно
Норма

Получите экранные комментарии (danmaku) из видео на Bilibili: для каждого указаны текст, время воспроизведения, режим отображения, цвет и время отправки. Для видео из нескольких частей записи берутся из первой части; экранные комментарии отличаются от комментариев под видео.

Bilibili On-screen video comments получает данмаку одного видео: короткие реплики, которые зрители отправляют во время просмотра и которые появляются поверх изображения в определённый момент воспроизведения. Каждая запись содержит текст, позицию воспроизведения в video_time и video_time_seconds, режим отображения mode (бегущая строка, вверху или внизу), цвет color, pool и время отправки. Авторы, маркетологи и исследователи используют эту возможность, чтобы находить моменты, вызвавшие реакцию, проверять, как зрители восприняли спонсорскую вставку, или изучать, как общается аудитория.

В url нужен полный адрес видео, путь которого содержит BV ID, например https://www.bilibili.com/video/<BV ID>; если у видео несколько частей, записи берутся из первой. Та же ссылка подходит и для возможностей Bilibili Comments и Bilibili Subtitles, так что по одному списку ссылок на видео можно получить обсуждение под видео, комментарии на экране и расшифровку речи.

Цена: $0.56 за 1 000 запросов ($0.000556 за вызов). Неудачные вызовы и пустые результаты не оплачиваются. Синхронный режим. Для долгих задач добавьте в тело запроса "mode": "async", получите job_id и опрашивайте статус.

Промпт для ИИ

Помогите мне написать скрипт для сбора данных через эндпоинт EveryInfra Bilibili Комментарии поверх видео (bilibili/danmaku).

Как работает эндпоинт:
- Запрос: POST https://api.everyinfra.com/api/v1/social с заголовком Authorization: Bearer <API key>. Читайте ключ из переменной окружения EVERYINFRA_API_KEY и никогда не прописывайте его в коде.
- В теле запроса укажите platform: bilibili и action: danmaku, а параметры передайте в params.
- Обязательные параметры:
  - url: Задаёт полный URL видео Bilibili в формате https://www.bilibili.com/video/<BVID>. Параметр url получает комментарии к видео в comments, комментарии с привязкой ко времени (данмаку) первой части в danmaku и расшифровку ау…
- Необязательные параметры:
  - limit: Максимальное число записей в этом вызове, целое число от 1 до 200. Если параметр не указан, применяется значение по умолчанию; вызов может вернуть меньше записей. (по умолчанию: 50)
- Возвращает список записей. Основные поля каждой записи: id, text, video_id, video_time, video_time_seconds, mode, color, pool, sent_at.
- Пример тела запроса:
{
  "platform": "bilibili",
  "action": "danmaku",
  "params": {
    "url": "https://www.bilibili.com/video/BV1DYjA6KEJ7"
  }
}
- Цена: $0.56 за 1 000 запросов; неудачные и пустые результаты не оплачиваются.
- Для десятков или сотен целей добавьте в тело запроса "mode": "async": вы сразу получите job_id и сможете опрашивать GET https://api.everyinfra.com/api/v1/jobs/{job_id}, чтобы получить результат.
- При ответе 422 исправьте запрос, используя предложенные в ошибке имена параметров и допустимые значения; при ответе 429 или 503 подождите указанное в Retry-After время и повторите попытку.

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

Параметры запроса

ИмяРасположениеТипОбязательныйПо умолчаниюОписание
AuthorizationheaderstringДа-Укажите Bearer, а после него — ваш API-ключ. Создайте ключ в консоли; никогда не указывайте его в URL и не храните в репозитории кода.
platformbodystringДаbilibiliИдентификатор платформы, фиксированное значение.
actionbodystringДаdanmakuИдентификатор возможности, фиксированное значение.
urlbody.paramsstringДа-Задаёт полный URL видео Bilibili в формате https://www.bilibili.com/video/<BVID>. Параметр url получает комментарии к видео в comments, комментарии с привязкой ко времени (данмаку) первой части в danmaku и расшифровку аудио в subtitles; это отдельные источники текста. Действие danmaku должно извлечь из указанного пути действительный BV ID.
limitbody.paramsinteger (1–200)Нет50Максимальное число записей в этом вызове, целое число от 1 до 200. Если параметр не указан, применяется значение по умолчанию; вызов может вернуть меньше записей. При значениях выше максимума эндпоинт возвращает ошибку 422 до списания средств.

Примеры кода

bash
curl -X POST 'https://api.everyinfra.com/api/v1/social' \
  -H "Authorization: Bearer $EVERYINFRA_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "platform": "bilibili",
  "action": "danmaku",
  "params": {
    "url": "https://www.bilibili.com/video/BV1DYjA6KEJ7"
  }
}'

Спецификация OpenAPI (JSON)Примеры читают ключ из переменной окружения EVERYINFRA_API_KEY; скопированный код никогда не содержит ваш ключ.

Пример ответа

Реальный ответ

Получено October 24, 2026 at 22:01 (UTC) вызовом этого API с параметрами из примера кода выше. results и count — реальный ответ этого вызова, из которого удалены персональные данные (имена, никнеймы, аватары, ссылки на профили, контакты); в списке оставлены первые 2. id, billing и quota меняются при каждом вызове, поэтому показана только их структура.

json
{
  "id": "req_…",
  "platform": "bilibili",
  "action": "danmaku",
  "results": [
    {
      "id": "•••",
      "text": "前排提醒:請不要刷cp",
      "video_id": "BV1DYjA6KEJ7",
      "video_time": "0:00",
      "video_time_seconds": 0,
      "mode": "top",
      "color": "#E70012",
      "pool": "normal",
      "sent_at": "2026-06-18T13:00:52+00:00",
      "platform": "bilibili"
    },
    {
      "id": "•••",
      "text": "《请输入文本》",
      "video_id": "BV1DYjA6KEJ7",
      "video_time": "0:03",
      "video_time_seconds": 3.522,
      "mode": "top",
      "color": "#00A0EA",
      "pool": "normal",
      "sent_at": "2026-06-19T06:06:24+00:00",
      "platform": "bilibili"
    }
  ],
  "count": 50,
  "billing": {
    "charged": …,
    "charged_usd": …,
    "balance_after_usd": …,
    …
  },
  "quota": { … }
}

Поля ответа

Бизнес-данные находятся в results. В таблице перечислены поля, которые может содержать запись; значения, которые платформа не показывает, никогда не выдумываются.

ПолеЗначение
idУникальный ID записи на платформе. Уникален только в пределах одной платформы; на разных платформах ID могут повторяться.
textОсновной текст без HTML возвращается полностью и никогда не обрезается (на нескольких платформах результаты списковых запросов содержат только фрагмент; это указано в примечаниях к полям платформы).
video_idТрактуется так же, как на самой платформе
video_timeТрактуется так же, как на самой платформе
video_time_secondsТрактуется так же, как на самой платформе
modeТрактуется так же, как на самой платформе
colorТрактуется так же, как на самой платформе
poolТрактуется так же, как на самой платформе
sent_atТрактуется так же, как на самой платформе
platformИдентификатор исходной платформы. Совпадает со значением platform в запросе (например, xiaohongshu, tiktok).

FAQ

Как найти моменты, на которые зрители реагировали сильнее всего?

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

Чем video_time_seconds отличается от sent_at?

video_time_seconds — место в видео, где появляется комментарий, в секундах от начала воспроизведения. sent_at — время, когда зритель его отправил. Первое поле показывает, на какую сцену отреагировали люди, а второе — пришла ли реакция в день выхода или спустя месяцы.

Как связать комментарии на экране с другими данными о видео?

Поле video_id в каждой записи содержит BV ID. Используйте его как ключ, чтобы объединять эти записи с результатами Bilibili Subtitles для того же видео, где BV ID тоже хранится в video_id, или со счётчиками, которые Bilibili Video details возвращает для той же ссылки.

Ошибки и оплата

401
Ключ отсутствует или недействителен.
402
Недостаточно средств на балансе. Сначала пополните баланс.
422
Недопустимое имя или значение параметра. Исправьте запрос по подсказкам в сообщении об ошибке. Без списания.
429
Достигнут лимит запросов в минуту. Подождите указанное в Retry-After время, затем повторите попытку.
503
Не удалось выполнить. Зарезервированная сумма возвращается на баланс. Если результат неизвестен, проверьте его перед повторной попыткой.
200 (пусто)
Нет данных. Без списания.

Ошибки

Официальные источники

Используются только для проверки объектов и терминов. Они не означают, что платформа разрешила или одобрила работу EveryInfra.

  • Bilibili: официальное объявление о переходе с номеров AV на идентификаторы BV ↗

    В объявлении Bilibili 2020 года идентификаторы BV определены как ID загруженных видео, состоящие из цифр и букв с учётом регистра, в отличие от чисто числовых номеров AV. Этот источник поясняет только типы идентификаторов видео; API принимает ссылки в формате, указанном выше, и не гарантирует разбор всех устаревших ссылок или отдельных частей многосоставных видео.

    Проверено 2026-09-04