Toutes les sorties et tous les événements du Québec, un seul endroit — 7 connecteurs, fiches SSR, design Groupe KA.
HTML 82.9%
Python 15.2%
TypeScript 0.9%
JavaScript 0.7%
1# Sorti-KA — Conformité des sources (licences, robots.txt, crédits)23> Établi le 2026-08-19 (Phase 3 — expansion des sources). À tenir à jour à CHAQUE4> ajout/retrait de source. Règles maison transversales : User-Agent honnête5> (`SortiKa/1.0 (+https://www.sorti-ka.com; contact@spboucher.ai)`), GET/POST6> throttlés, caches incrémentaux (jamais de re-scrape intégral), lien7> systématique vers la fiche originale, AUCUNE donnée inventée, quarantaine8> pour le douteux. Le pied de page du site porte l'attribution globale ; la9> fiche de chaque événement affiche « Source & attribution » avec le nom de la10> source et le lien sortant.1112## Sources actives1314| Source (id) | Licence / CGU constatées | robots.txt (lu le) | Crédit requis | Fréquence pratiquée | Décision |15|---|---|---|---|---|---|16| SIT Québec (`sitq`) | Données Québec — Creative Commons 4.0 (API de syndication officielle du MTO) | n/a (API) | **Oui — CC 4.0** : « SIT Québec — Ministère du Tourisme » (pied de page + fiche) | horaire, 1 GET + images plafonnées | conforme |17| Ville de Montréal (`montreal`) | donnees.montreal.ca — **CC BY 4.0** | WAF anti-« bot » dans l'UA (contourné par un UA produit honnête, permis) | **Oui — CC BY 4.0** : « Ville de Montréal » (pied de page + fiche) | horaire, API CKAN paginée | conforme |18| Le point de vente (`lepointdevente`) | robots.txt : `User-Agent: * / Allow: *` ; CGU : pas d'interdiction d'indexation constatée | 2026-08 (Allow all) | Courtoisie : lien billetterie direct | horaire, 150 fiches/sync | conforme |19| Ville de Laval jeu ouvert (`laval`) | Données Québec — CC 4.0 | n/a (fichier JSON) | Oui — CC 4.0 : « Ville de Laval » | horaire (source morte, stock archivé) | morte-à-la-source, branchée en veille |20| **Ville de Laval laval.ca (`lavalweb`)** | site municipal public ; robots.txt : `Disallow: /wp-admin/` seulement | 2026-08-19 | Courtoisie : « Ville de Laval (laval.ca) » affiché | horaire, ~60 GET listes + 30 fiches/sync | **conforme (Phase 3)** |21| Ville de Sherbrooke (`sherbrooke`) | page municipale publique (référencée sur Données Québec) | 2026-08 | Courtoisie : « Ville de Sherbrooke » | horaire, 1 GET | conforme |22| Ville de Longueuil (`longueuil`) | portail municipal public | 2026-08 | Courtoisie | horaire, 1 GET + 30 fiches | conforme |23| Eventbrite (`eventbrite`) | robots.txt : `/d/` et `/e/` non interdits (seuls /directory/, checkout, endpoints privés) | 2026-08 | Courtoisie : lien fiche directe | horaire, pages découverte + 150 fiches | conforme |24| Tourisme Cantons-de-l'Est (`cantonsdelest`) | pages publiques ATR | 2026-08 | Courtoisie : « Tourisme Cantons-de-l'Est » | horaire, 1 GET + 40 fiches | conforme |25| evenko (`evenko`) | robots.txt : `Allow /api/search*` explicite | 2026-08 | Courtoisie : lien billets officiel | horaire, ~5 GET | conforme |26| Atuvu.ca (`atuvu`) | robots.txt : Allow / + sitemap public ; Cloudflare → Scrapfly consigné (crédits) | 2026-08 | Courtoisie | horaire, sitemaps lastmod + 120 fiches | conforme (Scrapfly consigné) |27| La Vitrine (`lavitrine`) | robots.txt : Allow / + `Content-Signal: search=yes, use=reference` | 2026-08 | Courtoisie : usage index + lien fiche (conforme au Content-Signal) | horaire, 150 fiches/sync | conforme |28| Ville de Brossard (`brossard`) | API REST WordPress publique sans auth | 2026-08 | Courtoisie | horaire, API + 80 fiches | conforme |29| Ticketmaster (`ticketmaster`) | robots.txt : /discover/ non interdit (seuls /api/ismds/*) ; API officielle dès que TICKETMASTER_API_KEY fournie | 2026-08 | Courtoisie : lien billetterie officielle | horaire, ≤ 24 GET | conforme |30| Bandsintown (`bandsintown`) | API publique avec app_id d'identification | n/a (API) | Courtoisie : lien fiche | horaire, ≤ 100 artistes/sync | conforme |31| **Tourisme Outaouais (`outaouais`)** | pages publiques ATR ; robots.txt : `Allow: /` | 2026-08-19 | Courtoisie : « Tourisme Outaouais » | horaire, **1 GET** | **conforme (Phase 3)** |32| **Tourisme Lanaudière (`lanaudiere`)** | pages publiques ATR ; robots.txt : `Disallow: /*?` + **Crawl-delay: 2** | 2026-08-19 | Courtoisie : « Tourisme Lanaudière » | horaire, sitemap + 10 fiches/sync, GET séquentiels **2,1 s**, aucune URL à paramètres | **conforme (Phase 3)** |33| **Sorties Saguenay (`saguenaysorties`)** | portail public de la Ville de Saguenay (données La Vitrine) ; robots.txt non publié (page maintenance) | 2026-08-19 | Courtoisie : « Sorties Saguenay (Ville de Saguenay) » | horaire, ≤ 15 POST liste + 40 détails/sync | **conforme (Phase 3)** |34| **Tourisme Bas-Saint-Laurent (`bassaintlaurent`)** | pages publiques ATR | 2026-08-19 | Courtoisie : « Tourisme Bas-Saint-Laurent » | horaire, 1 GET + 15 fiches/sync | **conforme (Phase 3)** |35| **Québec animée (`quebecanimee`)** | portail officiel Ville de Québec ; © Ville de Québec (site municipal public) | 2026-08-19 | Courtoisie : « Québec animée (Ville de Québec) » | horaire, 1 GET + 20 fiches/sync | **conforme (Phase 3)** |36| **Place des Arts (`placedesarts`)** | robots.txt : Disallow /cpresources/ /vendor/ /cache/ seulement ; CGU d'achat non applicables à l'index | 2026-08-19 | Courtoisie : « Place des Arts » + lien billetterie officielle | horaire, 1 GET + 25 fiches/sync | **conforme (Phase 3)** |37| **LHJMQ (`lhjmq`)** | flux JSON public HockeyTech qui motorise le site officiel de la ligue (clé publique de la ligue) | n/a (API) | Courtoisie : « LHJMQ » + lien fiche de match officielle | horaire, 2 GET | **conforme (Phase 3)** — à retirer sur simple demande de la ligue |38| **Salles JSON-LD (`sallesjsonld`)** | schema.org/Event publié PAR les salles pour l'indexation ; robots.txt vérifié PAR SALLE avant ajout (consigné dans data/salles_jsonld.json) | 2026-08-19 (Grand Théâtre : Allow / ; Trident : Disallow vide ; Capitole/Gestev : /cpresources/ /vendor/) | Courtoisie : nom de la salle + lien fiche | horaire, 3 GET listes + 40 fiches/sync partagées | **conforme (Phase 3)** |39| **Tourisme Montérégie (`monteregie`)** | API REST WordPress publique sans auth ; robots.txt : Disallow /wp-admin/ /wp-includes/ seulement (wp-json non interdit) | 2026-08-21 | Courtoisie : « Tourisme Montérégie » | horaire, ≤ 2 GET API + 15 fiches/sync | **conforme (Phase 4)** |40| **Tourisme Centre-du-Québec (`centreduquebec`)** | robots.txt : User-agent * → `Content-Signal: search=yes, ai-train=no, use=reference` + Allow / (UA produit SortiKa ≠ bots IA listés) | 2026-08-21 | Courtoisie : « Tourisme Centre-du-Québec » — usage index/référence + lien fiche, conforme au Content-Signal | horaire, 1 GET + 10 fiches/sync | **conforme (Phase 4)** |41| **Tourisme Chaudière-Appalaches (`chaudiereappalaches`)** | robots.txt : Disallow /wp/ /r/ *.php$… (les pages publiques /planifier-votre-sejour/ ne sont pas visées) ; JSON-LD Event publié par l'ATR pour l'indexation | 2026-08-21 | Courtoisie : « Tourisme Chaudière-Appalaches » | horaire, ≤ 4 GET listes + 12 fiches/sync | **conforme (Phase 4)** |42| **Tourisme Gaspésie (`gaspesie`)** | WAF (403 sur GET identifié) contourné via **Scrapfly consigné** (asp, country=ca, sans render_js) — contenu public de l'ATR ; robots.txt : Disallow /umb* seulement (contenu public permis, ClaudeBot explicitement Allow) | 2026-08-21 (via Scrapfly) | Courtoisie : « Tourisme Gaspésie » | horaire, ≤ 9 crédits Scrapfly/sync, re-visite 14 j | **conforme (Phase 4)** — région faible, usage Scrapfly budgété comme annoncé Phase 3 |43| **TicketAcces (`ticketacces`)** | robots.txt (tous hôtes) : **Crawl-delay: 120** + Disallow /achat/ et representations/prix.cfm (jamais requêtés) | 2026-08-21 | Courtoisie : nom de l'organisation + lien d'achat officiel | passage complet toutes les 6 h (TTL) : 5 GET www espacés de 120 s + ≤ 25 fiches (≤ 1 par hôte/passage) ; réémission du cache entre passages | **conforme (Phase 4)** — Crawl-delay honoré PAR HÔTE |44| **Réseau Ovation (`ovation`)** | robots.txt m.ovation.ca : User-agent * → **Crawl-delay: 30** + Disallow /account/ /checkout/ /event/tickets (jamais requêtés) | 2026-08-21 | Courtoisie : nom de l'organisation + lien fiche officielle | passage complet 1×/20 h (TTL) : GET espacés de 30,5 s (hôte unique), ≤ 50 fiches/passage ; réémission du cache entre passages | **conforme (Phase 4)** — Crawl-delay honoré |45| **Tuxedo Billet (`tuxedobillet`)** | tenants : robots.txt `Disallow:` (vide = tout permis) ; SPA Angular/Firebase (RTDB verrouillée) → rendu navigateur via acteur Apify maison (proxy résidentiel CA) | 2026-08-21 (espacetheatre) | Courtoisie : nom de la salle + lien d'achat officiel | 1 run d'acteur / 20 h (TTL), 1 page par tenant par run | **conforme (Phase 4)** — rendu JS modéré, 29 tenants QC vérifiés |4647## Données transversales4849| Donnée | Licence | Crédit | Décision |50|---|---|---|---|51| Répertoire des municipalités (MAMH) — `data/villes_canon.json`, `villes_regions.json` | Données Québec CC 4.0 | Oui : « Répertoire des municipalités (MAMH) » (pied de page) | conforme |52| **Annuaire de salles — OpenStreetMap (Overpass)** | **ODbL** — © contributeurs OpenStreetMap | **Oui : « lieux : © contributeurs OpenStreetMap (ODbL) »** (pied de page, ajouté Phase 3) | conforme — overpass-api.de (PAS l'extrait suisse), UA de bot honnête, 1 requête/30 j |53| Annuaire de salles — Nominatim | politique d'usage OSMF : 1 req/s, UA identifié, cache obligatoire | idem OSM | conforme (throttle 1,1 s, cache disque, plafond/cycle) |5455## Sources écartées (et pourquoi) — vague 2026-08-195657| Candidate | Raison de l'écartement | Re-sonder ? |58|---|---|---|59| Tourisme Mauricie | liste rendue JS (1 carte SSR/page), wp-json verrouillé (401) | oui (percer la facette admin-ajax) |60| Tourisme Laurentides | WAF : 403 sur GET identifié | oui (région déjà bien couverte : 620 fiches — Scrapfly non justifié) |61| Tourisme Gaspésie | ~~WAF : 403 sur GET identifié~~ **RÉACTIVÉE 2026-08-21 (Phase 4)** via Scrapfly consigné — voir Sources actives | n/a |62| Tuxedo Billet | ~~site en panne aux sondes~~ **RÉACTIVÉE 2026-08-21 (Phase 4)** : les tenants vivent — acteur Apify ka-tuxedo, voir Sources actives | n/a |63| Clubs pros (CF MTL, Alouettes, Rocket…) | déjà couverts par evenko/ticketmaster ; ligues dédiées = surtout des doublons | si besoin de statuts officiels |64| Palais Montcalm, Le Diamant, Impérial Bell | fiches SANS JSON-LD Event (sondées) | oui, après refonte de leurs sites |65| MTelus, Corona, Club Soda | salles evenko — déjà couvertes par le connecteur evenko | non (doublons garantis) |66| Petit Champlain, Salle Albert-Rousseau | ~~plateforme JS, rien de SSR~~ **COUVERTES 2026-08-21 (Phase 4)** par le connecteur Réseau Ovation (m.ovation.ca, HTML serveur) | n/a |67| Médias (La Presse, Le Devoir, JdQ/JdM) | éditorial non structuré + droits d'auteur | non |6869## Règles d'affichage du crédit (vérifiées Phase 3)7071- **Pied de page** (`frontend/index.html`) : attribution globale — CC (SITQ, Montréal,72 Laval), villes, ATR, Place des Arts, LHJMQ, billetteries, MAMH, **OSM/ODbL** (ajouté73 2026-08-19 avec l'annuaire de salles).74- **Fiche événement** : bloc « Source & attribution » (`SRC_LABELS`, frontend +75 `sortika/seo.py` pour le SSR) — les 9 nouvelles sources y sont étiquetées.76- **JSON-LD sortant** : chaque fiche renvoie l'URL de la source originale.77