API Toutiao Dettagli del video
Stato di salute dell'API
- Operatività nelle ultime 24 ore
- Normale
- Buono / normale
- Disponibile
- Limitato
- Quasi del tutto inattivo
Ultime 24 ore
Ultimi 30 giorni
Cerca un video Toutiao tramite link o ID numerico. Ottieni titolo, durata, riproduzioni, like, commenti, condivisioni, salvataggi, ora di pubblicazione, copertina, un link firmato al file video e il nome dell'autore; i video orizzontali aggiungono impression, token del profilo dell'autore e numero di follower. Sono coperti anche i video brevi verticali.
Invia POST https://api.everyinfra.com/api/v1/social con platform impostato su toutiao e action impostato su video. Prezzo $0.81 per 1.000 richieste ($0.000806 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.
Prompt per l'AI
#Aiutami a scrivere uno script di raccolta dei dati con l'endpoint Toutiao Dettagli del video di EveryInfra (toutiao/video).
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 toutiao e action su video, e inserisci i parametri in params.
- Parametri obbligatori:
- url: Un link a un video di Toutiao (https://www.toutiao.com/video/<ID>/; funzionano anche i link /item/<ID>/ e /group/<ID>/) o l'ID numerico che contiene. L'ID di un articolo restituisce un risultato vuoto.
- Restituisce un oggetto. Campi principali: id, url, video_type (Tipo di video (video): video per un vid…), title, duration_sec, duration_seconds, play_count, like_count, comment_count, share_count, collect_count (Numero di volte in cui il video è stato…), impression_count (Numero di volte in cui il video è stato…); 21 campi in totale, elenco completo su https://api.everyinfra.com/api/v1/social/catalog?platform=toutiao.
- Esempio di corpo della richiesta:
{
"platform": "toutiao",
"action": "video",
"params": {
"url": "https://www.toutiao.com/video/7702252318212817451/"
}
}
- Prezzo: $0.81 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
#| Nome | Posizione | Tipo | Obbligatorio | Predefinito | Descrizione |
|---|---|---|---|---|---|
Authorization | header | string | Sì | - | Bearer seguito dalla tua chiave API. Creala nella console; non inserirla mai in un URL o in un repository di codice. |
platform | body | string | Sì | toutiao | Identificativo della piattaforma, valore fisso. |
action | body | string | Sì | video | Identificativo della funzionalità, valore fisso. |
url | body.params | string | Sì | - | Un link a un video di Toutiao (https://www.toutiao.com/video/<ID>/; funzionano anche i link /item/<ID>/ e /group/<ID>/) o l'ID numerico che contiene. L'ID di un articolo restituisce un risultato vuoto. |
Esempi di codice
#curl -X POST 'https://api.everyinfra.com/api/v1/social' \
-H "Authorization: Bearer $EVERYINFRA_API_KEY" \
-H 'Content-Type: application/json' \
--data-raw '{
"platform": "toutiao",
"action": "video",
"params": {
"url": "https://www.toutiao.com/video/7702252318212817451/"
}
}'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
#{ "id": "req_…", "platform": "toutiao", "action": "video", "results": { "id": "7702252318212817451", "url": "https://www.toutiao.com/video/7702252318212817451/", "video_type": "video", "title": "美航母爆炸致134死:意外还是阴谋?", "duration_sec": 642, "play_count": 1840, "like_count": 33, "comment_count": 51, "share_count": 5, "collect_count": 4, "impression_count": 42160, "posted_at": "2026-10-30T03:29:09+00:00", "cover_url": "https://p3-sign.toutiaoimg.com/tos-cn-i-e874c6/o4miSDFxGEDDefAmsUAAfcEbVjI6zspBaAZ85E~tplv-pk90l89vgd-crop-center-v3:864:486.jpeg?_iz=31127&bid=16&from=ttvideo.&gid=7702252318212817451&lk3s=06827d14&x-expires=1794669178&x-signature=4bOGInLbooeFHuPMHWA9vxLSUOg%3D", "video_url": "https://v5-dy-ov-experiment.zjcdn.com/b6798b984b08ad002f6d4966dc8d4d2e/6af1e57c/video/tos/cn/tos-cn-ve-19734/okfVQlzHitDxQlSE5SFVwIKRBIMzEACnefQGcm/?a=13&ch=0&cr=0&dr=0&er=0&lr=default&net=5&cd=0%7C0%7C0%7C1&cv=1&br=155&bt=155&cs=4&ds=1&eid=48897&ft=3WIhUw1uRR5sd95_1zrTBb_ipIEsbL…", "author_id": "•••", "author_name": "拉•••离", "author_avatar_url": "https://p3-sign.toutiaoimg.com/•••", "author_follower_count": 15774, "author_verified": false, "platform": "toutiao", "duration_seconds": 642 }, "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.
| Campo | Significato |
|---|---|
id | ID univoco del record sulla piattaforma. È univoco solo all'interno di una piattaforma; gli ID possono ripetersi tra piattaforme diverse. |
url | Link al record sulla piattaforma. |
video_type | Tipo di video (video): video per un video orizzontale, short_video per uno verticale. I video brevi non hanno author_id, impression_count né author_follower_count. |
title | Titolo. null quando la piattaforma non prevede titoli (ad esempio post di solo testo). |
duration_sec | Mantiene il significato attribuito dalla piattaforma |
duration_seconds | Durata in secondi. null per i contenuti che non sono video o audio. |
play_count | Mantiene il significato attribuito dalla piattaforma |
like_count | Like. null significa che la piattaforma o questa funzionalità non li rende noti; non equivale a 0. |
comment_count | Commenti. null significa non resi noti, non 0. |
share_count | Condivisioni. null significa non rese note, non 0. |
collect_count | Numero di volte in cui il video è stato salvato (video). |
impression_count | Numero di volte in cui il video è stato mostrato nei feed (video, solo video orizzontali); non sono riproduzioni. |
posted_at | Data e ora di pubblicazione in formato ISO 8601, UTC (ad esempio 2026-08-07T12:34:56+00:00). Le stringhe non standard della piattaforma vengono passate così come sono, quindi esegui il parsing in modo difensivo. null significa che la piattaforma non le rende note. |
cover_url | Mantiene il significato attribuito dalla piattaforma |
video_url | URL del file video con il bitrate più alto disponibile (video; firmato, scade dopo alcune ore). |
author_id | Il token del profilo MS4w dell'autore (video, solo video orizzontali); passalo come user_id a profile o user_posts. |
author_name | Nome visualizzato dell'autore. |
author_avatar_url | Link all'avatar di chi ha commentato (comments); su video, quello dell'autore. |
author_follower_count | Numero di follower dell'autore (video, solo video orizzontali). |
author_verified | Indica se l'autore è verificato; su comments, chi ha commentato. |
author_auth_info | Descrizione della verifica, ad esempio creator di un settore; su comments, quella di chi ha commentato, ad esempio un account ufficiale. Assente quando non c'è. |
platform | Identificativo della piattaforma di origine, uguale a platform nella richiesta (ad esempio xiaohongshu, tiktok). |
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.