ScavioScavio
ProduitTarifsDocumentation
ConnexionCommencer
  1. Accueil
  2. Tutoriels
  3. Comment collecter des UGC à partir des hashtags TikTok
Tutoriel

Comment collecter des UGC à partir des hashtags TikTok

Collectez du contenu généré par les utilisateurs à partir des hashtags TikTok. Filtrez par engagement, téléchargez les métadonnées et construisez des bibliothèques UGC. Python à 0,005 $/appel.

Obtenez une clé API gratuiteDocumentation API

Le contenu généré par les utilisateurs à partir des hashtags TikTok est la source la plus riche de mentions authentiques de marques, d'avis sur les produits et d'actifs créatifs pour le marketing. Ce collecteur parcourt les flux de hashtags, filtre les vidéos selon des seuils d'engagement et construit une bibliothèque UGC structurée avec des métadonnées. Chaque scan de hashtag coûte 0,005 $ via l'API Scavio TikTok.

Prérequis

  • Python 3.8+
  • bibliothèque requests
  • Une clé API Scavio de scavio.dev
  • Hashtags cibles à parcourir pour les UGC

Parcours

Étape 1: Parcourir les flux de hashtags pour trouver des vidéos

Extraire les vidéos récentes des hashtags cibles.

Python
import os, requests, json
from datetime import datetime

API_KEY = os.environ['SCAVIO_API_KEY']
TH = {'Authorization': f'Bearer {API_KEY}', 'Content-Type': 'application/json'}

def scan_hashtag(tag):
    data = requests.post('https://api.scavio.dev/api/v1/tiktok/hashtag/videos',
        headers=TH, json={'name': tag}).json()
    videos = data.get('videos', data.get('data', {}).get('videos', []))
    return [{'id': v.get('id', ''), 'desc': v.get('desc', '')[:100],
             'author': v.get('author', {}).get('uniqueId', 'unknown'),
             'plays': v.get('stats', {}).get('playCount', 0),
             'likes': v.get('stats', {}).get('diggCount', 0),
             'comments': v.get('stats', {}).get('commentCount', 0),
             'shares': v.get('stats', {}).get('shareCount', 0),
             'created': v.get('createTime', 0)} for v in videos]

videos = scan_hashtag('amazonfinds')
print(f'#amazonfinds: {len(videos)} videos found')
for v in videos[:3]:
    print(f'  @{v["author"]}: {v["desc"][:50]}... ({v["plays"]:,} plays)')

Étape 2: Filtrer par seuils d'engagement

Conserver uniquement les UGC performants répondant aux critères d'engagement minimum.

Python
def filter_ugc(videos, min_plays=10000, min_likes=500, min_engagement_rate=3.0):
    qualified = []
    for v in videos:
        plays = v.get('plays', 0)
        if plays < min_plays:
            continue
        engagement = v['likes'] + v['comments'] + v['shares']
        er = (engagement / plays * 100) if plays else 0
        if v['likes'] >= min_likes and er >= min_engagement_rate:
            v['engagement_rate'] = round(er, 2)
            qualified.append(v)
    qualified.sort(key=lambda x: x['engagement_rate'], reverse=True)
    print(f'Filtered: {len(qualified)}/{len(videos)} videos meet criteria')
    print(f'  Min plays: {min_plays:,}, Min likes: {min_likes}, Min ER: {min_engagement_rate}%')
    return qualified

filtered = filter_ugc(videos)
for v in filtered[:5]:
    print(f'  @{v["author"]:20} | {v["plays"]:>10,} plays | {v["engagement_rate"]}% ER | {v["desc"][:40]}')

Étape 3: Parcourir plusieurs hashtags et dédoublonner

Collecter les UGC sur des hashtags connexes et supprimer les vidéos en double.

Python
def collect_ugc(hashtags, min_plays=10000, min_likes=500):
    all_videos = []
    seen_ids = set()
    for tag in hashtags:
        videos = scan_hashtag(tag)
        for v in videos:
            if v['id'] not in seen_ids:
                v['hashtag'] = tag
                all_videos.append(v)
                seen_ids.add(v['id'])
        print(f'  #{tag}: {len(videos)} videos ({len(seen_ids)} unique total)')
    filtered = filter_ugc(all_videos, min_plays=min_plays, min_likes=min_likes)
    cost = len(hashtags) * 0.005
    print(f'\nTotal: {len(filtered)} qualified UGC from {len(hashtags)} hashtags')
    print(f'Cost: ${cost:.3f}')
    return filtered

hashtags = ['amazonfinds', 'tiktokmademebuyit', 'musthave', 'productreview']
ugc_library = collect_ugc(hashtags)

Étape 4: Construire et exporter la bibliothèque UGC

Enregistrer la bibliothèque UGC organisée avec les métadonnées pour une utilisation marketing.

Python
def export_ugc_library(ugc, filename='ugc_library.json'):
    library = {
        'collected_at': datetime.now().isoformat(),
        'total_videos': len(ugc),
        'videos': []
    }
    for v in ugc:
        library['videos'].append({
            'video_id': v['id'],
            'author': v['author'],
            'description': v['desc'],
            'hashtag_source': v.get('hashtag', ''),
            'metrics': {
                'plays': v['plays'], 'likes': v['likes'],
                'comments': v['comments'], 'shares': v['shares'],
                'engagement_rate': v.get('engagement_rate', 0)
            },
            'tiktok_url': f'https://www.tiktok.com/@{v["author"]}/video/{v["id"]}'
        })
    with open(filename, 'w') as f:
        json.dump(library, f, indent=2)
    # Stats
    avg_er = sum(v.get('engagement_rate', 0) for v in ugc) / len(ugc) if ugc else 0
    avg_plays = sum(v['plays'] for v in ugc) / len(ugc) if ugc else 0
    print(f'\nUGC Library saved to {filename}')
    print(f'  Videos: {len(ugc)}')
    print(f'  Avg engagement rate: {avg_er:.2f}%')
    print(f'  Avg plays: {avg_plays:,.0f}')
    print(f'  Top creator: @{ugc[0]["author"]}' if ugc else '')

export_ugc_library(ugc_library)

Exemple Python

Python
import os, requests
TH = {'Authorization': f'Bearer {os.environ["SCAVIO_API_KEY"]}', 'Content-Type': 'application/json'}

def collect(hashtag, min_plays=10000):
    data = requests.post('https://api.scavio.dev/api/v1/tiktok/hashtag/videos',
        headers=TH, json={'name': hashtag}).json()
    videos = data.get('videos', data.get('data', {}).get('videos', []))
    filtered = [v for v in videos if v.get('stats', {}).get('playCount', 0) >= min_plays]
    print(f'#{hashtag}: {len(filtered)}/{len(videos)} videos with {min_plays:,}+ plays. Cost: $0.005')
    for v in filtered[:3]:
        print(f'  @{v.get("author", {}).get("uniqueId", "?")}: {v.get("desc", "")[:40]}')

collect('amazonfinds')

Exemple JavaScript

JavaScript
const TH = { 'Authorization': `Bearer ${process.env.SCAVIO_API_KEY}`, 'Content-Type': 'application/json' };
async function collect(hashtag, minPlays = 10000) {
  const data = await fetch('https://api.scavio.dev/api/v1/tiktok/hashtag/videos', {
    method: 'POST', headers: TH, body: JSON.stringify({ name: hashtag })
  }).then(r => r.json());
  const videos = (data.videos || data.data?.videos || []);
  const filtered = videos.filter(v => (v.stats?.playCount || 0) >= minPlays);
  console.log(`#${hashtag}: ${filtered.length}/${videos.length} with ${minPlays.toLocaleString()}+ plays`);
  filtered.slice(0, 3).forEach(v =>
    console.log(`  @${v.author?.uniqueId || '?'}: ${(v.desc || '').slice(0, 40)}`));
}
await collect('amazonfinds');

Sortie attendue

JSON
#amazonfinds: 20 videos found
  @sarahfinds: This Stanley tumbler color is everything... (2,400,000 plays)
  @dealsqueen: Under $15 Amazon finds you NEED... (1,800,000 plays)

  #amazonfinds: 20 videos (20 unique total)
  #tiktokmademebuyit: 18 videos (35 unique total)
  #musthave: 15 videos (44 unique total)
  #productreview: 12 videos (50 unique total)
Filtered: 18/50 videos meet criteria

UGC Library saved to ugc_library.json
  Videos: 18
  Avg engagement rate: 7.34%
  Avg plays: 890,000

Tutoriels associés

  • Comment construire un traqueur de concurrents TikTok
  • Comment construire une écoute sociale TikTok
  • Comment créer des analyses de comptes publics via l'API TikTok

Questions fréquentes

La plupart des développeurs terminent ce tutoriel en 15 à 30 minutes. Vous aurez besoin d'une clé API Scavio (l'offre gratuite suffit) et d'un environnement Python ou JavaScript fonctionnel.

Python 3.8+. bibliothèque requests. Une clé API Scavio de scavio.dev. Hashtags cibles à parcourir pour les UGC. Une clé API Scavio vous donne 50 crédits gratuits à l'inscription.

Oui. L'offre gratuite comprend 50 crédits à l'inscription, ce qui est largement suffisant pour terminer ce tutoriel et prototyper une solution fonctionnelle.

Scavio dispose d'un package natif LangChain (langchain-scavio), d'un serveur MCP et d'une API REST simple qui fonctionne avec tout client HTTP. Ce tutoriel utilise the raw REST API, mais vous pouvez l'adapter à votre framework de prédilection.

Ressources connexes

Best Of

Meilleures API de suivi de campagnes TikTok UGC (mai 2026)

Read more
Best Of

Meilleures API d'analyse de hashtags TikTok (2026)

Read more
Use Case

Suivi des campagnes UGC TikTok

Read more
Use Case

Surveillance de campagne de hashtag TikTok

Read more
Glossary

Suivi des UGC TikTok via API

Read more
Solution

Collecte de contenu UGC TikTok via API

Read more

Commencer

Collectez du contenu généré par les utilisateurs à partir des hashtags TikTok. Filtrez par engagement, téléchargez les métadonnées et construisez des bibliothèques UGC. Python à 0,005 $/appel.

Obtenez une clé API gratuiteLire la documentation
ScavioScavio

API de recherche en temps réel pour agents IA. Recherchez sur toutes les plateformes, pas seulement Google.

Produit

  • Fonctionnalités
  • Tarifs
  • Tableau de bord
  • Affiliés

Développeurs

  • Documentation
  • Référence API
  • Démarrage rapide
  • Intégration MCP
  • SDK Python

Alternatives

  • Alternative à Tavily
  • Alternative à SerpAPI
  • Alternative à Firecrawl
  • Alternative à Exa

Outils

  • Formateur JSON
  • cURL vers code
  • Compteur de jetons
  • Tous les outils

© 2026 Scavio. Tous droits réservés.

Featured on TAAFT
Conditions d'utilisationPolitique de confidentialité