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

API Bilibili Субтитры

POST

Состояние API

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

Получите текст субтитров видео на Bilibili: сегменты с таймкодами, код языка, название, автора и длительность в секундах. Это то, что говорится в видео, а не комментарии зрителей. Метка language может быть неверной.

Bilibili Subtitles получает расшифровку речи в одном видео и возвращает её в text вместе с BV ID, названием, именем автора, длительностью в секундах и кодом языка. Возможность превращает устное содержание видео в текст, по которому можно искать: исследователи, переводчики и контент-команды с её помощью кратко пересказывают обучающие ролики и обзоры, проверяют, что автор говорил о продукте, или собирают корпус для тематического анализа, не просматривая каждое видео.

Передайте в url полный адрес видео, например https://www.bilibili.com/video/<BV ID>. Сопоставляйте text с duration_seconds: короткая расшифровка у длинного видео говорит о том, что речи в нём мало. language присваивает Bilibili, и код может быть неверным. Реплики зрителей в этот текст не входят: обсуждение под видео и комментарии на экране получают через отдельные возможности.

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

Промпт для ИИ

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

Как работает эндпоинт:
- Запрос: POST https://api.everyinfra.com/api/v1/social с заголовком Authorization: Bearer <API key>. Читайте ключ из переменной окружения EVERYINFRA_API_KEY и никогда не прописывайте его в коде.
- В теле запроса укажите platform: bilibili и action: subtitles, а параметры передайте в params.
- Обязательные параметры:
  - url: Задаёт полный URL видео Bilibili в формате https://www.bilibili.com/video/<BVID>. Параметр url получает комментарии к видео в comments, комментарии с привязкой ко времени (данмаку) первой части в danmaku и расшифровку ау…
- Возвращает один объект. Основные поля: video_id, title, author_name, duration_seconds, duration_sec, language, text, segments.
- Пример тела запроса:
{
  "platform": "bilibili",
  "action": "subtitles",
  "params": {
    "url": "https://www.bilibili.com/video/BV1o84y1V7EY"
  }
}
- Цена: $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ДаsubtitlesИдентификатор возможности, фиксированное значение.
urlbody.paramsstringДа-Задаёт полный URL видео Bilibili в формате https://www.bilibili.com/video/<BVID>. Параметр url получает комментарии к видео в comments, комментарии с привязкой ко времени (данмаку) первой части в danmaku и расшифровку аудио в subtitles; это отдельные источники текста. Действие danmaku должно извлечь из указанного пути действительный BV ID.

Примеры кода

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": "subtitles",
  "params": {
    "url": "https://www.bilibili.com/video/BV1o84y1V7EY"
  }
}'

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

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

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

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

json
{
  "id": "req_…",
  "platform": "bilibili",
  "action": "subtitles",
  "results": {
    "title": "【60集】儿童英文演讲视频,34个主题,小作文绝佳素材,每集30s短小精悍!主题包括:介绍自己、介绍家庭成员、介绍朋友、天气、梦想的工作、学校生活、学习计划、房 p01 English Speech _ All About Me",
    "author_name": "•••",
    "duration_seconds": 20,
    "language": "English",
    "text": "Everyone, nice to meet you. Let me introduce myself. My name is Julie Anderson. I'm nine years old. I'm from South Africa. I like pancakes and hot dogs. I like yellow. I like cats. Now you know more about me. I hope we can be friends.",
    "platform": "bilibili",
    "segments": [
      {
        "start": "00:00:00.830",
        "end": "00:00:10.660",
        "text": "Everyone, nice to meet you. Let me introduce myself. My name is Julie Anderson. I'm nine years old. I'm from South Africa."
      },
      {
        "start": "00:00:11.359",
        "end": "00:00:19.910",
        "text": "I like pancakes and hot dogs. I like yellow. I like cats. Now you know more about me. I hope we can be friends."
      }
    ]
  },
  "billing": {
    "charged": …,
    "charged_usd": …,
    "balance_after_usd": …,
    …
  },
  "quota": { … }
}

Поля ответа

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

ПолеЗначение
video_idТрактуется так же, как на самой платформе
titleЗаголовок. null, если на платформе нет заголовков (например, у текстовых постов).
author_nameОтображаемое имя автора.
duration_secondsДлительность в секундах. null для контента, который не является видео или аудио.
duration_secТрактуется так же, как на самой платформе
languageКод языка контента (например, zh, en) по определению платформы; может быть неточным.
textОсновной текст без HTML возвращается полностью и никогда не обрезается (на нескольких платформах результаты списковых запросов содержат только фрагмент; это указано в примечаниях к полям платформы).
platformИдентификатор исходной платформы. Совпадает со значением platform в запросе (например, xiaohongshu, tiktok).
segmentsТрактуется так же, как на самой платформе

FAQ

Содержит ли text всю расшифровку?

Да. Расшифровка возвращается полностью, без HTML и без сокращения до фрагмента, так что один вызов даёт весь текст. Для длинных видео разбейте text на части, прежде чем делать краткое изложение или запускать тематические модели, и сохраняйте video_id у каждой части, чтобы любой фрагмент можно было соотнести с его видео.

Можно ли доверять коду language?

Считайте его подсказкой. language — код, который присваивает Bilibili, например zh или en, и платформа может ошибаться. Если вы направляете расшифровки на перевод или на анализ для конкретного языка, определяйте язык text своими средствами и храните код Bilibili рядом с результатом.

Как получить просмотры и лайки того же видео?

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

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

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

Ошибки

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

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

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

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

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