ScavioScavio
ProduitTarifsDocumentation
ConnexionCommencer
  1. Accueil
  2. Tutoriels
  3. Comment suivre le déclin des impressions YouTube avec une API de recherche
Tutoriel

Comment suivre le déclin des impressions YouTube avec une API de recherche

Suivez comment les vidéos YouTube perdent du terrain dans les classements de recherche au fil du temps à l'aide d'une API de recherche. Construisez un tracker de déclin des impressions sans accès à YouTube Analytics.

Obtenez une clé API gratuiteDocumentation API

Les impressions YouTube diminuent après la publication : les vidéos atteignent un pic de visibilité dans les recherches en quelques jours, puis baissent progressivement à mesure que de nouveaux contenus entrent en concurrence. Suivre cette baisse aide les créateurs à comprendre la durée de vie de leur contenu. Ce tutoriel suit la position dans les recherches au fil du temps en utilisant des requêtes API quotidiennes au lieu de se fier à YouTube Studio (qui ne montre que vos propres vidéos).

Prérequis

  • Python 3.8+
  • Une clé API Scavio
  • URLs de vidéos ou mots-clés à suivre

Parcours

Étape 1: Suivre la position d'un mot-clé dans les recherches

Interrogez YouTube quotidiennement via API et enregistrez le classement de votre vidéo.

Python
import requests, os, json
from datetime import date

H = {'x-api-key': os.environ['SCAVIO_API_KEY'], 'Content-Type': 'application/json'}

def track_position(keyword: str, target_channel: str) -> dict:
    resp = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
        json={'platform': 'youtube', 'query': keyword}, timeout=10)
    results = resp.json().get('organic', [])
    
    for i, r in enumerate(results):
        if target_channel.lower() in r.get('channel', '').lower():
            return {'keyword': keyword, 'position': i + 1, 'date': date.today().isoformat(),
                    'title': r.get('title', ''), 'views': r.get('views', '')}
    
    return {'keyword': keyword, 'position': None, 'date': date.today().isoformat(), 'not_found': True}

Étape 2: Construire une boucle de suivi quotidien

Suivez plusieurs mots-clés chaque jour et stockez l'historique des positions.

Python
from pathlib import Path

def daily_rank_track(keywords: list, channel: str) -> dict:
    history_file = Path('yt_rank_history.json')
    history = json.loads(history_file.read_text()) if history_file.exists() else {}
    
    today = date.today().isoformat()
    today_data = []
    
    for kw in keywords:
        position = track_position(kw, channel)
        today_data.append(position)
    
    history[today] = today_data
    history_file.write_text(json.dumps(history, indent=2))
    
    return {'date': today, 'tracked': len(keywords), 'found': sum(1 for d in today_data if d.get('position')),
            'positions': today_data}

Étape 3: Calculer le taux de déclin

Analysez l'historique des positions pour calculer les courbes de déclin des impressions.

Python
def calculate_decay(history: dict, keyword: str) -> dict:
    positions = []
    for day, data in sorted(history.items()):
        for entry in data:
            if entry.get('keyword') == keyword and entry.get('position'):
                positions.append({'date': day, 'position': entry['position']})
    
    if len(positions) < 2:
        return {'keyword': keyword, 'insufficient_data': True}
    
    first_pos = positions[0]['position']
    last_pos = positions[-1]['position']
    days_tracked = len(positions)
    
    decay_rate = (last_pos - first_pos) / days_tracked if days_tracked > 0 else 0
    
    return {
        'keyword': keyword,
        'first_position': first_pos,
        'current_position': last_pos,
        'days_tracked': days_tracked,
        'decay_rate_per_day': round(decay_rate, 2),
        'positions_lost': last_pos - first_pos,
        'trend': 'declining' if decay_rate > 0.1 else 'stable' if abs(decay_rate) < 0.1 else 'improving',
    }

Étape 4: Générer un rapport de déclin

Produisez un rapport récapitulatif indiquant quel contenu décline le plus rapidement.

Python
def decay_report(history_file: str = 'yt_rank_history.json') -> dict:
    history = json.loads(Path(history_file).read_text())
    keywords = set()
    for day_data in history.values():
        for entry in day_data:
            if entry.get('keyword'):
                keywords.add(entry['keyword'])
    
    decays = [calculate_decay(history, kw) for kw in keywords]
    decays = [d for d in decays if not d.get('insufficient_data')]
    decays.sort(key=lambda d: d.get('decay_rate_per_day', 0), reverse=True)
    
    return {
        'total_keywords': len(decays),
        'fastest_decaying': decays[:3],
        'most_stable': [d for d in decays if d.get('trend') == 'stable'],
        'improving': [d for d in decays if d.get('trend') == 'improving'],
    }

Exemple Python

Python
import requests, os, json
from datetime import date

def track_yt_rank(keyword, channel):
    r = requests.post('https://api.scavio.dev/api/v1/search',
        headers={'x-api-key': os.environ['SCAVIO_API_KEY'], 'Content-Type': 'application/json'},
        json={'platform': 'youtube', 'query': keyword}).json()
    for i, v in enumerate(r.get('organic',[])):
        if channel.lower() in v.get('channel','').lower():
            return i + 1
    return None

Exemple JavaScript

JavaScript
async function trackYTRank(keyword, channel) {
  const r = await fetch('https://api.scavio.dev/api/v1/search', {
    method: 'POST', headers: {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'},
    body: JSON.stringify({platform: 'youtube', query: keyword})
  });
  const results = (await r.json()).organic || [];
  const idx = results.findIndex(v => v.channel?.toLowerCase().includes(channel.toLowerCase()));
  return idx >= 0 ? idx + 1 : null;
}

Sortie attendue

JSON
A YouTube impression decay tracker that monitors search position daily and calculates decay rates per keyword, identifying content that needs refreshing.

Tutoriels associés

  • Comment suivre les suppressions de playlists YouTube

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+. Une clé API Scavio. URLs de vidéos ou mots-clés à suivre. 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 des impressions YouTube en 2026

Read more
Best Of

Meilleures API de suivi de classement SEO en 2026

Read more
Glossary

Paysage des fournisseurs d'API de recherche (2026)

Read more
Solution

Suivi de la baisse d'impressions YouTube avec l'API de recherche

Read more
Glossary

Comparaison des niveaux gratuits d'API de recherche

Read more
Solution

Construisez un suivi de classement local fiable avec l'API Scavio

Read more

Commencer

Suivez comment les vidéos YouTube perdent du terrain dans les classements de recherche au fil du temps à l'aide d'une API de recherche. Construisez un tracker de déclin des impressions sans accès à YouTube Analytics.

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é