jsonscraper

API TikTok Scraper : récupérer les données vidéo en JSON avec jsonscraper

Démarrez avec la route getVideoByID, vérifiez le JSON et gérez la clé avec cURL et Python.

Si votre application a besoin d’informations sur une vidéo TikTok précise, le plus simple est de commencer par une seule requête et de vérifier les données qu’elle renvoie. Vous pourrez ensuite valider la réponse et la préparer pour le stockage ou l’analyse.

La page consacrée à l’API TikTok Scraper de jsonscraper répertorie des routes pour les vidéos, les utilisateurs, la recherche, les hashtags, la musique et d’autres types de données. Nous allons examiner la requête documentée getVideoByID et les façons de traiter sa réponse en toute sécurité. Les exemples s’appuient sur les documents du fournisseur ; avant de les utiliser, vérifiez-les avec une clé active et la documentation à jour.

Première requête : récupérer les informations d’une vidéo

Ordinateur portable avec du code et une plante dans un café
James Harrison

La documentation Postman de getVideoByID indique la méthode GET et le paramètre video_id. L’exemple montre également region et cache_timeout. L’adresse de base publiée sur la page du service est https://tiktok.evelode.com.

Exemple de requête avec cURL :

export JSONSCRAPER_LICENSE_KEY="ваш_ключ"

curl --get "https://tiktok.evelode.com/getVideoByID" \
  --data-urlencode "video_id=7106855913906081070" \
  --data-urlencode "license_key=$JSONSCRAPER_LICENSE_KEY" \
  --data-urlencode "region=US"

L’ID de l’exemple provient de la requête publiée. Remplacez-le par l’ID de la vidéo que vous souhaitez vérifier. Stockez la clé dans une variable d’environnement ou un gestionnaire de secrets : ne l’ajoutez pas à un dépôt public, au JavaScript côté client ou aux journaux.

Postman décrit region comme un code de région et indique US comme valeur par défaut. Pour cache_timeout, la documentation précise que la durée de cache par défaut est de 3 600 secondes ; la valeur 0 désactive le cache. Si ce paramètre est utile à votre scénario, vous pouvez le transmettre explicitement :

curl --get "https://tiktok.evelode.com/getVideoByID" \
  --data-urlencode "video_id=7106855913906081070" \
  --data-urlencode "license_key=$JSONSCRAPER_LICENSE_KEY" \
  --data-urlencode "region=US" \
  --data-urlencode "cache_timeout=0"

Il s’agit d’une adaptation des paramètres publiés pour cette route, et non d’une garantie que toutes les réponses auront la même structure ou que la désactivation du cache conviendra à tous les cas d’usage. Avant l’intégration, vérifiez l’authentification et les paramètres dans la collection actuelle : Postman peut transmettre la clé au moyen d’une API Key configurée, tandis que l’exemple cURL ci-dessus l’envoie comme paramètre d’URL.

La même requête en Python

Voici une version utilisant la bibliothèque standard de Python. Elle construit une requête GET, transmet les paramètres et traite les erreurs réseau, HTTP et les erreurs de JSON invalide.

import json
import os
from urllib.error import HTTPError, URLError
from urllib.parse import urlencode
from urllib.request import Request, urlopen

base_url = "https://tiktok.evelode.com/getVideoByID"
license_key = os.environ.get("JSONSCRAPER_LICENSE_KEY")

if not license_key:
    raise RuntimeError("Задайте переменную JSONSCRAPER_LICENSE_KEY")

params = {
    "video_id": "7106855913906081070",
    "license_key": license_key,
    "region": "US",
}

url = f"{base_url}?{urlencode(params)}"
request = Request(url, method="GET")

try:
    with urlopen(request, timeout=30) as response:
        status_code = response.status
        payload = json.loads(response.read().decode("utf-8"))
except HTTPError as error:
    print(f"HTTP-ошибка: {error.code}")
    raise
except URLError as error:
    print(f"Сетевая ошибка: {error.reason}")
    raise
except json.JSONDecodeError:
    raise RuntimeError("Ответ сервиса не удалось разобрать как JSON")

print("HTTP-статус:", status_code)
print("Верхнеуровневые ключи:", list(payload.keys()))

Il s’agit d’une adaptation de la requête documentée, et non d’un exemple que le fournisseur aurait testé séparément en Python. Elle ne décrit pas non plus toutes les réponses possibles du service. Comme la clé est transmise dans l’URL, ne consignez pas l’URL complète dans vos journaux : elle pourrait contenir un secret.

Comment vérifier la réponse JSON

La réponse publiée dans Postman contient un champ status et un objet imbriqué tiktok.aweme_detail avec des données sur la vidéo et son auteur. Il s’agit d’un exemple de réponse, pas d’une garantie que le schéma restera inchangé. Vous pouvez l’examiner dans l’exemple de réponse de getVideoByID.

Lorsque vous lisez des champs imbriqués, vérifiez chaque niveau :

def get_video_details(payload):
    tiktok = payload.get("tiktok")
    if not isinstance(tiktok, dict):
        return None

    details = tiktok.get("aweme_detail")
    if not isinstance(details, dict):
        return None

    return details

details = get_video_details(payload)

if details is None:
    print("В ответе нет ожидаемого объекта с данными видео")
else:
    video_id = details.get("id")
    description = details.get("desc")
    author = details.get("author")

    print("ID:", video_id)
    print("Описание:", description)
    print("Автор:", author)

Les noms de champs proviennent de l’exemple publié. L’utilisation de .get() ne signifie pas que les champs sont obligatoires : elle permet de traiter une réponse dépourvue des valeurs attendues. Si la logique de votre application dépend d’un champ précis, vérifiez sa présence dans les réponses correspondant à votre scénario et prévoyez un comportement au cas où il manquerait.

Il est utile de distinguer trois vérifications :

  1. Transport : une réponse HTTP a-t-elle été reçue et quel est son statut ?
  2. Format : le corps de la réponse a-t-il pu être analysé comme du JSON ?
  3. Contenu : les données nécessaires à l’application sont-elles présentes ?

Le fait d’analyser correctement du JSON ne signifie pas que la réponse contient l’objet recherché. Pour le diagnostic, consignez les erreurs techniques et les résultats des vérifications en masquant les clés.

D’une requête à un pipeline opérationnel

Speedcurve Performance Analytics
Luke Chesser

Pour un prototype, il suffit d’envoyer une requête et d’afficher quelques valeurs. Pour un traitement régulier, séparez le travail en plusieurs étapes :

Requête → vérification → normalisation → déduplication → stockage.

  • Requête. Récupérez la réponse via la route documentée et enregistrez séparément le statut technique.
  • Vérification. Assurez-vous que le corps peut être analysé comme du JSON et qu’il contient les données requises pour la tâche concernée.
  • Normalisation. Transférez les valeurs utiles dans votre propre modèle de données. Ne copiez pas toute la structure imbriquée dans la base si seules certaines valeurs intéressent l’application.
  • Déduplication. Choisissez un identifiant après avoir vérifié qu’il est présent et adapté à votre cas d’usage. Ne supposez pas qu’il sera toujours disponible dans toutes les réponses.
  • Stockage. Si nécessaire, conservez l’heure de la requête et la réponse d’origine séparément de l’enregistrement normalisé. Cela vous aidera à comprendre les modifications apportées par l’application.

Ces recommandations concernent l’architecture de l’application ; ce ne sont pas des fonctionnalités à attribuer au service. Séparer la réponse externe du modèle interne simplifie également la gestion des changements : les problèmes peuvent être repérés lors de la vérification ou de la normalisation, plutôt que partout dans le code.

Pour les requêtes répétées, définissez à l’avance quand actualiser les données et quelles erreurs méritent une nouvelle tentative. Limitez le nombre de tentatives : une boucle infinie ne corrigera ni un paramètre erroné ni un problème d’authentification.

Mise en cache et région

Dans la description de la route getVideoByID, le paramètre cache_timeout définit la durée de mise en cache en secondes : la valeur par défaut indiquée est de 3 600 secondes, et 0 désactive le cache. Le paramètre region est décrit comme un code pays ; la documentation donne US en exemple. Avant l’intégration, vérifiez ces informations dans la documentation actuelle de la requête Postman.

La simple présence d’un paramètre de cache ne garantit pas la fraîcheur d’une réponse donnée. Si la fraîcheur est importante, vérifiez les résultats de requêtes répétées avec les données de votre scénario et choisissez le comportement approprié.

Quels cas d’usage explorer ensuite

La page du produit répertorie des routes pour rechercher des vidéos et des utilisateurs, des hashtags, des lieux, de la musique et des tendances. Parmi les exemples figurent searchVideo, searchHashtag, getUserFeed et getTrendingFeed. Il s’agit de la liste des routes publiée par le fournisseur, et non d’une vérification indépendante de chacune d’elles. Consultez la documentation de chaque route pour connaître ses paramètres et la forme de sa réponse : ceux-ci ne peuvent pas être déduits automatiquement de l’exemple getVideoByID.

jsonscraper propose d’utiliser la collection Postman pour configurer la clé et lancer des requêtes. Cela peut être pratique pour tester une route avant d’écrire une intégration. Le service répertorie également des scénarios d’automatisation, mais vérifiez séparément la compatibilité de votre processus dans votre configuration. Lorsque vous exportez ou partagez la collection, assurez-vous qu’elle ne contient aucune clé active.

Points à vérifier avant d’utiliser l’API dans une application

Avant d’intégrer la requête à un processus régulier, testez-la avec les vidéos et les paramètres nécessaires au projet :

  • La requête fonctionne-t-elle avec une clé active et un ID valide ?
  • Comment l’application traite-t-elle un paramètre incorrect ou manquant ?
  • Que se passe-t-il si le JSON est valide, mais que le champ recherché est absent ?
  • Comment les erreurs HTTP, les problèmes réseau et les délais d’attente sont-ils traités ?
  • Quels champs conviennent à l’identification et à la déduplication dans votre cas d’usage ?
  • Comment le résultat d’une nouvelle requête évolue-t-il selon les différentes valeurs de cache_timeout, si vous utilisez ce paramètre ?

Notez la date du test, les paramètres sans secret et un exemple de réponse anonymisé. Une requête réussie ne confirme que le fonctionnement d’un scénario précis dans des conditions données ; elle ne prouve pas la stabilité de toutes les routes et de toutes les réponses.

Commencez par un scénario reproductible

Testez getVideoByID avec la vidéo souhaitée, examinez le JSON réellement renvoyé et écrivez un gestionnaire qui tient compte des champs manquants et des erreurs. Si nécessaire, étendez ensuite le processus avec la normalisation, la déduplication et le stockage.

La documentation jsonscraper fournit un point de départ : l’adresse de base et la liste des routes. Dans le code de production, vous devez tout de même vérifier chaque réponse, protéger la clé et prévoir les cas où les données diffèrent de la structure attendue.

Articles similaires

Security · Guide

Clés API oubliées : comment les révoquer sans interrompre le service

OpenRouter a signalé plus de mille clés actives pour 85 employés — un audit interne à l’entreprise, et non une mesure du secteur. Voici comment vérifier les propriétaires et les dépendances, effectuer une rotation et comprendre les limites des outils de gestion des clés.

Community Pulse · Guide

Claude Code ou Codex : comparez votre travail, pas les marques

Les avis des développeurs sur Claude Code et Codex divergent, et une étude de PR ne désigne aucun vainqueur universel. Pour comparer ces outils concrètement, testez-les sur des tâches et dans l’environnement où vous travaillez réellement.

Transformez vos lectures en intégration fonctionnelle

Explorez les API de données sociales de jsonscraper, testez des requêtes et créez votre prochain workflow.

Explorer les API