jsonscraper
Marchés
Retour au journal

Comment vérifier des prospects TikTok sur IG avant leur transfert dans le CRM

Rassemblez les signaux publics trouvés sur TikTok et vérifiez les profils IG associés avant de qualifier manuellement un contact.

Politique éditoriale Signaler une erreur

Un spécialiste du marketing peut trouver sur TikTok une vidéo dont l’auteur parle du produit recherché, mais transformer ce signal en contact vérifiable est plus difficile : le nom de l’auteur sur TikTok peut différer de celui utilisé sur IG, et le profil peut être privé ou n’avoir aucun lien confirmé avec cette personne. Le résultat pratique n’est pas une liste automatique de « prospects prêts à contacter », mais un tableau de vérification : vidéo d’origine, auteur TikTok, nom d’utilisateur IG présumé, réponse de l’API et statut pour la suite de l’examen.

Voici un processus Python minimal pour cette tâche. Il recherche des vidéos publiques à partir d’une expression clé, extrait les champs disponibles sur l’auteur et vérifie les profils IG uniquement si vous disposez déjà d’un nom d’utilisateur justifié à contrôler. L’API peut récupérer les données d’un profil à partir d’un nom d’utilisateur ; elle ne détermine pas automatiquement que deux comptes appartiennent à la même personne.

Quel résultat vaut-il la peine d’automatiser ?

Imaginez une équipe qui vend du matériel pour préparer du café à la maison et souhaite trouver des auteurs de vidéos publiques sur la préparation de boissons. La recherche manuelle est utile pour découvrir le contenu, mais lorsqu’on la répète, il devient difficile de conserver la vidéo qui a mené au contact, la provenance du nom de profil et ce qui a précisément été vérifié.

Article : Comment vérifier des prospects TikTok sur IG avant leur transfert dans le CRM
Résumé : Un script Python relie des vidéos TikTok publiques aux auteurs indiqués sur leurs profils, puis vérifie les comptes IG correspondants avec jsonscraper. Le résultat est un tableau à examiner manuellement, où les données des plateformes restent distinctes et les champs manquants sont laissés vides.
Rôle de l’image : couverture — l’idée centrale
Section : Quel résultat vaut-il la peine d’automatiser ?
Sujet visuel : Photo éditoriale du bureau de recherche d’un spécialiste du marketing
Une chaîne vérifiable relie la vidéo trouvée à une étape distincte de vérification manuelle du profil IG.© jsonscraper · créé avec l’IA

Le pipeline distingue trois actions : rechercher des vidéos sur TikTok, enregistrer les données observées et vérifier le profil IG présumé. L’analyste peut ainsi ouvrir un seul fichier CSV et retracer l’origine de chaque candidat. Les champs IG ne doivent être remplis qu’après avoir trouvé le nom d’utilisateur dans une description publique, un lien de l’auteur ou après vérification humaine à partir d’autres éléments accessibles.

Cette méthode convient à une agence, une équipe de recherche ou un spécialiste du marketing interne qui a besoin d’une petite liste reproductible pour une qualification manuelle. Elle conserve le contexte de la découverte sans transformer des noms ressemblants en affirmation d’identité.

Quelles données peut-on obtenir ?

La route TikTok documentée /searchVideo accepte le paramètre obligatoire keyword ; les paramètres count, date_posted, sort_by, region et cursor sont également disponibles. Les réponses observées comprennent notamment l’identifiant de la vidéo, sa description, sa date de publication, son lien, les données de l’auteur et les compteurs publics d’interactions. Les champs réellement disponibles peuvent varier ; le code ci-dessous utilise donc une lecture avec valeurs vides par défaut.

Pour IG, ce scénario utilise la route GET documentée /v1/user/by/username, avec le paramètre username. La réponse peut contenir le nom d’utilisateur, le nom affiché, le statut privé ou vérifié, le nombre de publications, d’abonnés et d’abonnements, ainsi que la biographie. Il s’agit d’informations que le spécialiste peut examiner pour prendre une décision, et non d’une note attribuée à l’auteur.

La documentation officielle de l’API TikTok décrit les paramètres de recherche, tandis que la documentation de l’API IG décrit les méthodes et paramètres IG. Les définitions intégrées de l’API jsonscraper précisent également les routes, les noms des paramètres et les formes de réponse observées ; les vérifications citées datent du 25 octobre 2026.

Configurez les clés et la liste des candidats

Enregistrez les clés API dans les variables d’environnement : JSONSCRAPER_TIKTOK_LICENSE_KEY et JSONSCRAPER_INSTAGRAM_LICENSE_KEY. Ne les insérez pas dans le code source, un fichier CSV ou les journaux des tâches. Installez la bibliothèque de requêtes avec python -m pip install requests. L’exemple suivant est conçu pour Python 3.8 ou une version ultérieure.

import csv
import os
import sys
from urllib.parse import urlencode

import requests

TIKTOK_KEY = os.environ.get("JSONSCRAPER_TIKTOK_LICENSE_KEY")
INSTAGRAM_KEY = os.environ.get("JSONSCRAPER_INSTAGRAM_LICENSE_KEY")

if not TIKTOK_KEY or not INSTAGRAM_KEY:
    sys.exit("Set JSONSCRAPER_TIKTOK_LICENSE_KEY and JSONSCRAPER_INSTAGRAM_LICENSE_KEY")


def get_json(base_url, path, params):
    response = requests.get(
        f"{base_url}{path}",
        params=params,
        timeout=30,
    )
    response.raise_for_status()
    return response.json()


def extract_videos(payload):
    """Handle both observed TikTok search result locations."""
    if payload.get("status") != "ok":
        raise RuntimeError(f"TikTok API status: {payload.get('status')}")

    tiktok = payload.get("tiktok") or {}
    videos = list(tiktok.get("aweme_list") or [])
    for item in tiktok.get("search_item_list") or []:
        video = item.get("aweme_info")
        if video:
            videos.append(video)

    unique = {}
    for video in videos:
        video_id = video.get("aweme_id")
        if video_id:
            unique[video_id] = video
    return list(unique.values())


keyword = "домашний кофе"
tiktok_payload = get_json(
    "https://tiktok.evelode.com",
    "/searchVideo",
    {
        "license_key": TIKTOK_KEY,
        "keyword": keyword,
        "count": 20,
        "date_posted": "this-month",
        "sort_by": "relevance",
    },
)

rows = []
for video in extract_videos(tiktok_payload):
    author = video.get("author") or {}
    stats = video.get("statistics") or {}
    rows.append({
        "tiktok_video_id": video.get("aweme_id", ""),
        "tiktok_url": video.get("share_url", ""),
        "video_description": video.get("desc", ""),
        "created_at": video.get("create_time", ""),
        "tiktok_username": author.get("unique_id", ""),
        "tiktok_author_name": author.get("nickname", ""),
        "tiktok_followers": author.get("follower_count", ""),
        "views": stats.get("play_count", ""),
        "likes": stats.get("digg_count", ""),
        "instagram_username": "",
        "instagram_status": "not checked",
        "instagram_followers": "",
        "instagram_is_private": "",
        "manual_match_review": "required",
    })

# Remplissez ce dictionnaire uniquement avec des noms d’utilisateur
# trouvés séparément et ajoutés après vérification manuelle de la source.
verified_instagram_usernames = {
    # "tiktok_video_id": "instagram_username"
}

for row in rows:
    username = verified_instagram_usernames.get(row["tiktok_video_id"])
    if not username:
        continue

    ig_payload = get_json(
        "https://ig.jsonscraper.com",
        "/v1/user/by/username",
        {
            "license_key": INSTAGRAM_KEY,
            "username": username,
        },
    )
    if ig_payload.get("status") != "ok":
        row["instagram_status"] = "api status: " + str(ig_payload.get("status"))
        continue

    profile = ig_payload.get("ig") or {}
    row["instagram_username"] = profile.get("username", username)
    row["instagram_status"] = "profile returned"
    row["instagram_followers"] = profile.get("follower_count", "")
    row["instagram_is_private"] = profile.get("is_private", "")
    row["manual_match_review"] = "check relationship manually"

if rows:
    with open("social_lead_checks.csv", "w", newline="", encoding="utf-8") as f:
        writer = csv.DictWriter(f, fieldnames=rows[0].keys())
        writer.writeheader()
        writer.writerows(rows)
else:
    print("No video rows returned for this query.")

Pourquoi le gestionnaire tient-il compte de deux structures de réponse ?

Les résultats de recherche TikTok peuvent se trouver à deux endroits : tiktok.aweme_list et tiktok.search_item_list[].aweme_info. Dans une réponse de recherche observée, la première liste pouvait être vide alors que des éléments figuraient dans la seconde. L’exemple réunit donc les deux sources et supprime les doublons à partir de aweme_id. Il vérifie d’abord le status externe, puis lit l’objet tiktok.

Article : Comment vérifier des prospects TikTok sur IG avant leur transfert dans le CRM
Résumé : Un script Python relie des vidéos TikTok publiques aux auteurs indiqués sur leurs profils, puis vérifie les comptes IG correspondants avec jsonscraper. Le résultat est un tableau à examiner manuellement, où les données des plateformes restent distinctes et les champs manquants sont laissés vides.
Rôle de l’image : illustration complémentaire 2 — un aspect particulier différent
Section : Pourquoi le gestionnaire tient-il compte de deux structures de réponse ?
Sujet visuel : Schéma montrant les deux emplacements des résultats de recherche TikTok et l’étape manuelle distincte avant la requête IG
Le schéma montre les deux emplacements des résultats de recherche TikTok et l’étape manuelle séparée avant la requête IG.© jsonscraper · illustration générée par l’IA

Le code n’enregistre que les champs réellement présents dans la réponse. Une valeur vide signifie que le champ était absent de l’objet reçu ; elle ne doit pas être interprétée comme une valeur nulle. Il est utile de conserver les liens et les descriptions des vidéos avec les métriques : sans cela, le tableau perd son contexte d’origine lorsqu’on le consulte plus tard.

Ajoutez la pagination uniquement si nécessaire

L’exemple interroge une seule page et traite uniquement les éléments renvoyés. Pour poursuivre la recherche, la documentation prévoit le paramètre cursor ; sa valeur est récupérée dans la réponse précédente. Conservez le curseur comme une valeur opaque et transmettez-le sans effectuer de calculs vous-même. Arrêtez la boucle lorsque la réponse indique qu’il n’y a pas de suite ou lorsque la limite définie par l’équipe est atteinte. La pagination élargit l’ensemble des résultats renvoyés, mais ne justifie pas de le présenter comme un recensement exhaustif de toutes les publications sur le sujet.

Avant d’ajouter une extraction automatisée, vérifiez la réponse réelle avec votre clé et choisissez un nombre raisonnable de pages. Conservez le JSON d’origine à côté de la ligne normalisée ou séparément, avec la date d’exécution : vous pourrez ainsi déterminer si un champ de réponse a changé et retraiter la collecte si le schéma évolue.

Comment utiliser le CSV pour la qualification

Dans le tableau, vous pouvez filtrer les lignes selon la présence d’un lien vidéo, d’une description, d’un auteur et d’un profil IG renseigné. Pour organiser la première vérification, des statuts simples sont utiles : « vidéo trouvée », « nom d’utilisateur IG trouvé », « profil renvoyé », « lien entre les comptes vérifié par une personne » et « exclu ». Ces statuts décrivent l’avancement de la vérification, et non la qualité ou les intentions de l’auteur.

Si la tâche exige un rapport reproductible, exécutez le script selon un calendrier et ajoutez une colonne distincte pour la date d’obtention des données. La comparaison des instantanés montrera alors ce qui a changé entre les exécutions dans les champs disponibles, par exemple le nombre d’abonnés du profil. Les métriques TikTok et IG doivent être conservées séparément, avec la plateforme et l’heure d’observation indiquées : il s’agit de contextes et de réponses API différents.

Pour un flux plus important, remplacez le CSV par une base de données dont la clé primaire combine la plateforme et l’identifiant de la vidéo. Conservez la requête textuelle d’origine, l’heure de collecte et la réponse brute. Il vaut mieux envoyer une notification Slack ou transmettre une ligne au CRM après confirmation manuelle du lien entre les profils, et non dès qu’un nom correspond.

Limites d’interprétation et utilisation sécurisée

Une recherche par expression clé renvoie les résultats trouvés par l’API, et non la liste complète des publications. Le nombre de vues, de mentions J’aime et d’abonnés est un instantané de la réponse au moment de la requête. Il peut servir à trier une liste de travail et à effectuer une vérification ultérieure, mais ne confirme à lui seul ni une intention commerciale, ni une audience, ni un consentement à être contacté.

Confirmez le lien entre les profils à partir d’indices publics explicites et consignez qui a effectué la vérification et à quel moment. Si le nom d’utilisateur IG provient d’un tableau tiers sans source vérifiable, laissez le statut « à vérifier ». Un profil privé ou des données manquantes doivent apparaître comme un résultat distinct de la vérification, sans tentative de combler les lacunes par des suppositions.

Utilisez les clés dans le coffre de secrets de l’environnement de travail, limitez l’accès aux exports et définissez une durée de conservation adaptée à l’objectif de la recherche. Ne transmettez au CRM que les champs nécessaires au travail manuel ultérieur et respectez les règles applicables des plateformes ainsi que les exigences relatives au traitement des données.

Résultat final

Après exécution, un CSV contiendra la liste des vidéos trouvées, leurs auteurs et les métriques disponibles, ainsi que des champs distincts pour la vérification IG. Le script peut être exécuté manuellement, selon un calendrier dans la CI ou via un nœud de requête HTTP d’une plateforme d’automatisation. Le principe pratique essentiel consiste à automatiser la collecte et la structuration des données, tout en laissant à une personne la vérification du lien entre les comptes.

Pour vérifier les routes et les paramètres disponibles, commencez par l’API TikTok Scraper et l’API IG Scraper. Les pages produit proposent des exemples de requêtes et des liens vers la documentation ; commencez par une petite requête avant d’intégrer la collecte à un processus permanent.

Personnes

Aucune personne répertoriée pour cet article pour le moment.

Continuez à lireTransformer les profils IG en journal quotidien des changements
Lire le prochain article

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