Extrayez les commentaires de vidéos TikTok (texte, likes, nombre de réponses et infos utilisateur) via l'API Scavio à 0,005 $/page. Points d'accès séparés pour les commentaires principaux et les réponses en fil de discussion. Utilise la pagination par curseur numérique.
Prérequis
- Clé API Scavio
- ID de la vidéo cible (aweme_id)
- Python 3.8+ ou Node.js 18+
Parcours
Étape 1: Obtenir les commentaires d'une vidéo
Appelez le point d'accès video/comments avec l'aweme_id de la vidéo.
import requests, os
HEADERS = {'Authorization': f'Bearer {os.environ["SCAVIO_API_KEY"]}',
'Content-Type': 'application/json'}
resp = requests.post('https://api.scavio.dev/api/v1/tiktok/video/comments',
headers=HEADERS,
json={'aweme_id': '7123456789', 'count': 20, 'cursor': 0})
data = resp.json()['data']
for c in data.get('comments', []):
print(f"{c['user']['unique_id']}: {c['text'][:60]}")
print(f" Likes: {c['digg_count']}, Replies: {c.get('reply_comment_total', 0)}")Étape 2: Récupérer les réponses à un commentaire
Utilisez le point d'accès comment/replies avec le comment_id pour les discussions en fil.
comment_id = data['comments'][0]['cid']
replies = requests.post(
'https://api.scavio.dev/api/v1/tiktok/video/comments/replies',
headers=HEADERS,
json={'aweme_id': '7123456789', 'comment_id': comment_id,
'count': 20, 'cursor': 0}).json()['data']
for r in replies.get('comments', []):
print(f" Reply: {r['text'][:60]}")Étape 3: Parcourir les commentaires par pagination
Incrémentez le curseur pour obtenir plus de pages de commentaires.
cursor = data.get('cursor', 0)
if data.get('has_more'):
page2 = requests.post(
'https://api.scavio.dev/api/v1/tiktok/video/comments',
headers=HEADERS,
json={'aweme_id': '7123456789', 'count': 20,
'cursor': cursor}).json()['data']
print(f'Page 2: {len(page2.get("comments", []))} comments')Exemple Python
import requests, os
HEADERS = {'Authorization': f'Bearer {os.environ["SCAVIO_API_KEY"]}',
'Content-Type': 'application/json'}
def get_comments(video_id, max_pages=5):
comments = []
cursor = 0
for _ in range(max_pages):
resp = requests.post('https://api.scavio.dev/api/v1/tiktok/video/comments',
headers=HEADERS,
json={'aweme_id': video_id, 'count': 20, 'cursor': cursor}).json()['data']
comments.extend(resp.get('comments', []))
if not resp.get('has_more'):
break
cursor = resp.get('cursor', cursor + 20)
return comments
comments = get_comments('7123456789')
print(f'{len(comments)} comments extracted')Exemple JavaScript
const H = {'Authorization': `Bearer ${process.env.SCAVIO_API_KEY}`, 'Content-Type': 'application/json'};
async function getComments(videoId, maxPages = 5) {
const comments = [];
let cursor = 0;
for (let i = 0; i < maxPages; i++) {
const r = await fetch('https://api.scavio.dev/api/v1/tiktok/video/comments', {
method: 'POST', headers: H,
body: JSON.stringify({aweme_id: videoId, count: 20, cursor})
}).then(r => r.json());
comments.push(...(r.data.comments || []));
if (!r.data.has_more) break;
cursor = r.data.cursor || cursor + 20;
}
return comments;
}
getComments('7123456789').then(c => console.log(`${c.length} comments`));Sortie attendue
Array of comment objects with text, user info, like count, reply count, and timestamps. Separate reply extraction for threaded discussions.