API Bilibili Commenti in sovrimpressione nei video

POST

Stato di salute dell'API

Operatività nelle ultime 24 ore
Normale
  • Buono / normale
  • Disponibile
  • Limitato
  • Quasi del tutto inattivo
Normale

Ultime 24 ore

Ultimi 30 giorni

Estrai i commenti in sovraimpressione (danmaku) da un video Bilibili, ciascuno con testo, istante di riproduzione, modalità di visualizzazione, colore e ora di invio. Nei video in più parti le righe provengono dalla prima parte e sono distinte dai commenti sotto il video.

Invia POST https://api.everyinfra.com/api/v1/social con platform impostato su bilibili e action impostato su danmaku. Prezzo $0.56 per 1.000 richieste ($0.000556 per chiamata). Le chiamate non riuscite e i risultati vuoti non vengono addebitati. Sincrona. Per i job più lenti, aggiungi "mode": "async" al corpo della richiesta, recupera il job_id ed esegui il polling.

Bilibili On-screen video comments legge i danmaku di un video: i brevi commenti che gli spettatori inviano durante la visione e che compaiono sopra l'immagine in un momento preciso della riproduzione. Ogni riga contiene il testo, la posizione nella riproduzione in video_time e video_time_seconds, la modalità di visualizzazione (mode: scorrimento, in alto o in basso), il colore (color), il pool (pool) e l'ora di invio. Creator, marketer e ricercatori la usano per individuare i momenti che hanno suscitato reazioni, verificare come gli spettatori hanno accolto un segmento sponsorizzato o studiare come si esprime il pubblico.

url richiede l'indirizzo completo di un video il cui percorso contenga il BV ID, ad esempio https://www.bilibili.com/video/<BV ID>, e per un video composto da più parti le righe provengono dalla prima parte. Lo stesso link serve anche per le funzionalità Bilibili Comments e Subtitles, quindi un unico elenco di link ai video copre la discussione sotto il video, i suoi commenti a schermo e la trascrizione del parlato.

Prompt per l'AI

#
Aiutami a scrivere uno script di raccolta dei dati con l'endpoint Bilibili Commenti in sovrimpressione nei video di EveryInfra (bilibili/danmaku).

Come funziona l'endpoint:
- Richiesta: POST https://api.everyinfra.com/api/v1/social con l'header Authorization: Bearer <chiave API>. Leggi la chiave dalla variabile d'ambiente EVERYINFRA_API_KEY e non scriverla mai direttamente nel codice.
- Nel corpo della richiesta imposta platform su bilibili e action su danmaku, e inserisci i parametri in params.
- Parametri obbligatori:
  - url: Specifica l'URL completo di un video Bilibili, nel formato https://www.bilibili.com/video/<BVID>.
- Parametri facoltativi:
  - limit: Numero massimo di righe da restituire in questa chiamata: un intero da 1 a 200. Se lo ometti, viene applicato il valore predefinito; una chiamata può restituire meno righe. (predefinito: 50)
- Restituisce un elenco di record. Campi principali di ogni record: id, text, video_id, video_time, video_time_seconds, mode, color, pool, sent_at.
- Esempio di corpo della richiesta:
{
  "platform": "bilibili",
  "action": "danmaku",
  "params": {
    "url": "https://www.bilibili.com/video/BV1DYjA6KEJ7"
  }
}
- Prezzo: $0.56 per 1.000 richieste; le richieste non riuscite e i risultati vuoti non vengono addebitati.
- Per decine o centinaia di target, aggiungi "mode": "async" al corpo: ricevi subito un job_id ed esegui il polling su GET https://api.everyinfra.com/api/v1/jobs/{job_id} per ottenere il risultato.
- In caso di 422, correggi la richiesta usando i nomi dei parametri e i valori consentiti suggeriti nell'errore; in caso di 429 o 503, attendi il tempo indicato da Retry-After e riprova.

Prima di scrivere il codice, chiedimi quali target mi servono, quanti, quali campi e quale formato di output voglio; poi conferma con me il piano e il costo indicativo.

Parametri della richiesta

#
NomePosizioneTipoObbligatorioPredefinitoDescrizione
AuthorizationheaderstringSì-Bearer seguito dalla tua chiave API. Creala nella console; non inserirla mai in un URL o in un repository di codice.
platformbodystringSìbilibiliIdentificativo della piattaforma, valore fisso.
actionbodystringSìdanmakuIdentificativo della funzionalità, valore fisso.
urlbody.paramsstringSì-Specifica l'URL completo di un video Bilibili, nel formato https://www.bilibili.com/video/<BVID>. Il parametro url recupera i commenti del video con comments, i commenti temporizzati della prima parte con danmaku e la trascrizione audio con subtitles, trattandoli come fonti di testo distinte. L'azione danmaku deve poter estrarre un BV ID valido dal percorso fornito.
limitbody.paramsinteger (1–200)No50Numero massimo di righe da restituire in questa chiamata: un intero da 1 a 200. Se lo ometti, viene applicato il valore predefinito; una chiamata può restituire meno righe. I valori più alti restituiscono 422 prima di qualsiasi addebito.

Esempi di codice

#
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"
  }
}'

Definizione OpenAPI (JSON)Gli esempi leggono la chiave dalla variabile d'ambiente EVERYINFRA_API_KEY; il codice copiato non contiene mai la tua chiave.

Esempio di risposta

#
Acquisita il October 24, 2026 at 22:01 (UTC) chiamando questa API con i parametri dell'esempio di codice qui sopra. results e count sono la risposta reale di quella chiamata, da cui sono state rimosse le informazioni personali (nomi, handle, avatar, link ai profili, recapiti); l'elenco conserva i primi 2. id, billing e quota cambiano a ogni chiamata, quindi ne viene mostrata solo la struttura.
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": { … }}

Campi della risposta

#

I dati di business si trovano in results. La tabella elenca i campi che un record può contenere; i valori che la piattaforma non mostra non vengono mai inventati.

CampoSignificato
idID univoco del record sulla piattaforma. È univoco solo all'interno di una piattaforma; gli ID possono ripetersi tra piattaforme diverse.
textTesto del contenuto senza HTML, restituito per intero e mai troncato (su alcune piattaforme i risultati degli elenchi contengono solo un estratto; lo indicano le note sui campi della piattaforma).
video_idMantiene il significato attribuito dalla piattaforma
video_timeMantiene il significato attribuito dalla piattaforma
video_time_secondsMantiene il significato attribuito dalla piattaforma
modeMantiene il significato attribuito dalla piattaforma
colorMantiene il significato attribuito dalla piattaforma
poolMantiene il significato attribuito dalla piattaforma
sent_atMantiene il significato attribuito dalla piattaforma
platformIdentificativo della piattaforma di origine, uguale a platform nella richiesta (ad esempio xiaohongshu, tiktok).

FAQ

#

Come trovo i momenti che hanno suscitato più reazioni?

#

Raggruppa le righe per video_time_seconds in brevi intervalli, ad esempio di dieci secondi, e conta i commenti in ciascuno. I picchi indicano le scene che hanno suscitato più reazioni; leggi il text in quegli intervalli per capire perché. Confrontando i picchi con i capitoli del video o con il segmento sponsorizzato vedi quali parti hanno funzionato.

Qual è la differenza tra video_time_seconds e sent_at?

#

video_time_seconds indica in quale punto del video compare un commento, in secondi dall'inizio della riproduzione. sent_at indica quando lo spettatore l'ha pubblicato. Il primo ti dice a quale scena hanno reagito le persone; il secondo se la reazione è arrivata il giorno dell'uscita o mesi dopo.

Come collego i commenti a schermo agli altri dati del video?

#

video_id contiene il BV ID su ogni riga. Usalo come chiave per unire queste righe ai risultati di Bilibili Subtitles per lo stesso video, che riportano anch'essi il BV ID in video_id, oppure ai conteggi che Bilibili Video details restituisce per lo stesso link.

Errori e addebiti

#
401
Chiave mancante o non valida.
402
Saldo insufficiente. Effettua prima una ricarica.
422
Nome o valore del parametro non valido. Correggilo seguendo i suggerimenti dell'errore. Nessun addebito.
429
Raggiunto il limite di richieste al minuto. Attendi il tempo indicato da Retry-After, poi riprova.
503
Impossibile completare. L'importo trattenuto torna sul tuo saldo. Se l'esito è incerto, verificalo prima di riprovare.
Risposta 200 vuota
Nessun dato. Nessun addebito.

Errori

Riferimenti ufficiali

#

Usati solo per verificare oggetti e terminologia. Non implicano alcuna autorizzazione o approvazione di EveryInfra da parte della piattaforma.

  • Bilibili: l'annuncio ufficiale sul passaggio dai numeri AV agli identificatori BV ↗

    L'annuncio di Bilibili del 2020 definisce gli identificatori BV come ID dei video caricati, composti da numeri e lettere con distinzione tra maiuscole e minuscole, e li distingue dai numeri AV solo numerici. Questo riferimento spiega solo i tipi di identificatori video; questa API accetta link nel formato indicato sopra e non garantisce il parsing di tutti i link legacy o dei video divisi in più parti.

    Verificato il 2026-09-04

Le nostre statistiche di visita interne sono sempre attive. Google Analytics viene caricato solo se scegli «Consenti analisi». Informativa sulla privacy