Etat des sources

Connecteurs, ingestion et sante du pipeline.

2827

evenements

7

actives

1154

ingestions reussies

Planet Mars verifie une fois par synchronisation les posts les plus recents de ce compte exact. Apres la premiere execution, seuls les nouveaux posts ou les posts modifies sont telecharges puis analyses par l OCR local des carrousels et le modele choisi ; les posts deja analyses, meme sans evenement, ne consomment plus de jetons. Seuls les futurs evenements marseillais valides passent ensuite par la deduplication et la visibilite normales.

Les comptes organisateur et mixte doivent fournir une preuve de localisation a Marseille dans chaque post ; Planet Mars ne deduit pas le lieu depuis le compte.

Marseille Tourisme

website / healthy

Configuration
Type de source:
website
Strategie:
marseille_tourisme_playlist
Encodage:
Defaut (UTF-8)
Active:
Oui
Details de la strategie

Marseille Tourisme playlist

Dedicated adapter for the Marseille Tourism Office agenda. It reads the public Hawwwai playlist embedded in the agenda page, then supplements it with French FMA detail pages discovered from the public sitemap.

Fichier source de la strategie: apps/backend/app/connectors/websites.py
Implementation: MarseilleTourismeConnector

URLs d execution / flux:

Event detail pages:
Individual public event URLs returned by the playlist feed or discovered from sitemap FMA pages.

Fonctionnement:

  • Starts from the configured source URL, usually the public agenda page.
  • Finds the hawwwai-playlist element and uses its public playlist configuration.
  • Requests paginated FMA agenda items from the playlist JSON endpoint with page query parameters.
  • Scans the public sitemap for French agenda FMA detail pages that are not present in the playlist feed.
  • Fetches event detail pages with bounded concurrency.
  • Extracts the detail-page HwSheet description, price text, accepted public/clientele, hours, official images, ticket URL, venue/address, GPS coordinates and date instances.
  • Stores multiple date ranges as event instances when the official feed exposes them.

Configuration supportee:

max_items:
Maximum playlist items to inspect per sync. Default: 1500.
max_pages:
Maximum playlist pages to request. Default: 200.
include_sitemap_details:
Whether to import valid sitemap-only Marseille Tourisme FMA detail pages. Default: true.
max_sitemap_items:
Maximum sitemap detail pages to inspect per sync. Default: 1500, above the current complete catalog.
sitemap_url:
Optional sitemap index override. Default: https://www.marseille-tourisme.com/sitemap.xml/.
detail_concurrency:
Concurrent detail-page fetches, clamped from 1 to 20. Default: 8.
encoding:
Optional response decoding hint. Default: UTF-8.
Configuration JSON:
{ "max_items": 1500, "max_pages": 200, "max_sitemap_items": 1500, "detail_concurrency": 8 }

Priorite source

Derniere sync

7 sept. 2026, 05:11

Evenements

968

Actifs

+0

Nouv.

1524

Total

Intervalle (min)

JDS Marseille

website / healthy

Configuration
Type de source:
website
Strategie:
jds_agenda
Encodage:
Defaut (UTF-8)
Active:
Oui
Details de la strategie

JDS Marseille agenda

Dedicated JDS adapter that paginates the Marseille agenda and enriches each listing from its Schema.org event detail page, accepting only physical Marseille locations.

Fichier source de la strategie: apps/backend/app/connectors/jds.py
Implementation: JDSAgendaConnector

URLs d execution / flux:

Event detail pages:
Individual JDS URLs ending in a stable numeric _A identifier.

Fonctionnement:

  • Traverses 25-row agenda pages through their rel=next links.
  • Fetches detail pages with bounded concurrency and parses Schema.org Event JSON-LD.
  • Accepts only addressLocality Marseille, Marseille postcodes 13000/13001-13016, or an explicit Schema.org City named Marseille.
  • Rejects nearby cities even though JDS includes them in its Marseille regional agenda.
  • Imports full descriptions, dates and repeated date/hour rows, venue/address, GPS, ticket link, free status and largest available images.
  • Exposes the deepest JDS agenda breadcrumb as jds_category for Admin Categories mapping.

Configuration supportee:

max_items:
Maximum event detail pages to inspect per sync. Default: 250.
max_pages:
Maximum 25-row agenda pages to request. Default: 20.
detail_concurrency:
Concurrent event detail requests, clamped from 1 to 20. Default: 8.
locality:
Documented admission scope; this connector is intentionally fixed to Marseille.
Configuration JSON:
{ "max_items": 1200, "max_pages": 120, "detail_concurrency": 8, "locality": "Marseille" }

Priorite source

Derniere sync

7 sept. 2026, 08:02

Evenements

1167

Actifs

+4

Nouv.

1366

Total

Intervalle (min)

OpenAgenda

api / healthy

Configuration
Type de source:
api
Strategie:
openagenda_v2
Encodage:
Defaut (UTF-8)
Active:
Oui
Details de la strategie

OpenAgenda API v2

Dedicated OpenAgenda v2 adapter with cursor pagination and per-event detail enrichment for multilingual text, timings, images, registration and location data.

Fichier source de la strategie: apps/backend/app/connectors/openagenda.py
Implementation: OpenAgendaConnector

URLs d execution / flux:

Configured event feed:
The OpenAgenda v2 agenda events URL stored on the source row.
Event details:
OpenAgenda v2 /agendas/{agenda_uid}/events/{event_uid} endpoints.

Fonctionnement:

  • Authenticates with OPENAGENDA_ACCESS_KEY from the ignored .env file.
  • Preserves repeated relative filters from the configured source URL.
  • Traverses OpenAgenda cursor pages through repeated after[] parameters.
  • Fetches event detail records with bounded concurrency.
  • Uses French localized titles and full descriptions, with English/first-value fallback.
  • Imports every official timing as an event instance and keeps the final timing as the event end.
  • Selects the largest OpenAgenda CDN image variant first.
  • Extracts registration links, conditions/prices, attendance mode and coordinates.
  • Exposes source keywords when present, otherwise an explicit category inferred by Planet Mars for admin mapping.

Configuration supportee:

agenda_uid:
OpenAgenda numeric agenda identifier. Inferred from the URL when omitted.
public_agenda_slug:
Slug used to build canonical public event URLs.
locale:
Preferred localized content language. Default: fr.
max_items:
Maximum events enriched per sync. Default: 250.
page_size:
Events requested per cursor page, clamped to 1-100. Default: 100.
max_pages:
Maximum cursor pages requested. Default: 10.
detail_concurrency:
Concurrent detail requests, clamped to 1-20. Default: 10.
Configuration JSON:
{ "agenda_uid": 5137922, "public_agenda_slug": "evenements-massilia", "locale": "fr", "max_items": 1000, "page_size": 100, "max_pages": 10, "detail_concurrency": 10 }

Priorite source

Derniere sync

7 sept. 2026, 07:26

Evenements

357

Actifs

+0

Nouv.

365

Total

Intervalle (min)

culturel_marseille

instagram / healthy

Les comptes organisateur et mixte doivent fournir une preuve de localisation a Marseille dans chaque post ; Planet Mars ne deduit pas le lieu depuis le compte.

Configuration
Type de source:
instagram
Strategie:
instagrapi
Encodage:
Defaut (UTF-8)
Active:
Non
Details de la strategie

Instagram instagrapi

Authenticated Instagram private-API strategy selected through config/instagram_connectors.json.

Fichier source de la strategie: apps/backend/app/connectors/instagram.py
Implementation: InstagramConnector

URLs d execution / flux:

Instagram profile:
The configured instagram.com account URL.
Instagram private API:
instagrapi-managed endpoints; exact URLs are not stored in Planet Mars config.

Fonctionnement:

  • Loads non-secret strategy selection from config/instagram_connectors.json.
  • Uses credentials or a persisted session from ignored .env/storage values.
  • Fetches recent public account posts and complete carousel image sets.
  • Reads the current profile grid once per sync, then sends only new or changed posts to image download, OCR and OpenAI extraction.
  • Records successfully analyzed posts even when they contain no event, preventing repeated token spend on non-event posts.
  • Runs enabled local PaddleOCR per slide, then sends caption, OCR and images to the source-selected OpenAI model.
  • Imports only validation-ready future Marseille events through the normal deduplication and visibility pipeline.
  • Caches extraction by account, post content, prompt version and model so unchanged posts do not spend OpenAI tokens again.

Configuration supportee:

default_strategy:
Global Instagram strategy in config/instagram_connectors.json.
sources.<account>.strategy:
Per-account strategy override.
openai_model:
Multimodal extraction model selected per Instagram source.
instagram_options.post_limit:
Latest profile posts checked for new or changed content per synchronization, from 1 to 50. Default for new sources: 20.
instagram_account_type:
Venue, organizer, or mixed account behavior.
instagram_default_venue:
Verified fixed venue used only by venue accounts.
instagram_default_address:
Verified Marseille address used only by venue accounts.
Configuration JSON:
{ "openai_model": "gpt-5.6-luna" }

Priorite source

Derniere sync

29 mai 2026, 10:54

Evenements

1

Actifs

+0

Nouv.

1

Total

Intervalle (min)

Marseille Evous

website / healthy

Configuration
Type de source:
website
Strategie:
http
Encodage:
Defaut (UTF-8)
Active:
Non
Details de la strategie

Generic website scraper

Generic public-page scraper for simple website sources.

Fichier source de la strategie: apps/backend/app/connectors/websites.py
Implementation: WebsiteConnector

URLs d execution / flux:

Configured public page:
The source URL configured on the source row.

Fonctionnement:

  • Downloads the configured public URL.
  • Selects article/event-like HTML nodes.
  • Builds raw event candidates from visible text and the first link.
  • Relies on the shared extraction pipeline for dates and event fields.

Configuration supportee:

selectors:
Optional CSS selectors to find event candidate nodes.
max_items:
Maximum candidate nodes to inspect. Default: 25.
encoding:
Optional response decoding hint. Default: UTF-8.
Configuration JSON:
Aucune configuration supplementaire

Priorite source

Derniere sync

29 mai 2026, 10:54

Evenements

1

Actifs

+0

Nouv.

1

Total

Intervalle (min)

Bandsintown

platform / failing

Configuration
URL source:
Non configure
Type de source:
platform
Strategie:
public-page
Encodage:
Defaut (UTF-8)
Active:
Non
Details de la strategie

Platform public page fallback

Fallback platform scraper that reuses the generic website connector until a platform-specific adapter exists.

Fichier source de la strategie: apps/backend/app/connectors/websites.py
Implementation: PlatformConnector

URLs d execution / flux:

Configured public page:
The source URL configured on the source row.

Fonctionnement:

  • Requires a configured public URL.
  • Uses the same candidate selection and extraction flow as the generic website scraper.

Configuration supportee:

selectors:
Optional CSS selectors to find event candidate nodes.
max_items:
Maximum candidate nodes to inspect. Default: 25.
Configuration JSON:
Aucune configuration supplementaire

Website source has no URL

Priorite source

Derniere sync

26 mai 2026, 17:32

Evenements

0

Actifs

+0

Nouv.

0

Total

Intervalle (min)

Dice

platform / failing

Configuration
URL source:
Non configure
Type de source:
platform
Strategie:
public-page
Encodage:
Defaut (UTF-8)
Active:
Non
Details de la strategie

Platform public page fallback

Fallback platform scraper that reuses the generic website connector until a platform-specific adapter exists.

Fichier source de la strategie: apps/backend/app/connectors/websites.py
Implementation: PlatformConnector

URLs d execution / flux:

Configured public page:
The source URL configured on the source row.

Fonctionnement:

  • Requires a configured public URL.
  • Uses the same candidate selection and extraction flow as the generic website scraper.

Configuration supportee:

selectors:
Optional CSS selectors to find event candidate nodes.
max_items:
Maximum candidate nodes to inspect. Default: 25.
Configuration JSON:
Aucune configuration supplementaire

Website source has no URL

Priorite source

Derniere sync

26 mai 2026, 17:32

Evenements

0

Actifs

+0

Nouv.

0

Total

Intervalle (min)

Eventbrite

platform / failing

Configuration
URL source:
Non configure
Type de source:
platform
Strategie:
public-page
Encodage:
Defaut (UTF-8)
Active:
Non
Details de la strategie

Platform public page fallback

Fallback platform scraper that reuses the generic website connector until a platform-specific adapter exists.

Fichier source de la strategie: apps/backend/app/connectors/websites.py
Implementation: PlatformConnector

URLs d execution / flux:

Configured public page:
The source URL configured on the source row.

Fonctionnement:

  • Requires a configured public URL.
  • Uses the same candidate selection and extraction flow as the generic website scraper.

Configuration supportee:

selectors:
Optional CSS selectors to find event candidate nodes.
max_items:
Maximum candidate nodes to inspect. Default: 25.
Configuration JSON:
Aucune configuration supplementaire

Website source has no URL

Priorite source

Derniere sync

26 mai 2026, 17:32

Evenements

0

Actifs

+0

Nouv.

0

Total

Intervalle (min)

Resident Advisor

platform / healthy

Configuration
Type de source:
platform
Strategie:
resident_advisor_graphql
Encodage:
Defaut (UTF-8)
Active:
Oui
Details de la strategie

Resident Advisor GraphQL

Dedicated Resident Advisor adapter using RA's public web GraphQL endpoint for Marseille listings and event-detail enrichment.

Fichier source de la strategie: apps/backend/app/connectors/resident_advisor.py
Implementation: ResidentAdvisorConnector

URLs d execution / flux:

Public Marseille listings:
https://ra.co/events/fr/marseille
GraphQL endpoint:
https://ra.co/graphql
Event details:
Resident Advisor event(id) GraphQL queries and https://ra.co/events/{event_id} pages.

Fonctionnement:

  • Queries Resident Advisor area 338, which RA identifies as Marseille.
  • Paginates upcoming listings over a configurable future horizon and deduplicates repeated listing-day rows by stable RA event ID.
  • Fetches event details with bounded concurrency and falls back to listing data when one detail request fails.
  • Keeps only events whose venue area is explicitly Marseille.
  • Treats RA start/end values as Europe/Paris local times and stores the interval as an event instance.
  • Imports paragraph-preserved descriptions, original RA flyer images, venue/address, lineup, price, minimum age and ticket link.
  • Exposes only RA genres as source taxonomies and uses attending count as the popularity score.

Configuration supportee:

area_id:
Resident Advisor numeric area identifier. Marseille: 338.
max_items:
Maximum unique RA events enriched per sync. Default: 250.
page_size:
Listing rows requested per page, clamped to 1-100. Default: 50.
max_pages:
Maximum listing pages requested. Default: 10.
horizon_days:
Future listing horizon from the current Marseille day. Default: 365.
detail_concurrency:
Concurrent event-detail queries, clamped to 1-20. Default: 8.
graphql_url:
Optional endpoint override. Default: https://ra.co/graphql.
Configuration JSON:
{ "area_id": 338, "max_items": 250, "page_size": 50, "max_pages": 10, "horizon_days": 365, "detail_concurrency": 8 }

Priorite source

Derniere sync

7 sept. 2026, 14:23

Evenements

34

Actifs

+1

Nouv.

96

Total

Intervalle (min)

Shotgun

platform / failing

Configuration
Type de source:
platform
Strategie:
shotgun_parse_api
Encodage:
Defaut (UTF-8)
Active:
Non
Details de la strategie

Shotgun via Parse API

Dedicated Shotgun adapter using Parse.bot's maintained REST wrapper over Shotgun public data. It paginates and enriches the Aix-Marseille feed, then retains only events physically located in Marseille.

Fichier source de la strategie: apps/backend/app/connectors/shotgun.py
Implementation: ShotgunParseConnector

URLs d execution / flux:

Event details:
Parse get_event_detail calls followed by canonical https://shotgun.live/fr/events/{slug} links.

Fonctionnement:

  • Authenticates with PARSE_API_KEY from the ignored .env file; the secret is never stored on the source row.
  • Uses get_events with city=aix-marseille/-/ and follows page/has_more pagination.
  • Calls get_event_detail for address, coordinates, schedule, images, performers and ticket offers.
  • In incremental mode, skips detail calls for recently known listings and periodically refreshes them after the configured window.
  • Requires explicit Marseille locality, address or postcode evidence after detail enrichment.
  • Imports canonical Shotgun links, event images, prices, performers and normalized event instances.
  • Creates daily instances only when separate ticket offers explicitly name at least two event dates.
  • Exposes Shotgun tags under shotgun_genre for Admin Categories mapping.
  • Paces requests according to the configured Parse plan to avoid HTTP 429 responses and excess credit use.
  • Parse.bot is an independent paid wrapper, not an official Shotgun API; source health therefore depends on both services.

Configuration supportee:

city:
Parse/Shotgun city slug. Default: aix-marseille/-/.
locality:
Required physical locality after detail enrichment. Default: Marseille.
physical_locality_only:
Require the configured locality/postcodes instead of the full city feed. Default: true.
max_items:
Maximum unique listings enriched per synchronization. Default: 50.
max_pages:
Maximum get_events pages requested. Default: 10.
requests_per_minute:
Parse request pace matching the account plan. Free: 5; Hobby: 20; Developer: 100.
incremental_detail_skip:
Skip detail calls for already imported listings while still checking listing pages. Default: true.
incremental_refresh_days:
Refresh already imported listings after this many days so date/ticket/image changes are eventually captured. Default: 30.
api_base:
Optional Parse scraper endpoint override for a pinned or private API copy.
Configuration JSON:
{ "city": "aix-marseille/-/", "locality": "Marseille", "max_items": 50, "max_pages": 10, "requests_per_minute": 5, "physical_locality_only": true, "incremental_detail_skip": true, "incremental_refresh_days": 30 }

Parse Shotgun API returned HTTP 402

Priorite source

Derniere sync

29 août 2026, 10:18

Evenements

68

Actifs

+0

Nouv.

68

Total

Intervalle (min)

HelloAsso

platform / failing

Configuration
Type de source:
platform
Strategie:
helloasso_algolia
Encodage:
Defaut (UTF-8)
Active:
Oui
Details de la strategie

HelloAsso public search

Dedicated HelloAsso adapter using the structured Algolia index behind the public Explore search, with strict current-event and physical-Marseille filtering.

Fichier source de la strategie: apps/backend/app/connectors/helloasso.py
Implementation: HelloAssoConnector

URLs d execution / flux:

Event pages and ticketing:
Canonical https://www.helloasso.com/associations/{organization}/evenements/{event} URLs returned by the index.

Fonctionnement:

  • Reads the public page first and discovers its current public Algolia application ID, search key, proxy and production index dynamically.
  • Does not require or persist a private HelloAsso credential.
  • Requests only form_type=Event records whose end date is today or later and paginates the complete configured result set.
  • Loads each canonical event page to read the event venue instead of trusting the association address exposed by the search index.
  • Fails safely instead of reconciling a partial catalog when upstream results exceed max_items or max_pages.
  • Requires explicit Marseille city/postcode evidence from the event page and rejects other or ambiguous locations.
  • Imports exact UTC schedules, event venue/address, paragraph-preserved descriptions, full CDN banner/logo URLs, min/max price and participant popularity.
  • Never treats the association headquarters coordinates in Algolia as event coordinates.
  • Uses each canonical HelloAsso event URL as both source URL and Ticket/Billetterie destination.
  • Exposes activity type, categories and public tags under helloasso_* taxonomies for Admin Categories mapping.
  • The Explore Algolia contract is public but undocumented and may require connector maintenance if HelloAsso changes its frontend.

Configuration supportee:

locality:
Required physical city. Default: Marseille.
department:
HelloAsso department filter. Default: Bouches-du-Rhone.
physical_locality_only:
Documents strict Marseille admission. Default: true.
max_items:
Maximum complete current/upcoming catalog size. Default: 1000.
page_size:
Records requested per search page, clamped to 1-100. Default: 100.
max_pages:
Maximum complete search pages. Default: 10.
detail_concurrency:
Concurrent canonical event-page validations, clamped to 1-20. Default: 10.
detail_requests_per_second:
Maximum paced canonical detail requests per second. Default: 5.
browser_impersonation:
curl-cffi browser profile used for the Cloudflare-protected public page. Default: safari17_0.
timeout_seconds:
Per-request timeout, clamped to 5-120 seconds. Default: 30.
algolia_proxy:
Optional structured-search proxy override.
index_name:
Optional index override. Default: prod_activities.
Configuration JSON:
{ "locality": "Marseille", "department": "Bouches-du-Rhone", "physical_locality_only": true, "max_items": 1000, "page_size": 100, "max_pages": 10, "browser_impersonation": "safari17_0", "detail_concurrency": 10, "detail_requests_per_second": 5 }

HelloAsso public search API returned HTTP 429

Priorite source

Derniere sync

6 sept. 2026, 19:05

Evenements

296

Actifs

+0

Nouv.

388

Total

Intervalle (min)

Songkick

platform / failing

Configuration
URL source:
Non configure
Type de source:
platform
Strategie:
public-page
Encodage:
Defaut (UTF-8)
Active:
Non
Details de la strategie

Platform public page fallback

Fallback platform scraper that reuses the generic website connector until a platform-specific adapter exists.

Fichier source de la strategie: apps/backend/app/connectors/websites.py
Implementation: PlatformConnector

URLs d execution / flux:

Configured public page:
The source URL configured on the source row.

Fonctionnement:

  • Requires a configured public URL.
  • Uses the same candidate selection and extraction flow as the generic website scraper.

Configuration supportee:

selectors:
Optional CSS selectors to find event candidate nodes.
max_items:
Maximum candidate nodes to inspect. Default: 25.
Configuration JSON:
Aucune configuration supplementaire

Website source has no URL

Priorite source

Derniere sync

26 mai 2026, 17:32

Evenements

0

Actifs

+0

Nouv.

0

Total

Intervalle (min)

Tarpin Bien

website / healthy

Configuration
Type de source:
website
Strategie:
tarpin_bien_wordpress
Encodage:
Defaut (UTF-8)
Active:
Non
Details de la strategie

Tarpin Bien WordPress/Schema.org

Dedicated Tarpin Bien adapter using the bounded upcoming-event index, Schema.org detail records and the public WordPress REST API for taxonomies and original featured media.

Fichier source de la strategie: apps/backend/app/connectors/tarpin_bien.py
Implementation: TarpinBienConnector

URLs d execution / flux:

Event details:
Individual https://tarpin-bien.com/evenement/{slug}/ pages discovered from the upcoming index.

Fonctionnement:

  • Paginates only the public current/upcoming event results instead of traversing the full historical WordPress collection.
  • Fetches detail pages with bounded concurrency and reads their Schema.org Event subtypes.
  • Treats the published event clock values as Europe/Paris wall time because the site labels them +0000 while rendering the same local clock time.
  • Requires explicit Marseille locality or a Marseille 13000/13001-13016 postcode and rejects Aix, Cassis, Martigues and other regional listings.
  • Imports paragraph-preserved descriptions, date instances, venue/address, coordinates, direct ticket links, prices and original images.
  • Uses bounded WordPress REST batches to enrich categorie-evenement/tag-evenement taxonomies and original featured media.

Configuration supportee:

max_items:
Maximum event detail pages to inspect per sync. Default: 250.
max_pages:
Maximum upcoming-result pages to request. Default: 20.
detail_concurrency:
Concurrent event-detail requests, clamped from 1 to 20. Default: 8.
locality:
Documented admission scope; this connector is intentionally fixed to Marseille.
physical_locality_only:
Documents strict physical-Marseille admission. Default: true.
Configuration JSON:
{ "max_items": 250, "max_pages": 20, "detail_concurrency": 8, "locality": "Marseille", "physical_locality_only": true }

Priorite source

Derniere sync

16 août 2026, 15:40

Evenements

147

Actifs

+0

Nouv.

147

Total

Intervalle (min)

Sortir a Marseille

website / unknown

Configuration
Type de source:
website
Strategie:
http
Encodage:
Defaut (UTF-8)
Active:
Non
Details de la strategie

Generic website scraper

Generic public-page scraper for simple website sources.

Fichier source de la strategie: apps/backend/app/connectors/websites.py
Implementation: WebsiteConnector

URLs d execution / flux:

Configured public page:
The source URL configured on the source row.

Fonctionnement:

  • Downloads the configured public URL.
  • Selects article/event-like HTML nodes.
  • Builds raw event candidates from visible text and the first link.
  • Relies on the shared extraction pipeline for dates and event fields.

Configuration supportee:

selectors:
Optional CSS selectors to find event candidate nodes.
max_items:
Maximum candidate nodes to inspect. Default: 25.
encoding:
Optional response decoding hint. Default: UTF-8.
Configuration JSON:
Aucune configuration supplementaire

Priorite source

Derniere sync

Jamais

Evenements

0

Actifs

+0

Nouv.

0

Total

Intervalle (min)

Time Out Marseille

website / unknown

Configuration
Type de source:
website
Strategie:
http
Encodage:
Defaut (UTF-8)
Active:
Non
Details de la strategie

Generic website scraper

Generic public-page scraper for simple website sources.

Fichier source de la strategie: apps/backend/app/connectors/websites.py
Implementation: WebsiteConnector

URLs d execution / flux:

Configured public page:
The source URL configured on the source row.

Fonctionnement:

  • Downloads the configured public URL.
  • Selects article/event-like HTML nodes.
  • Builds raw event candidates from visible text and the first link.
  • Relies on the shared extraction pipeline for dates and event fields.

Configuration supportee:

selectors:
Optional CSS selectors to find event candidate nodes.
max_items:
Maximum candidate nodes to inspect. Default: 25.
encoding:
Optional response decoding hint. Default: UTF-8.
Configuration JSON:
Aucune configuration supplementaire

Priorite source

Derniere sync

Jamais

Evenements

0

Actifs

+0

Nouv.

0

Total

Intervalle (min)

ateliersjeannebarret

instagram / healthy

Pour un compte de lieu verifie, ce lieu et cette adresse ne sont utilises que si le post n indique pas un autre emplacement. Le lieu explicite du post reste prioritaire.

Configuration
Type de source:
instagram
Strategie:
instagrapi
Encodage:
Defaut (UTF-8)
Active:
Oui
Details de la strategie

Instagram instagrapi

Authenticated Instagram private-API strategy selected through config/instagram_connectors.json.

Fichier source de la strategie: apps/backend/app/connectors/instagram.py
Implementation: InstagramConnector

URLs d execution / flux:

Instagram profile:
The configured instagram.com account URL.
Instagram private API:
instagrapi-managed endpoints; exact URLs are not stored in Planet Mars config.

Fonctionnement:

  • Loads non-secret strategy selection from config/instagram_connectors.json.
  • Uses credentials or a persisted session from ignored .env/storage values.
  • Fetches recent public account posts and complete carousel image sets.
  • Reads the current profile grid once per sync, then sends only new or changed posts to image download, OCR and OpenAI extraction.
  • Records successfully analyzed posts even when they contain no event, preventing repeated token spend on non-event posts.
  • Runs enabled local PaddleOCR per slide, then sends caption, OCR and images to the source-selected OpenAI model.
  • Imports only validation-ready future Marseille events through the normal deduplication and visibility pipeline.
  • Caches extraction by account, post content, prompt version and model so unchanged posts do not spend OpenAI tokens again.

Configuration supportee:

default_strategy:
Global Instagram strategy in config/instagram_connectors.json.
sources.<account>.strategy:
Per-account strategy override.
openai_model:
Multimodal extraction model selected per Instagram source.
instagram_options.post_limit:
Latest profile posts checked for new or changed content per synchronization, from 1 to 50. Default for new sources: 20.
instagram_account_type:
Venue, organizer, or mixed account behavior.
instagram_default_venue:
Verified fixed venue used only by venue accounts.
instagram_default_address:
Verified Marseille address used only by venue accounts.
Configuration JSON:
{ "openai_model": "gpt-5.6-luna", "instagram_options": { "post_limit": 20 }, "instagram_account_type": "venue", "instagram_default_venue": "Atelier Jeanne Barret", "instagram_default_address": "5 Bd de Sévigné, Marseille, France 13015" }

Priorite source

Derniere sync

6 sept. 2026, 20:04

Evenements

2

Actifs

+0

Nouv.

2

Total

Intervalle (min)

la_comerie

instagram / healthy

Pour un compte de lieu verifie, ce lieu et cette adresse ne sont utilises que si le post n indique pas un autre emplacement. Le lieu explicite du post reste prioritaire.

Configuration
Type de source:
instagram
Strategie:
instagrapi
Encodage:
Defaut (UTF-8)
Active:
Oui
Details de la strategie

Instagram instagrapi

Authenticated Instagram private-API strategy selected through config/instagram_connectors.json.

Fichier source de la strategie: apps/backend/app/connectors/instagram.py
Implementation: InstagramConnector

URLs d execution / flux:

Instagram profile:
The configured instagram.com account URL.
Instagram private API:
instagrapi-managed endpoints; exact URLs are not stored in Planet Mars config.

Fonctionnement:

  • Loads non-secret strategy selection from config/instagram_connectors.json.
  • Uses credentials or a persisted session from ignored .env/storage values.
  • Fetches recent public account posts and complete carousel image sets.
  • Reads the current profile grid once per sync, then sends only new or changed posts to image download, OCR and OpenAI extraction.
  • Records successfully analyzed posts even when they contain no event, preventing repeated token spend on non-event posts.
  • Runs enabled local PaddleOCR per slide, then sends caption, OCR and images to the source-selected OpenAI model.
  • Imports only validation-ready future Marseille events through the normal deduplication and visibility pipeline.
  • Caches extraction by account, post content, prompt version and model so unchanged posts do not spend OpenAI tokens again.

Configuration supportee:

default_strategy:
Global Instagram strategy in config/instagram_connectors.json.
sources.<account>.strategy:
Per-account strategy override.
openai_model:
Multimodal extraction model selected per Instagram source.
instagram_options.post_limit:
Latest profile posts checked for new or changed content per synchronization, from 1 to 50. Default for new sources: 20.
instagram_account_type:
Venue, organizer, or mixed account behavior.
instagram_default_venue:
Verified fixed venue used only by venue accounts.
instagram_default_address:
Verified Marseille address used only by venue accounts.
Configuration JSON:
{ "openai_model": "gpt-5.6-luna", "instagram_options": { "post_limit": 20 }, "instagram_account_type": "venue", "instagram_default_venue": "La Comerie", "instagram_default_address": "176 Rue Breteuil, 13006 Marseille" }

Priorite source

Derniere sync

7 sept. 2026, 08:21

Evenements

22

Actifs

+22

Nouv.

22

Total

Intervalle (min)