Créa·Ka
Tous les créateurs québécois. Tous leurs liens.
Annuaire public, québécois, exhaustif et cross-plateforme des créateurs de contenu — un croisement entre un annuaire cherchable et un « Linktree collectif », membre de la famille Groupe KA.
Captures
| Accueil (annuaire) | Page créateur |
|---|---|
![]() |
![]() |
| Statistiques | Mobile (tab bar Lou·Ka) |
|---|---|
![]() |
![]() |
Ce que fait Créa·Ka
Chaque créateur québécois a une fiche canonique qui regroupe tous ses
comptes publics — Instagram, TikTok, YouTube, Twitch, X, Facebook, Snapchat,
Kick, Substack, Patreon, OnlyFans, balado… — chacun avec son URL canonique,
ses métriques (abonnés, publications, j'aime, vues, épisodes) et son score
de confiance de rattachement. L'annuaire se filtre par niche (20), région
(17 régions administratives), langue, plateforme et taille d'audience
(nano/micro/macro/méga). Chaque créateur a sa page dédiée /createur/{id}.
Architecture (calquée sur Lou·Ka)
DÉCOUVERTE → EXTRACTION → RÉSOLUTION D'IDENTITÉ → NORMALISATION → DÉDUP. → SQLite → API/UI| Module | Rôle |
|---|---|
creaka/schema.py |
fiche Creator + PlatformAccount, validation stricte (compte sans url/confidence = rejeté) |
creaka/identity.py |
signaux de rattachement §12.1 : profil_source 0.98 · link_in_bio 0.95 · cross_link 0.90 · listes_medias/base_publique 0.85 · handle_match 0.75 |
creaka/dedup.py |
fusion uniquement sur compte fort partagé — jamais sur le nom (homonymes) |
creaka/ethics.py |
purge des données privées, opt-out persistant, régime restreint des mineurs |
creaka/db.py |
SQLite WAL : fiches canoniques + index des comptes + journal des syncs |
creaka/web.py |
API FastAPI + frontend statique |
Connecteurs (registre auto-découvrant)
| Connecteur | Famille | Accès | Signal |
|---|---|---|---|
listes-medias |
découverte | dataset local (palmarès médias publics croisés, 376 profils) | 0.85 |
wikidata-qc |
découverte | SPARQL Wikidata (nés/résidant au QC, handles curés) | 0.85 |
onlyqueb |
découverte | sitemap + JSON-LD (annuaire public, liens auto-déclarés) | 0.90 |
youtube-recherche |
découverte | recherche publique YouTube, ~120 requêtes × marqueur QC obligatoire | 0.98 |
balados-itunes |
découverte | API officielle iTunes/Apple Podcasts | 0.98 |
instagram-profil |
enrichissement | Scrapfly (profil public : abonnés, bio, liens de bio → cross-link) | — |
tiktok-profil |
enrichissement | Scrapfly (JSON d'hydratation public) | — |
youtube |
enrichissement | API officielle v3 si clé, sinon page publique | — |
twitch |
enrichissement | API officielle Helix (sauté sans clés) | — |
link-in-bio |
enrichissement | Linktree/Beacons/Bio.link… — le levier nº 1 : une page → tous les comptes | 0.95 |
La couverture s'accumule à chaque passage (watch quotidien) : la découverte trouve de nouveaux créateurs, l'enrichissement rafraîchit les métriques et révèle les comptes croisés via les liens de bio et les pages link-in-bio.
API publique
GET /api/creators?q&niche®ion&langue&plateforme&tier&sort&limit&offset
GET /api/creators/{id} GET /api/stats GET /api/taxonomies
GET /api/sources POST /api/optout GET /healthzÉthique — prime sur tout (CLAUDE.md §15)
- Profils publics et professionnels seulement ;
ethics.scrub()purge téléphones, adresses civiques et courriels personnels avant tout stockage. - Opt-out immédiat et persistant (
/retrait) : fiche masquée sur-le-champ, liste de suppressiondata/optout.json, jamais ré-agrégée. - Mineurs : régime restreint automatique (année de naissance Wikidata) et exclusion de l'annuaire public.
- Score de confiance sur chaque rattachement ; sous 0.50 → « à vérifier », jamais publié. Mieux vaut un lien de moins qu'un lien erroné.
- Loi 25 : finalités documentées, accès/rectification/retrait via
/retrait.
Développement
python3 -m venv .venv && .venv/bin/pip install -r requirements.txt
cp .env.example .env # SCRAPFLY_KEY, YOUTUBE_API_KEY…
python3 -m pytest tests/ -q # 25 tests (identité, homonymes, éthique…)
python3 run.py sync # découverte + enrichissement
python3 run.py serve 8160 # API + frontend
python3 scripts/build_frontend.py # regénère frontend/dist (icônes SVG injectées)
python3 run.py optout "instagram:handle" # retrait manuelDéploiement
Node M3U96b (~/apps/crea-ka) : PM2 crea-ka-web (:8160) +
crea-ka-sync (watch 24 h) + crea-ka-ngrok (www.crea-ka.com).
Redéploiement : scripts/deploy-m3u96b.sh · captures : scripts/screenshots.sh.



