SPB Git

spb/sorti-ka

Public

Toutes les sorties et tous les événements du Québec, un seul endroit — 7 connecteurs, fiches SSR, design Groupe KA.

36.3 KB · 458 lines json
1{2 "_comment": "Sorti-Ka — Registre des sources d'événements (province de Québec). Auteur : Simon-Pierre Boucher — contact@spboucher.ai",3 "sources": [4  {5   "id": "sitq",6   "name": "SIT Québec — Ministère du Tourisme",7   "url": "https://www.donneesquebec.ca/recherche/dataset/sit-quebec-evenements",8   "type": "donnees-ouvertes",9   "extraction": "API JSON (Tourinsoft, syndication publique) — dates, géoloc, thèmes, contacts (TelephonePrincipals/Courriels → description « Renseignements : … ») ; le flux ne publie ni Descriptions* ni tarifs (vérifié 2026-08)",10   "acces_legal": "Licence Creative Commons 4.0 (Données Québec) — API officielle publiée par le Ministère du Tourisme",11   "couverture": "Événements touristiques, toutes les régions du Québec",12   "cadence": "horaire (watcher PM2)",13   "statut": "actif"14  },15  {16   "id": "montreal",17   "name": "Ville de Montréal — Événements publics",18   "url": "https://donnees.montreal.ca/dataset/evenements-publics",19   "type": "donnees-ouvertes",20   "extraction": "API CKAN datastore_search (JSON, paginée) — venue = emplacement (si vrai nom de lieu) ou titre_adresse ; address = adresse_principale + adresse_secondaire ; le jeu de données ne publie pas l'heure → heure locale captée dans le JSON-LD des fiches montreal.ca (« startDate »:\"…T19:30:00-04:00\") lors de l'enrichissement og:image incrémental (cache, plafond MTL_IMG_MAX/sync)",21   "acces_legal": "Licence CC BY 4.0 (donnees.montreal.ca) — attribution : Ville de Montréal",22   "couverture": "Événements municipaux, île de Montréal",23   "cadence": "horaire (watcher PM2)",24   "statut": "actif"25  },26  {27   "id": "lepointdevente",28   "name": "Le point de vente — billetterie québécoise",29   "url": "https://lepointdevente.com/billets",30   "type": "billetterie",31   "extraction": "pages de liste HTML rendues serveur (paginées), parse des cartes (titre, date FR + heure « 17 août 2026, 20h00 » → start_time, salle, ville, image) + fiches détail /billets/<id> incrémentales (cache data/lepointdevente_cache.json, 150 fiches/sync, re-visite 7 j) : description og:description, heure précise, tarifs JSON réels via /plugins/rates/<id> → price_min/price_label/is_free ; artistes extraits des titres par patrons sûrs seulement (« Artiste - Salle », « X en concert »)",32   "acces_legal": "robots.txt : « User-Agent: * / Allow: * » — GET throttlés, identification honnête, lien direct vers chaque billetterie",33   "couverture": "Concerts, humour, théâtre, festivals — partout au Québec (~2 500 événements à venir)",34   "cadence": "horaire (watcher PM2)",35   "statut": "actif"36  },37  {38   "id": "laval",39   "name": "Ville de Laval — Calendrier des activités",40   "url": "https://www.donneesquebec.ca/recherche/dataset/calendrier-des-activites",41   "type": "donnees-ouvertes",42   "extraction": "fichier JSON officiel (Données Québec) — EventDate/EndDate publiés en UTC (vérifié 2026-08) → convertis en date + heure locales Québec (minuit local = « toute la journée », pas d'heure) ; détection du préfixe « ANNULÉ - » du titre → statut cancelled (Phase 2)",43   "acces_legal": "Licence CC 4.0 (Données Québec) — Ville de Laval",44   "couverture": "Activités municipales, Laval",45   "cadence": "horaire (watcher PM2)",46   "statut": "morte-a-la-source",47   "decision": "2026-08-19 (audit Phase 1 + Phase 2) : le jeu ouvert est MORT À LA SOURCE — 293 enregistrements, EventDate max 2025-12-09, plus aucun événement futur publié depuis fin 2025 alors que le connecteur tourne sans erreur (41 runs verts). Le connecteur reste branché (archivage naturel du stock + réveil automatique si la Ville republie), mais la source ne compte plus comme active. REMPLACEMENT prévu en Phase 3 : calendrier vivant laval.ca / Tourisme Laval (voir 04-SOURCES-CANDIDATES de l'audit).",48   "note": " REMPLACÉE 2026-08-19 (Phase 3) par la source « lavalweb » (calendrier vivant laval.ca)."49  },50  {51   "id": "sherbrooke",52   "name": "Ville de Sherbrooke — Calendrier des événements",53   "url": "https://www.sherbrooke.ca/fr/culture-sports-et-loisirs/calendrier-des-activites",54   "type": "municipal",55   "extraction": "la page rend TOUT le calendrier dans window['TRANSFER_CACHE'] (JSON embarqué, CMS Maruche) → 1 seule requête, ~270 événements (nom, périodes en UTC → date + heure locales Québec, gratuité `payant`, catégories, clientèles, images)",56   "acces_legal": "page municipale publique (référencée sur Données Québec) — GET direct, identification honnête",57   "couverture": "Événements municipaux et culturels, Sherbrooke (Estrie)",58   "cadence": "horaire (watcher PM2)",59   "statut": "actif"60  },61  {62   "id": "longueuil",63   "name": "Ville de Longueuil — Événements (nouveau portail)",64   "url": "https://longueuil.quebec/fr/evenements",65   "type": "municipal",66   "extraction": "page liste rendue serveur (portail Nuxt) — cartes <article class=\"event__item\"> : <time datetime> (date + heure locales, début/fin), titre, lien, extrait ; enrichissement par fiche incrémental (cache data/longueuil_cache.json, 30 fiches/sync, re-visite 30 j) : adresse civique, code postal, municipalité depuis l'état Nuxt (address_line1/postal_code/locality) ; GPS via le géocodeur central",67   "acces_legal": "portail municipal public, rendu serveur — GET throttlés 0,8 s, identification honnête",68   "couverture": "Événements municipaux, Longueuil (Montérégie)",69   "cadence": "horaire (watcher PM2, incrémental)",70   "statut": "actif",71   "note": "Remplace le jeu Données Québec « evenements » périmé (dernière date 2017-03, vérifié 2026-08-17) par le portail vivant longueuil.quebec."72  },73  {74   "id": "eventbrite",75   "name": "Eventbrite — billetterie libre-service (Québec)",76   "url": "https://www.eventbrite.ca/d/canada--montreal/all-events/",77   "type": "billetterie",78   "extraction": "pages de découverte publiques /d/<lieu>/all-events/?page=N (7 lieux QC pondérés : Montréal, Québec, Laval, Gatineau, Sherbrooke, Longueuil, Trois-Rivières) — window.__SERVER_DATA__ livre 20 résultats/page : nom, résumé, date + heure locales, salle géocodée (lat/lng, adresse, code postal), image, catégories (tags Eventbrite*), URL ; prix par fiche détail /e/<slug> incrémentale (JSON-LD AggregateOffer lowPrice/highPrice CAD ; cache data/eventbrite_cache.json, 150 fiches/sync, re-visite 7 j) ; en ligne exclus, filtre region=QC strict",79   "acces_legal": "robots.txt « User-agent: * » n'interdit ni /d/ ni /e/ (seuls /directory/, checkout et endpoints privés) — GET throttlés 0,8 s, identification honnête, lien direct vers chaque fiche",80   "couverture": "Événements communautaires, ateliers, festivals, affaires — grandes villes du Québec",81   "cadence": "horaire (watcher PM2, incrémental)",82   "statut": "actif"83  },84  {85   "id": "cantonsdelest",86   "name": "Tourisme Cantons-de-l'Est — calendrier officiel (ATR Estrie)",87   "url": "https://www.cantonsdelest.com/evenements",88   "type": "tourisme-regional",89   "extraction": "page liste rendue serveur (~25 fiches à venir) puis fiches détail incrémentales (cache data/cantonsdelest_cache.json, 40 fiches/sync, re-visite 7 j) : JSON-LD Event complet (nom, dates, description riche, adresse civique, images Tourinsoft mto.media.tourinsoft.eu) + GPS exact (data-lat/data-lng de la carte) ; même plateforme Tourinsoft que le SIT Québec → recoupement géré par dedup_key",90   "acces_legal": "pages publiques de l'ATR, rendu serveur — GET throttlés 0,8 s, identification honnête, lien vers la fiche originale",91   "couverture": "Festivals, spectacles, événements — Cantons-de-l'Est (Estrie)",92   "cadence": "horaire (watcher PM2, incrémental)",93   "statut": "actif"94  },95  {96   "id": "saguenay",97   "name": "Ville de Saguenay — Événements culturels",98   "url": "https://www.donneesquebec.ca/recherche/dataset/sag_evenements-culturels",99   "type": "donnees-ouvertes",100   "extraction": "CSV (Données Québec)",101   "acces_legal": "Licence CC 4.0 (Données Québec)",102   "couverture": "Saguenay",103   "cadence": "n/d",104   "statut": "abandonnee",105   "note": "Jeu de données périmé — dernière date d'événement : 2022-06 (vérifié 2026-08-17). REMPLACÉE 2026-08-19 (Phase 3) par la source « saguenaysorties » (portail sorties.saguenay.ca)."106  },107  {108   "id": "repentigny",109   "name": "Ville de Repentigny — Événements",110   "url": "https://www.donneesquebec.ca/recherche/dataset/evenement-sur-le-territoire-de-la-ville",111   "type": "donnees-ouvertes",112   "extraction": "CSV (Données Québec)",113   "acces_legal": "Licence CC 4.0 (Données Québec)",114   "couverture": "Repentigny (Lanaudière)",115   "cadence": "n/d",116   "statut": "abandonnee",117   "note": "Jeu de données périmé — dernière date d'événement : 2021-09 (vérifié 2026-08-17)"118  },119  {120   "id": "evenko",121   "name": "evenko — grands concerts et festivals",122   "url": "https://evenko.ca/fr/evenements",123   "type": "promoteur",124   "extraction": "API /api/search (proxy Algolia) — format percé : GET ?body=base64({params:[query,options],lang:'fr-CA'}), filters entity_type:evenko_show, ~5 requêtes/sync ; heure locale du spectacle via show_time (epoch → America/Montreal, respect de hide_show_time) ; artistes = champ headliners explicite ; gratuité : champ free (sondé null sur 100 % des hits, 2026-08) + étiquettes « gratuit » (event_tag/promotional_tag) ; aucun montant exposé par l'index",125   "acces_legal": "robots.txt : Allow /api/search* (explicite) — lien billets = URL Ticketmaster officielle",126   "couverture": "Grands concerts (Centre Bell, Place Bell, MTELUS…), festivals (Osheaga, ÎleSoniq…)",127   "cadence": "horaire (watcher PM2)",128   "statut": "actif"129  },130  {131   "id": "atuvu",132   "name": "Atuvu.ca — calendrier culturel",133   "url": "https://atuvu.ca/",134   "type": "agregateur",135   "extraction": "Scrapfly (Cloudflare) — sitemaps lastmod + fiches .event-play (date FR + heure « 20h00 » → start_time), cache incrémental data/atuvu_cache.json, plafond 120 fiches/sync",136   "acces_legal": "robots.txt : Allow / + sitemap public",137   "couverture": "Sorties culturelles, Grand Montréal",138   "cadence": "horaire (watcher PM2, incrémental)",139   "statut": "actif"140  },141  {142   "id": "lavitrine",143   "name": "La Vitrine culturelle",144   "url": "https://www.lavitrine.com/",145   "type": "billetterie",146   "extraction": "GET directs — sitemap.xml (2 000 fiches evenement + 185 exposition) + fiches HTML (bloc event_calendar), cache incrémental, 150 fiches/sync, re-visite 7 j",147   "acces_legal": "robots.txt : Allow / + Content-Signal search=yes, use=reference — usage index + lien vers la fiche originale",148   "couverture": "Spectacles et sorties culturelles, Grand Montréal",149   "cadence": "horaire (watcher PM2, incrémental)",150   "statut": "actif"151  },152  {153   "id": "brossard",154   "name": "Ville de Brossard — Calendrier des événements",155   "url": "https://brossard.ca/calendrier-des-evenements/",156   "type": "municipal",157   "extraction": "API REST WordPress publique /wp-json/wp/v2/city-event (JSON paginé, ~400 fiches) + dates/heures par fiche : bannière « Cet événement aura lieu le … » (fiches ville) ou JSON-LD Event (fiches biblio.brossard.ca) — cache incrémental data/brossard_cache.json, 80 fiches/sync, re-visite 7 j ; repli : date entre parenthèses dans le titre",158   "acces_legal": "API REST WordPress publique (aucune authentification) — GET throttlés 0,8 s, identification honnête",159   "couverture": "Événements municipaux et de bibliothèque, Brossard (Montérégie)",160   "cadence": "horaire (watcher PM2, incrémental)",161   "statut": "actif"162  },163  {164   "id": "ticketmaster",165   "name": "Ticketmaster — Discovery API (Québec)",166   "url": "https://developer.ticketmaster.com/products-and-docs/apis/discovery-api/v2/",167   "type": "billetterie",168   "extraction": "SANS clé (mode par défaut) : scraping léger des pages découverte publiques www.ticketmaster.ca/discover/<ville>?page=N (montreal, quebec-city, gatineau) — l'état Next.js (__NEXT_DATA__, requête serveur cityEvents) livre 20 événements/page : titre, date UTC + fuseau → date/heure locales, salle géolocalisée (lat/lng), adresse, code postal, ville, URL billetterie, catégorie majeure, plan de salle (image) ; plafonds TM_MAX_EVENTS=360 / TM_PAGES_PER_CITY=8 ; Scrapfly ASP sans render_js en secours anti-bot ; aucun prix publié dans ce flux → jamais inventé. REPLI AUTOMATIQUE : si TICKETMASTER_API_KEY apparaît dans .env, bascule sur la Discovery API v2 officielle (priceRanges, attractions → artistes, images 16:9) — identifiants identiques, zéro doublon.",169   "acces_legal": "pages découverte publiques rendues serveur — robots.txt n'interdit pas /discover/ (seuls /api/ismds/*) ; GET throttlés 1 s, lien direct vers la billetterie officielle ; API officielle (clé gratuite) utilisée dès qu'une clé est fournie",170   "couverture": "Grands spectacles, sports et concerts — Montréal/Laval/Brossard, Québec, Gatineau",171   "cadence": "horaire (watcher PM2)",172   "statut": "actif",173   "note": "Fonctionne sans clé (scraping découverte). TICKETMASTER_API_KEY optionnelle : active le mode API riche (prix, artistes, images)."174  },175  {176   "id": "bandsintown",177   "name": "Bandsintown — dates de concerts par artiste",178   "url": "https://rest.bandsintown.com/",179   "type": "agregateur",180   "extraction": "API publique /artists/{artiste}/events (app_id format widget « js_www.sorti-ka.com », testé accepté 2026-08 ; un app_id arbitraire simple est refusé) — pas de recherche géographique : on interroge les artistes déjà extraits de la base (evenko/lepointdevente/ticketmaster, événements à venir), plafond 100 artistes/sync avec rotation et cache data/bandsintown_cache.json (re-visite 3 j) ; on ne garde que les dates au Québec (venue.region=QC) : datetime local (date+heure), salle géolocalisée, lineup → artistes, free → gratuité, lien billets",181   "acces_legal": "API publique Bandsintown (app_id d'identification) — usage index + lien vers la fiche originale",182   "couverture": "Concerts au Québec des artistes en tournée connus de la base",183   "cadence": "horaire (watcher PM2, rotation d'artistes)",184   "statut": "actif"185  },186  {187   "id": "gatineau",188   "name": "Ville de Gatineau — Événements",189   "url": "https://www.gatineau.ca/",190   "type": "municipal",191   "extraction": "n/d",192   "acces_legal": "n/d",193   "couverture": "Gatineau (Outaouais)",194   "cadence": "n/d",195   "statut": "abandonnee",196   "note": "Aucun jeu de données « événements » sur Données Québec (portail Gatineau : géomatique seulement) et site 100 % JavaScript sans API découverte (vérifié 2026-08-18)"197  },198  {199   "id": "trois-rivieres",200   "name": "Ville de Trois-Rivières — Événements",201   "url": "https://www.v3r.net/",202   "type": "municipal",203   "extraction": "n/d",204   "acces_legal": "n/d",205   "couverture": "Trois-Rivières (Mauricie)",206   "cadence": "n/d",207   "statut": "abandonnee",208   "note": "API REST WordPress verrouillée (401 rest_not_logged_in) et aucun jeu « événements » sur Données Québec (vérifié 2026-08-18)"209  },210  {211   "id": "levis",212   "name": "Ville de Lévis — Calendrier",213   "url": "https://www.ville.levis.qc.ca/",214   "type": "municipal",215   "extraction": "n/d",216   "acces_legal": "n/d",217   "couverture": "Lévis (Chaudière-Appalaches)",218   "cadence": "n/d",219   "statut": "abandonnee",220   "note": "Site derrière un WAF (403 sur GET identifiés) et aucun jeu « événements » sur Données Québec (vérifié 2026-08-18)"221  },222  {223   "id": "terrebonne",224   "name": "Ville de Terrebonne — Calendrier",225   "url": "https://terrebonne.ca/calendrier/",226   "type": "municipal",227   "extraction": "n/d",228   "acces_legal": "n/d",229   "couverture": "Terrebonne (Lanaudière)",230   "cadence": "n/d",231   "statut": "abandonnee",232   "note": "Cloudflare bloque tout GET non navigateur (403) et aucun jeu « événements » sur Données Québec (vérifié 2026-08-18)"233  },234  {235   "id": "lavalweb",236   "name": "Ville de Laval — calendrier vivant laval.ca",237   "url": "https://www.laval.ca/calendrier-activites/",238   "type": "municipal",239   "evaluation": "ÉVALUATION 2026-08-19 (avant connexion) : accès constaté = WordPress rendu serveur, pagination ?findstr[group]=events&findstr[page]=N (58 pages × ~8 cartes ≈ 460 activités à venir mesurées) ; l'API REST /wp-json/wp/v2/events (764 fiches) ne publie PAS la date de l'événement → listes SSR retenues ; volume mesuré ~460 ; couverture = activités municipales/culturelles/sportives Laval ; robots.txt lu : Disallow /wp-admin/ seulement ; effort ●●.",240   "extraction": "listes SSR paginées (cartes .event-item : date FR « 18 août 2026 | 18 h » → date + heure, titre, lieu, lien, image lazy) + fiches détail incrémentales (cache data/lavalweb_cache.json, LAVALWEB_FICHE_MAX/sync, re-visite 7 j) : og:description ; GPS via annuaire de salles + géocodeur",241   "acces_legal": "robots.txt laval.ca : Disallow /wp-admin/ seulement — pages calendrier publiques, GET throttlés 0,5 s, identification honnête",242   "couverture": "Activités municipales, Laval (remplace le jeu Données Québec mort à la source depuis 2025-12)",243   "cadence": "horaire (watcher PM2, incrémental)",244   "statut": "actif"245  },246  {247   "id": "outaouais",248   "name": "Tourisme Outaouais — calendrier des événements (ATR)",249   "url": "https://tourismeoutaouais.com/calendrier-des-evenements",250   "type": "tourisme-regional",251   "evaluation": "ÉVALUATION 2026-08-19 (avant connexion) : accès constaté = site Astro, la page calendrier embarque TOUT le calendrier dans les props sérialisées de l'îlot CalendrierDesEvenements (162 événements dont 25 futurs mesurés) — 1 GET/sync ; l'API GraphQL admin.tourismeoutaouais.com exige un jeton (403) ; robots.txt lu : Allow / ; effort ●.",252   "extraction": "props JSON de l'îlot Astro (déballage [type, valeur]) : id, titre, url (interne ou site officiel), municipalité, territoire, photo CDN, startDate/endDate ISO ; ni heure ni tarif publiés → jamais inventés",253   "acces_legal": "robots.txt : User-agent: * / Allow: / — GET direct throttlé 0,8 s, identification honnête, lien vers la fiche/site officiel",254   "couverture": "Festivals et événements, Outaouais (337 fiches seulement au baseline régional)",255   "cadence": "horaire (watcher PM2)",256   "statut": "actif"257  },258  {259   "id": "lanaudiere",260   "name": "Tourisme Lanaudière — événements (ATR)",261   "url": "https://lanaudiere.ca/fr/evenements-lanaudiere",262   "type": "tourisme-regional",263   "evaluation": "ÉVALUATION 2026-08-19 (avant connexion) : accès constaté = CMS Umbraco, liste SSR limitée à ~10 cartes (44 résultats annoncés, reste en JS) → passage par le SITEMAP officiel (83 URLs de fiches fr mesurées) ; fiches structurées (member-title-1-1 : titre, plage de dates FR, municipalité) + og:image Tourinsoft + og:description ; robots.txt lu : Disallow /*? (aucune URL à paramètres requêtée) + Crawl-delay 2 s (respecté : GET séquentiels 2,1 s) ; effort ●●.",264   "extraction": "sitemap.xml (1 GET) → fiches /fr/evenements-lanaudiere/<slug>/ incrémentales (cache data/lanaudiere_cache.json, LAN_FICHE_MAX/sync, re-visite 7 j) : titre, plage de dates FR, municipalité, og:image/og:description ; médias Tourinsoft → recoupement SITQ géré par dedup_key",265   "acces_legal": "robots.txt : Disallow /*? + Crawl-delay: 2 — respectés à la lettre (aucun paramètre d'URL, 2,1 s entre GET), identification honnête",266   "couverture": "Festivals et événements, Lanaudière",267   "cadence": "horaire (watcher PM2, incrémental)",268   "statut": "actif"269  },270  {271   "id": "saguenaysorties",272   "name": "Sorties Saguenay — portail événementiel de la Ville",273   "url": "https://sorties.saguenay.ca/",274   "type": "municipal",275   "evaluation": "ÉVALUATION 2026-08-19 (avant connexion) : accès constaté = portail SSR de la Ville de Saguenay motorisé par les données La Vitrine (médias lvc-medias.lavitrine.com) ; pagination POST /ajax/plus (36 séances/lot, ~300-400 séances mesurées entre offset 0 et 500) ; détails POST /ajax/details (description + adresse) ; chaque carte = une séance horodatée (date + heure + ville + salle) ; robots.txt : non publié (page de maintenance) → volumes modestes et throttle 0,8 s ; effort ●●. Remplace le CSV Données Québec mort (2022-06).",276   "extraction": "POST /ajax/plus paginé (SAG_BATCH_MAX lots) : discipline, date FR, heure, titre, « Ville, Salle », image, detail-id → une fiche PAR séance ; détails incrémentaux POST /ajax/details (cache data/saguenaysorties_cache.json, SAG_DETAIL_MAX/sync, re-visite 7 j) : description, adresse civique",277   "acces_legal": "portail public municipal — POST throttlés 0,8 s, identification honnête, lien fiche officielle /festivals?id=<id> ; recoupement lavitrine/lepointdevente géré par dedup_key",278   "couverture": "Spectacles, expositions, festivals — Saguenay et environs (Saguenay–Lac-Saint-Jean)",279   "cadence": "horaire (watcher PM2, incrémental)",280   "statut": "actif"281  },282  {283   "id": "bassaintlaurent",284   "name": "Tourisme Bas-Saint-Laurent — événements (ATR)",285   "url": "https://www.bassaintlaurent.ca/fr/quoi-faire/evenements/",286   "type": "tourisme-regional",287   "evaluation": "ÉVALUATION 2026-08-19 (avant connexion) : accès constaté = WordPress (Bedrock) rendu serveur, 27 cartes complètes sur la liste (titre, plage de dates FR, municipalité, image) ; fiches avec GPS exact embarqué + og:description ; robots.txt lu : rien d'interdit sur /fr/ ; volume mesuré 27 ; couverture = BSL (168 fiches seulement au baseline) ; effort ●.",288   "extraction": "liste SSR (1 GET, cartes .card--type-event) + fiches incrémentales (cache data/bassaintlaurent_cache.json, BSL_FICHE_MAX/sync, re-visite 7 j) : og:description + GPS exact de la carte embarquée",289   "acces_legal": "pages publiques de l'ATR — GET throttlés 0,8 s, identification honnête, lien fiche originale",290   "couverture": "Festivals et événements, Bas-Saint-Laurent",291   "cadence": "horaire (watcher PM2, incrémental)",292   "statut": "actif"293  },294  {295   "id": "quebecanimee",296   "name": "Québec animée — Ville de Québec",297   "url": "https://animee.ville.quebec.qc.ca/activites/",298   "type": "municipal",299   "evaluation": "ÉVALUATION 2026-08-19 (avant connexion) : accès constaté = portail municipal SSR ; la liste /activites/ porte TOUT en attributs data- (date-debut/date-fin ISO, arrondissement, catégories, prix « Gratuit ») : 126 séances / 73 activités mesurées, 1 GET ; fiches pour description/lieu ; le calendrier général ville.quebec.qc.ca n'expose pas de flux structuré (vérifié) ; effort ●. Comble l'absence de source municipale/gratuite de la 2ᵉ ville (inventaire Capitale-Nationale ~100 % billetteries).",300   "extraction": "liste /activites/ (1 GET, attributs data-* : dates ISO, arrondissement, catégorie, prix) + fiches incrémentales (cache data/quebecanimee_cache.json, QA_FICHE_MAX/sync, re-visite 7 j) : og:description, lieu ; une carte par occurrence datée → une fiche par séance",301   "acces_legal": "site municipal public rendu serveur — GET throttlés 0,8 s, identification honnête, lien fiche officielle",302   "couverture": "Activités gratuites/à faible coût, Ville de Québec (Capitale-Nationale)",303   "cadence": "horaire (watcher PM2, incrémental)",304   "statut": "actif"305  },306  {307   "id": "placedesarts",308   "name": "Place des Arts — calendrier multi-salles",309   "url": "https://www.placedesarts.com/programmation",310   "type": "salle-de-spectacle",311   "evaluation": "ÉVALUATION 2026-08-19 (avant connexion) : accès constaté = Craft CMS rendu serveur ; /programmation liste 97 spectacles (6 salles) ; chaque fiche embarque #eventbannerdata + #eventGTM (JSON : titre, salle, producteur, discipline, plage de dates) + barre latérale des représentations avec heure ET PRIX RÉELS (« 33 $ à 97,50 $ ») — 23 séances mesurées sur la fiche sonde ; robots.txt lu : Disallow /cpresources/ /vendor/ /cache/ seulement ; effort ●●. Meilleure candidate unitaire de la famille « salles » (audit §C).",312   "extraction": "liste /programmation (1 GET) → fiches /evenement/<slug> incrémentales (cache data/placedesarts_cache.json, PDA_FICHE_MAX/sync, re-visite 7 j) : une fiche Sorti-Ka PAR représentation (date + heure + prix réels), salle précise, producteur → organisateur, discipline → catégories",313   "acces_legal": "robots.txt : Disallow /cpresources/ /vendor/ /cache/ seulement — GET throttlés 0,8 s, identification honnête, lien billetterie officielle ; recoupement lavitrine/evenko géré par dedup_key",314   "couverture": "Spectacles des 6 salles de la Place des Arts, Montréal (~97 spectacles, plusieurs centaines de séances)",315   "cadence": "horaire (watcher PM2, incrémental)",316   "statut": "actif"317  },318  {319   "id": "lhjmq",320   "name": "LHJMQ — matchs des équipes québécoises",321   "url": "https://theqmjhl.ca/",322   "type": "sport",323   "evaluation": "ÉVALUATION 2026-08-19 (avant connexion) : accès constaté = API HockeyTech « modulekit » (lscluster.hockeytech.com, JSON, clé publique de la ligue embarquée dans ses propres sites) — saison 2026-27 : 580 matchs mesurés dont ~384 à domicile dans 12 villes QC (Chicoutimi, Baie-Comeau, Rimouski, Rouyn-Noranda, Val-d'Or, Gatineau, Shawinigan, Drummondville, Victoriaville, Boisbriand, Sherbrooke, Québec) ; date + heure + aréna structurés ; 2 GET/sync ; effort ●. Fort levier d'équilibre régional (Côte-Nord, Abitibi, BSL…).",324   "extraction": "API modulekit (view=seasons puis view=schedule) : matchs à domicile au Québec seulement → titre « LHJMQ : Visiteur c. Receveur », date + heure locales, aréna, ville, statut annulé si publié ; prix non publié → jamais inventé",325   "acces_legal": "flux JSON public qui motorise le site officiel de la ligue — usage index + lien fiche de match officielle (theqmjhl.ca/gamecentre/<id>), GET throttlés 1 s, identification honnête",326   "couverture": "~384 matchs/saison à domicile au Québec, 12 villes dans 10 régions",327   "cadence": "horaire (watcher PM2)",328   "statut": "actif"329  },330  {331   "id": "sallesjsonld",332   "name": "Salles de spectacle — moteur générique JSON-LD Event",333   "url": "https://grandtheatre.qc.ca/programmation",334   "type": "salle-de-spectacle",335   "evaluation": "ÉVALUATION 2026-08-19 (avant connexion) : moteur configurable (data/salles_jsonld.json, patron stores.json de fabri-ka) pour la longue traîne des salles qui publient schema.org/Event sur leurs fiches. Sondage 2026-08-19 : AVEC Event JSON-LD = Grand Théâtre de Québec (108 fiches listées), Théâtre du Trident, Théâtre Capitole (via gestev.com) ; SANS (écartées de la config, re-sonder plus tard) = Palais Montcalm, Le Diamant, Impérial Bell, MTelus/Corona/Club Soda (evenko, déjà couverts), Petit Champlain / Albert-Rousseau (plateforme JS « pages/collections ») ; robots.txt lu salle par salle avant ajout ; effort ●● (moteur) puis ● par salle.",336   "extraction": "par salle configurée : page(s) de programmation → liens de fiche (motif regex) → fiches incrémentales (cache data/sallesjsonld_cache.json, SALLES_FICHE_MAX/sync partagé, re-visite 7 j) → blocs JSON-LD @type Event (nom, dates horodatées, salle, adresse, offres → prix, statut, image) ; heure « T00:00:00 » traitée comme placeholder",337   "acces_legal": "robots.txt vérifié PAR SALLE avant ajout à la config (consigné dans data/salles_jsonld.json) — GET throttlés 0,8 s, identification honnête, lien fiche originale",338   "couverture": "Longue traîne des salles de spectacle QC (amorce : Grand Théâtre de Québec, Trident, Capitole — Capitale-Nationale)",339   "cadence": "horaire (watcher PM2, incrémental)",340   "statut": "actif"341  },342  {343   "id": "mauricie",344   "name": "Tourisme Mauricie — événements (ATR)",345   "url": "https://tourismemauricie.com/evenements",346   "type": "tourisme-regional",347   "extraction": "n/d",348   "acces_legal": "n/d",349   "couverture": "Mauricie",350   "cadence": "n/d",351   "statut": "abandonnee",352   "note": "ÉCARTÉE 2026-08-19 (Phase 3) : liste /evenements rendue JS — 1 seule carte SSR par page (vérifié pages 1 et 2), cartes chargées par admin-ajax non documenté, API REST /wp-json verrouillée (401 rest_not_logged_in). À re-sonder (percer la facette admin-ajax) dans une vague ultérieure."353  },354  {355   "id": "laurentides",356   "name": "Tourisme Laurentides — événements (ATR)",357   "url": "https://www.laurentides.com/fr/quoifaire/evenements",358   "type": "tourisme-regional",359   "extraction": "n/d",360   "acces_legal": "n/d",361   "couverture": "Laurentides",362   "cadence": "n/d",363   "statut": "abandonnee",364   "note": "ÉCARTÉE 2026-08-19 (Phase 3) : WAF — 403 sur GET identifié (UA honnête). Scrapfly possible mais non justifié (la région est déjà la 4ᵉ mieux couverte : 620 fiches au baseline). À re-sonder."365  },366  {367   "id": "gaspesie",368   "name": "Tourisme Gaspésie — événements (ATR)",369   "url": "https://www.tourisme-gaspesie.com/fr/festival-et-evenements/",370   "type": "tourisme-regional",371   "extraction": "Scrapfly (asp, country=ca, sans render_js — HTML rendu serveur) : liste (1 crédit) + fiches incrémentales (cache, GASP_FICHE_MAX=8/sync, re-visite 14 j) — titre h1, plage de dates FR, adresse/ville/CP (bloc coordonnées), og:description/og:image. Fiches sans date écartées (festivals annuels non datés).",372   "acces_legal": "Contenu public de l'ATR ; WAF contourné avec modération (budget ≤ 9 crédits Scrapfly/sync, consigné Phase 4), attribution + lien vers la fiche officielle",373   "couverture": "Gaspésie–Îles-de-la-Madeleine",374   "cadence": "horaire (watcher PM2) — cache 14 j, ~2 fiches re-visitées/j",375   "statut": "actif",376   "note": "RÉACTIVÉE 2026-08-21 (Phase 4) : la vague Scrapfly consignée annoncée en Phase 3. Ancienne URL /evenements-gaspesie.html morte (404) → /fr/festival-et-evenements/ (28 fiches, ~6 datées à l'amorce)."377  },378  {379   "id": "tuxedobillet",380   "name": "Tuxedo Billet — billetterie québécoise multi-tenants",381   "url": "https://www.tuxedobillet.com/",382   "type": "billetterie",383   "extraction": "Acteur Apify maison gorgeous_thistle/ka-tuxedo (Playwright, proxy résidentiel CA, code versionné dans apify/ka-tuxedo/) : les tenants <org>.tuxedobillet.com sont des SPA Angular sur Firebase (RTDB verrouillée, 401 même avec jeton anonyme) → rendu navigateur obligatoire. 1 run/TUX_TTL_HOURS (20 h), 29 tenants QC configurés dans data/tuxedo_tenants.json (ville vérifiée). Liste sans heure ni prix → jamais inventés.",384   "acces_legal": "Billetteries publiques ; rendu navigateur modéré (1 page/tenant/run, ~1 run par jour), lien d'achat vers la fiche officielle du tenant",385   "couverture": "29 salles/diffuseurs QC : Théâtre Outremont, Le Gesù, Centre Pierre-Péladeau, FTA, FIMAV, Espace Théâtre (Mont-Laurier), L'Anglicane (Lévis), Chandler, Lac-Mégantic, Îles-de-la-Madeleine…",386   "cadence": "quotidienne (TTL 20 h dans le watcher horaire)",387   "statut": "actif",388   "note": "RÉACTIVÉE 2026-08-21 (Phase 4) : l'apex reste vide mais les tenants vivent. Première source consommée via un acteur Apify (billetterie dure à crawler). Énumération des tenants non exhaustive — compléter via Serper/config."389  },390  {391   "id": "clubs-pros",392   "name": "Clubs professionnels (CF Montréal, Alouettes, Rocket, Victoire…)",393   "url": "https://www.cfmontreal.com/",394   "type": "sport",395   "extraction": "n/d",396   "acces_legal": "n/d",397   "couverture": "Montréal/Laval (MLS, LCF, AHL, LPHF)",398   "cadence": "n/d",399   "statut": "abandonnee",400   "note": "ÉCARTÉE 2026-08-19 (Phase 3) : les matchs à domicile passent déjà par les billetteries connectées (evenko/ticketmaster : Canadiens 74 fiches, Remparts 31…) — des connecteurs de ligue dédiés (MLS/LCF/AHL) apporteraient surtout des doublons pour ~150 fiches nettes/an. La LHJMQ, elle, est connectée (vrai levier régional). À revisiter si un besoin statut/heure officiel apparaît."401  },402  {403   "id": "monteregie",404   "name": "Tourisme Montérégie — événements (ATR)",405   "url": "https://www.tourisme-monteregie.qc.ca/membre/categorie/quoi-faire/festivals-et-evenements/",406   "type": "tourisme-regional",407   "extraction": "API REST WordPress publique /wp-json/wp/v2/cpt_event (paginée per_page=100) — titre, description, plage de dates FR, lat/long, site web, image (gisement Tourinsoft, acf.syndic_object_id EVENMTOV… ; recoupement SITQ géré par dedup_key). Fiches détail incrémentales (MTG_FICHE_MAX=15/sync, re-visite 7 j) : JSON-LD Event → adresse civique, ville, code postal.",408   "acces_legal": "API REST WordPress publique (aucune auth), robots.txt sans interdiction sur /wp-json/ — GET throttlés 0,8 s, UA honnête",409   "couverture": "Montérégie (~78 fiches à venir, vérifié 2026-08-21)",410   "cadence": "horaire (watcher PM2)",411   "statut": "actif"412  },413  {414   "id": "centreduquebec",415   "name": "Tourisme Centre-du-Québec — événements (ATR)",416   "url": "https://tourismecentreduquebec.com/evenements/",417   "type": "tourisme-regional",418   "extraction": "Liste rendue serveur (1 GET) : blocs events_listing (plage de dates FR + titre + lien) ; fiches incrémentales (CDQ_FICHE_MAX=10/sync, re-visite 7 j) : bloc « Adresse », og:description, og:image. Ni ville structurée, ni heure, ni tarif → jamais inventés (région dérivée de l'ATR).",419   "acces_legal": "Site public de l'ATR, robots.txt sans interdiction — GET throttlés 0,8 s, UA honnête",420   "couverture": "Centre-du-Québec (première source de la région — 0 fiche avant connexion ; ~10 fiches)",421   "cadence": "horaire (watcher PM2)",422   "statut": "actif"423  },424  {425   "id": "chaudiereappalaches",426   "name": "Tourisme Chaudière-Appalaches — festivals et événements (ATR)",427   "url": "https://chaudiereappalaches.com/planifier-votre-sejour/ete-automne/festivals-et-evenements/",428   "type": "tourisme-regional",429   "extraction": "Liste rendue serveur paginée (?listpage=1..3, ~12 fiches/page) → fiches incrémentales (CHA_FICHE_MAX=12/sync, re-visite 7 j) : JSON-LD Event COMPLET (dates ISO, description, adresse, ville, CP, GPS, images) via le parseur générique ld_events (sallesjsonld).",430   "acces_legal": "Site public de l'ATR, robots.txt sans interdiction sur /planifier-votre-sejour/ — GET throttlés 0,8 s, UA honnête",431   "couverture": "Chaudière-Appalaches (~36 fiches à venir, vérifié 2026-08-21)",432   "cadence": "horaire (watcher PM2)",433   "statut": "actif"434  },435  {436   "id": "ticketacces",437   "name": "TicketAcces.net — billetterie régionale québécoise",438   "url": "https://www.ticketacces.net/fr/portail/index.cfm",439   "type": "billetterie",440   "extraction": "HTML ColdFusion (cp1252) : annuaire complet des organisations dans le portail (cartes data-nom/ville/région, filtre Québec — 12 orgs NB + 1 ON exclues) + calendrier AGRÉGÉ multi-organisations en 4 GET (catégories Spectacles/Cinéma/Sport/Autre) : 1 Event par représentation datée (titre, date+heure FR, salle, ville, image). Fiches incrémentales (TA_DETAIL_MAX=25/sync) : og:description, adresse, prix plancher.",441   "acces_legal": "Billetterie publique, robots.txt sans interdiction sur le portail (vérifié 2026-08-21) ; GET throttlés 1 s, UA honnête, cookie de détection ColdFusion géré par session, lien d'achat vers la fiche officielle",442   "couverture": "47 organisations QC — dont 14 en Abitibi-Témiscamingue (Agora des Arts, Théâtre du cuivre, culture Val-d'Or/Amos/La Sarre/Malartic, Théâtre du Rift…), Bas-Saint-Laurent (Océanic, 3L), Côte-Nord (Drakkar), Charlevoix (Domaine Forget), Nord-du-Québec (Lebel-sur-Quévillon)… ~1 300 séances (vérifié 2026-08-21)",443   "cadence": "horaire (watcher PM2)",444   "statut": "actif"445  },446  {447   "id": "ovation",448   "name": "Réseau Ovation — billetterie québécoise multi-salles",449   "url": "https://reseau.ovation.ca/",450   "type": "billetterie",451   "extraction": "Sous-site mobile m.ovation.ca (HTML rendu serveur, AUCUN anti-bot) : par organisation (codes base36 validés par balayage, config data/ovation_orgs.json), /fr/Search/AllEvents paginé (?pageNumber=N) → 1 eventId = 1 représentation ; fiches fragment EventDescription (≈5 Ko, OVA_FICHE_MAX=40/sync) : date pleine FR + heure, catégories, ARTISTES (liens EventsByPerformer), description, salle + adresse + ville + code postal. Prix non exposé → jamais inventé.",452   "acces_legal": "Billetterie publique sans auth ; GET throttlés 0,7 s, UA honnête, lien d'achat vers la fiche officielle",453   "couverture": "26 organisations 100 % QC : Salle Albert-Rousseau, Petit Champlain, Diffusion Saguenay, Gatineau (Odyssée, Jean-Despréz), Vieux Terrebonne, Palace de Granby, Vieux Clocher Magog/Waterloo, La Tuque, Festival Western de St-Tite, clubs LHJMQ/LNAH…",454   "cadence": "horaire (watcher PM2)",455   "statut": "actif"456  }457 ]458}
Files · 59739068178750c74de08a317efbdaf75d09da4f
Menu

Theme