We extract multilingual articles, broadcast audio metadata, journalist profiles, and geopolitical reporting from rfi.fr. Delivered as clean JSON, CSV, or Parquet to S3, BigQuery, or Snowflake on your cadence.
Structured, schema-consistent data across all major object types — delivered clean, typed, and ready to query.
Complete list of extractable fields for Articles objects from rfi.fr. All fields typed and schema-versioned.
"article_id": "rfi-fr-1294851", "url": "https://www.rfi.fr/fr/afrique/20260512-example", "title": "Elections in Senegal: Preliminary Results", "language": "fr", "author": "Jean Dupont", "published_at": "2026-05-12T08:30:00Z", "region": "Africa"
| # | article_id | url | title | language | author | published_at |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | ||||||
| 3 |
Complete list of extractable fields for Audio & Podcasts objects from rfi.fr. All fields typed and schema-versioned.
"episode_id": "pod-8472", "show_name": "Afrique Matin", "title": "Morning News Summary", "duration_seconds": 1240, "audio_url": "https://aod.rfi.fr/rfi/fr/audio/2026/05/example.mp3", "published_at": "2026-05-12T06:00:00Z"
| # | episode_id | show_name | title | duration_seconds | audio_url | published_at |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | ||||||
| 3 |
Complete list of extractable fields for Journalists objects from rfi.fr. All fields typed and schema-versioned.
"author_id": "auth-392", "name": "Marie Curie", "role": "Senior Correspondent", "twitter_handle": "@mariecurie_rfi", "article_count": 412, "language_focus": "fr"
| # | author_id | name | role | bio | twitter_handle | article_count |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | ||||||
| 3 |
Complete list of extractable fields for Categories & Tags objects from rfi.fr. All fields typed and schema-versioned.
"tag_id": "tag-senegal", "name": "Senegal", "parent_category": "Africa", "article_count": 1543, "language": "en", "last_updated": "2026-05-12T09:15:00Z"
| # | tag_id | name | url | article_count | related_tags | parent_category |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | ||||||
| 3 |
Complete list of extractable fields for Media Assets objects from rfi.fr. All fields typed and schema-versioned.
"asset_id": "img-9921", "image_url": "https://s.rfi.fr/media/display/example.jpg", "caption": "Voters at a polling station in Dakar.", "credit": "AFP / John Doe", "alt_text": "People queuing to vote", "format": "image/jpeg"
| # | asset_id | article_url | image_url | caption | credit | alt_text |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | ||||||
| 3 |
Our RFI scraper handles the complexities of multilingual news sites: timezone normalisation, dynamic audio player extraction, and varying DOM structures across regional subdomains.
Extract content from French, English, Spanish, Hausa, Swahili, and 10 other language subdomains into a unified schema.
Capture direct MP3 URLs, duration, show names, and broadcast timestamps from RFI podcast and live radio pages.
Clean, structured body text extraction with boilerplate removal, preserving inline quotes and paragraph structures.
Map RFI regional categorisation and keyword tags to your internal taxonomy for precise geopolitical monitoring.
Convert local publication strings across 15 languages into strict ISO 8601 UTC timestamps for reliable time-series analysis.
Link articles to specific authors, capturing bylines and contributor profiles to track reporting beats.
Extract high-resolution image URLs, captions, and agency credits embedded within news reports.
Configure pipelines to poll specific RSS feeds, category pages, or search results at sub-minute intervals.
Paginate through years of historical reporting to build comprehensive training corpora for NLP models.
Brief in. Clean data out.
Provide target languages, categories, or specific search queries. We design the extraction schema together.
We configure Scrapy crawlers, normalise date parsing logic across languages, and handle pagination for rfi.fr.
Schema validation, null-rate checks, timezone verification, and sample datasets before full launch.
JSON, CSV, or Parquet pushed to your S3 bucket, BigQuery dataset, or Snowflake stage on agreed cadence.
Multilingual news sites present unique structural challenges. Here is how we ensure data quality across regions.
Different language subdomains on RFI often use varying HTML structures and CSS classes. Our selectors are mapped per language, ensuring that an article in Hausa yields the exact same JSON schema as an article in French.
Audio links are frequently hidden behind JavaScript player states. We use Playwright to intercept media requests and parse player configuration objects, extracting clean MP3 URLs and duration metadata.
RFI publishes dates in local formats like 'Publié le : 12/05/2026' or 'Published on : 05/12/2026'. We maintain a custom date-parsing library to convert every string into strict UTC format.
Media sites employ aggressive rate limiting to protect bandwidth. We distribute requests across residential proxies and strictly control concurrency to ensure uninterrupted extraction without triggering IP bans.
News articles are frequently updated as stories develop. We track the 'updated_at' timestamp and hash the body text, delivering a new record only when the content actually changes.
Think tanks and risk analysts monitor RFI reporting on African and European politics for early threat detection.
PR firms track brand mentions, political figures, and public sentiment across international news coverage.
Machine learning teams ingest RFI multilingual articles to train cross-lingual translation and summarisation models.
Universities analyse historical reporting trends, framing of international events, and journalistic bias.
Fact-checking organisations cross-reference RFI reporting against social media narratives to verify claims.
AI companies extract podcast metadata and MP3 URLs to feed proprietary speech-to-text training pipelines.
"RFI provides one of the richest multilingual geopolitical datasets available, but extracting structured text and audio metadata across 15 languages requires strict schema enforcement."
Most teams underestimate the complexity of multilingual media scraping. RFI structures its DOM differently across language subdomains. DataFlirt normalises timestamps, maps category taxonomies, and unifies audio metadata into a single warehouse-ready schema so your NLP engineers can focus on modelling rather than parsing.
Everything supported by our rfi.fr scraper — rendered SPA elements, auth walls, rate-limit evasion and beyond.
Open-source tooling on proven cloud infra — no vendor lock-in, full observability.
Scrapy handles high-throughput crawl orchestration and deduplication. Playwright resolves JavaScript audio players and dynamic page elements.
Custom Python middleware parses language-specific date formats, maps regional taxonomies, and enforces a strict output schema across all subdomains.
Pipelines run on AWS Lambda for burst scaling during breaking news events. Airflow handles scheduling, dependency management, and SLA alerting.
Data delivered to where your team already works — no new tooling required.
About rfi.fr scraping, legality, and pipeline operations.
Ask us directly →Scraping publicly available news articles and metadata is generally permissible. DataFlirt extracts only public, non-authenticated text and audio metadata. We do not bypass paywalls or extract personal user data. Clients should review RFI terms of service and consult legal counsel for specific commercial use cases.
We support all language subdomains available on RFI, including French, English, Spanish, Portuguese, Hausa, Swahili, Mandinkan, Fulfulde, Russian, and Chinese. Our pipeline normalises dates and categories across all of them.
We extract the direct MP3 URLs, show names, durations, and broadcast timestamps. We do not download the physical audio files or perform speech-to-text transcription as part of the scraping pipeline.
For active monitoring pipelines, we poll RSS feeds and category pages at sub-minute intervals, delivering new articles via webhook within seconds of publication.
Yes. We can paginate through years of historical reporting on RFI to build comprehensive text corpora for LLM training or academic research.
Our smallest packages start at a defined category list or language subset with daily delivery. For full-site historical extraction, we price based on volume and compute requirements.
Yes. We provide a sample run of up to 500 articles across multiple languages during the scoping process to validate schema fit and date normalisation accuracy.
20-minute scoping call. Pilot dataset within the week. Production within two. Whether you need a historical multilingual corpus for LLM training or real-time geopolitical news alerts, we scope, build, and operate the pipeline. Tell us what you need.