SPB Git forge

spb/crea-ka

Public

Créa·Ka — annuaire public cross-plateforme des créateurs de contenu québécois (crea-ka.com)

52commits 1branches 0releases
11.3 MBsize
maindefault branch
20 days agolast push
Python 73.6% HTML 13.2% TypeScript 6% JavaScript 4.5% CSS 1.7% Dockerfile 0.6%
4.6 KB · 74 lines markdown
Rendered Raw Blame History
1# `youtube` — connecteur enrichissement (palier 2)23_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 16:14 — ne pas éditer à la main, régénérer._45**État : actif** · Famille : enrichissement (enrichment) · Backend : direct · Créateurs découverts : 0 · touchés : 067## Description de la source89Connecteur ENRICHISSEMENT YouTube — stats de chaîne par créateur. Mode d'accès : YouTube Data API v3 (OFFICIELLE, privilégiée §10) si YOUTUBE_API_KEY est définie ; sinon voie SANS clé complète (vague 3) : page publique de la chaîne + InnerTube « browse » (l'API interne que la page elle-même appelle, clé publique embarquée). Palier 2-3 (§9).1011- **Notes (registre)** : abonnés, nb de vidéos, vues totales (si affichées), date de la dernière vidéo (dormant >12 mois), description → bio, bannière + avatar, pays affiché12- **Signal d'identité** : api_officielle (0.95) quand confirmé par l'API ; la voie publique ne touche pas au score (colonne `accounts.signal` / `confidence`)13- **Module** : `creaka/connectors/youtube.py` — classe `YouTubeConnector` (`kind = "enrichment"`)1415## Accès1617- **Accès (registre)** : YouTube Data API v3 (officielle) si YOUTUBE_API_KEY, sinon voie publique complète SANS clé (vague 3) : page de chaîne (ytInitialData) + InnerTube browse du panneau « À propos » (clé publique embarquée) + page /videos18- **Type d'accès (code)** : API JSON19- **Endpoint de base** : https://www.googleapis.com/youtube/v3/channels?part=statistics,snippet&forHandle={h}&key={key}20- **URLs du module** : https://www.googleapis.com/youtube/v3/channels · https://www.youtube.com/@{h} · https://www.youtube.com/channel/{h} · https://www.youtube.com/youtubei/v1/browse21- **Pagination** : curseur / continuation22- **Backend anti-bot / rendu** : requests direct (session UA CreaKaBot, throttling poli)23- **Politesse** : 1.0 s entre requêtes, timeout 30 s, UA `CreaKaBot/1.0 (+https://www.crea-ka.com/bot)`24- **Authentification** : clé(s) API requise(s) — voir statut/registre2526## Champs récupérés → schéma cible2728Cible d'**enrichissement** : colonnes de la table `accounts` pour la/les plateforme(s) `youtube` (8086 comptes en BD, confiance moyenne 0.98).2930| Colonne `accounts` | Contenu | Renseignée | Exemple réel |31|---|---|---|---|32| `handle` | Handle | 100 % | nilered |33| `url` | URL du profil | 100 % | https://www.youtube.com/@nilered |34| `followers` | Abonnés | 94 % | 10900000 |35| `verified` | Badge vérifié | 0 % | — |36| `confidence` | Confiance d'identité | 100 % | 0.9 |37| `signal` | Signal d'identité | 100 % | cross_link |38| `metrics` | Métriques détaillées (JSON) | 18 % | {"yt_checked": "2026-08-18T10:08:15Z", "videos": 400, "views": 4647638686, "last_video": … |39| `last_checked` | Dernière vérification | 100 % | 2026-08-18T19:58:58Z |4041## Fréquence & budget4243- **Cadence déclarée (registre)** : quotidienne (watch) — cap 300 chaînes/passage, rotation 14 j (≈4 200 comptes → convergence ~2 semaines)44- **Cadence observée** (médiane sync_log) : ≈ 3.5 h45- **Dernier passage** : 2026-08-18T17:21:57Z — 256 créateurs, 264 comptes, +0 / ~256, 44 erreur(s), 977 s46- **Throttling** : 1.0 s entre requêtes (`request_delay`)4748## Volumétrie & complétude4950- **Créateurs découverts par la source** (`doc.source`) : 0 · **fiches touchées** (`source_ids`) : 051- **Comptes `youtube` en BD** : 8086 — abonnés 94 % · métriques 18 % · dernière vérification 2026-08-18T20:05:02Z52- **Runs journalisés (60 derniers)** : 5, dont 3 avec erreurs5354## Erreurs connues & dépannage5556| Passage | Erreurs | Alerte (sync_log) |57|---|---|---|58| 2026-08-18T17:21:57Z | 44 | — |59| 2026-08-18T13:42:12Z | 38 | — |60| 2026-08-18T10:24:39Z | 36 | — |6162Rejouer la source seule : `python3 run.py sync youtube` · vérifier `sync_log` (`SELECT * FROM sync_log WHERE source='youtube' ORDER BY ts DESC LIMIT 5;`).6364## Licence, attribution & conditions6566- **Cadre d'accès (registre)** : YouTube Data API v3 (officielle) si YOUTUBE_API_KEY, sinon voie publique complète SANS clé (vague 3) : page de chaîne (ytInitialData) + InnerTube browse du panneau « À propos » (clé publique embarquée) + page /videos67- **API publique** utilisée selon ses conditions (pas de clé détournée, throttling poli) ; données limitées aux profils publics.68- Retrait sur demande : contact@spboucher.ai (opt-out honoré à la prochaine ingestion).6970## Historique7172- 2026-08-18 — plus ancien passage journalisé dans `sync_log` (fenêtre des 60 derniers).73- 2026-08-18 — vague d'enrichissement : standardisation de la documentation des connecteurs (fiche générée par `scripts/gen_connector_docs.py`).74