Les fils r/PartneredYouTube montrent des créateurs pris au dépourvu par une résiliation pour contenu « spammy, trompeur, arnaque ». Ce tutoriel construit un auto-audit qui repère les mêmes signaux utilisés par les classificateurs de YouTube, afin qu'un créateur puisse corriger les problèmes avant une sanction.
Prérequis
- Python 3.10+
- Une clé API Scavio
- Un identifiant de chaîne YouTube cible
Parcours
Étape 1: Récupérer les dernières vidéos de la chaîne
La plateforme YouTube de Scavio renvoie des listes structurées de vidéos.
import requests, os
API_KEY = os.environ['SCAVIO_API_KEY']
def recent_uploads(handle):
r = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': API_KEY},
json={'query': handle, 'platform': 'youtube', 'num_results': 50})
return r.json().get('videos', [])Étape 2: Vérifier le ratio vues/j'aime
Les classificateurs de spam signalent les vidéos avec des ratios d'engagement anormaux.
def view_like_ratio(v):
views = v.get('view_count', 0)
likes = v.get('like_count', 0)
return likes / views if views else 0Étape 3: Scanner les plaintes de la communauté sur Reddit
Rechercher r/PartneredYouTube et r/youtube pour le nom de la chaîne.
def complaints(handle):
r = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': API_KEY},
json={'query': f'{handle} spam', 'platform': 'reddit'})
return r.json().get('posts', [])Étape 4: Vérifier les titres putaclic
Signaux des classificateurs : TOUT EN MAJUSCULES, emojis excessifs, déclencheurs 'CHOC'.
import re
CLICKBAIT = [r'\b(SHOCKING|INSANE|YOU WONT BELIEVE)\b', r'!{3,}', r'[A-Z]{6,}']
def clickbait_score(title):
return sum(1 for p in CLICKBAIT if re.search(p, title))Étape 5: Composer le rapport d'audit
Agréger les scores et signaler les vidéos à haut risque.
def audit(handle):
videos = recent_uploads(handle)
flags = [v for v in videos if clickbait_score(v['title']) > 1 or view_like_ratio(v) < 0.005]
return {'handle': handle, 'flagged_videos': flags, 'complaints': complaints(handle)}Exemple Python
import os, requests
API_KEY = os.environ['SCAVIO_API_KEY']
def audit(handle):
r = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': API_KEY},
json={'query': handle, 'platform': 'youtube', 'num_results': 50})
return r.json().get('videos', [])
print(len(audit('@somecreator')))Exemple JavaScript
const API_KEY = process.env.SCAVIO_API_KEY;
export async function audit(handle) {
const r = await fetch('https://api.scavio.dev/api/v1/search', {
method: 'POST',
headers: { 'x-api-key': API_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({ query: handle, platform: 'youtube', num_results: 50 })
});
return (await r.json()).videos || [];
}Sortie attendue
Risk report per channel with flagged videos (low engagement ratio or clickbait title) plus community complaint threads.