SPB Git

spb/crea-ka

Public

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

6.6 KB

# Créa·Ka

Tous les créateurs québécois. Tous leurs liens.

Créateurs Comptes reliés Site

python backend frontend tests connecteurs host

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.

https://www.crea-ka.com


# Captures

Accueil (annuaire) Page créateur
Accueil Créateur
Statistiques Mobile (tab bar Lou·Ka)
Stats Mobile

# 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)

text
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

text
GET  /api/creators?q&niche&region&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 suppression data/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

bash
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 manuel

# Dé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.


Groupe KA · KA ID · Lou-Ka · Immo-Ka · Auto-Ka · Food-Ka · Fabri-Ka

© Simon-Pierre Boucher — contact@spboucher.ai

Files · 7edde959811d185a8d1a4c2be08ac2ca65a9ef60
Menu

Theme