SYSTEM all green source npr.org queue 12,409 URLs p99 latency 184ms dataflirt.com · scraper/npr-org
RUN · 41 active pipelines · npr.org live

NPR journalism,
at warehouse scale.

We extract news articles, podcast transcripts, audio metadata, and author profiles from NPR. Delivered as clean JSON, CSV, or Parquet to S3, BigQuery, or Snowflake on your cadence.

Articles extracted
45.2K /day
Transcripts parsed
8.1K /24h
Audio links mapped
112K /run
Active pipelines
41
Uptime
99.98%
Data Dictionary

Every field we extract from npr.org

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 npr.org. All fields typed and schema-versioned.

article_idurltitleauthorpublish_dateupdate_datebody_texttopicsimage_urlimage_captionaudio_available
articles
● 200 OK
"article_id": "1198908354",
"title": "Inflation cools slightly, but prices remain high",
"author": "Scott Horsley",
"publish_date": "2023-08-10T08:32:00Z",
"topics": "['Economy', 'Inflation', 'Business']",
"audio_available": true,
"url": "https://www.npr.org/2023/08/10/1198908354/inflation-cpi-prices"
# article_idurltitleauthorpublish_dateupdate_date
1
2
3

Complete list of extractable fields for Podcasts objects from npr.org. All fields typed and schema-versioned.

episode_idprogram_nameepisode_titleepisode_urlpublish_dateduration_secondsaudio_urltranscript_urlhostsummarytags
podcasts
● 200 OK
"episode_id": "1197839201",
"program_name": "Planet Money",
"episode_title": "The indicator: Rent vs Buy",
"duration_seconds": 584,
"host": "Adrian Ma",
"audio_url": "https://ondemand.npr.org/anon.npr-mp3/npr/pm/2023/08/20230809_pm_indicator.mp3",
"publish_date": "2023-08-09T16:00:00Z"
# episode_idprogram_nameepisode_titleepisode_urlpublish_dateduration_seconds
1
2
3

Complete list of extractable fields for Transcripts objects from npr.org. All fields typed and schema-versioned.

episode_idsegment_indexspeakertext_blocktimestamp_starttimestamp_endword_countlanguage
transcripts
● 200 OK
"episode_id": "1197839201",
"segment_index": 12,
"speaker": "MARY LOUISE KELLY",
"text_block": "That is a question we are going to explore today.",
"timestamp_start": "00:02:14",
"timestamp_end": "00:02:18",
"word_count": 10
# episode_idsegment_indexspeakertext_blocktimestamp_starttimestamp_end
1
2
3

Complete list of extractable fields for Authors objects from npr.org. All fields typed and schema-versioned.

author_idnamerolebiotwitter_handlerecent_articlesimage_urllocation
authors
● 200 OK
"author_id": "1234567",
"name": "Nina Totenberg",
"role": "Legal Affairs Correspondent",
"twitter_handle": "@NinaTotenberg",
"location": "Washington, D.C.",
"recent_articles": "['1198908354', '1198908355']",
"bio": "Nina Totenberg is NPR's award-winning legal affairs correspondent."
# author_idnamerolebiotwitter_handlerecent_articles
1
2
3

Complete list of extractable fields for Member Stations objects from npr.org. All fields typed and schema-versioned.

station_idcallsignfrequencycitystatestream_urlwebsitenetwork_affiliationformat
member_stations
● 200 OK
"station_id": "345",
"callsign": "KQED",
"frequency": "88.5 FM",
"city": "San Francisco",
"state": "CA",
"stream_url": "https://streams.kqed.org/kqedradio",
"format": "News/Talk"
# station_idcallsignfrequencycitystatestream_url
1
2
3

Capabilities

Everything you need from NPR, structured

Our NPR scraper extracts text, audio metadata, and transcript data across the entire network. We handle audio player state, pagination, and dynamic transcript loading automatically.

Article Text Extraction

Extract clean body text, headlines, subheadings, and image captions without ads or navigation clutter.

Audio Metadata Mapping

Capture direct MP3 URLs, duration, file size, and streaming endpoints for all podcast episodes and broadcast segments.

Transcript Parsing

Extract speaker-attributed text blocks mapped to timestamps for NLP and LLM training datasets.

Topic & Category Indexing

Map articles and audio to NPR's internal taxonomy, including primary topics, tags, and program associations.

Author & Host Bylines

Extract reporter names, correspondent roles, and bio information linked to specific articles and audio segments.

Member Station Data

Index regional member station details, including broadcast frequencies, local stream URLs, and callsigns.

Program Schedules

Extract daily broadcast schedules for specific programs like Morning Edition, All Things Considered, and Fresh Air.

Archive Pagination

Crawl historical archives spanning decades of journalism, handling infinite scroll and legacy URL structures.

Continuous Sync

Monitor RSS feeds and topic pages to extract breaking news and new podcast episodes within minutes of publication.

// engagement pipeline

From NPR URLs to warehouse records

Brief in. Clean data out.

Define Scope
d 0

Provide program names, topic tags, or author profiles. We design the extraction schema together.

Pipeline Build
d 2–4

We configure Scrapy crawlers, handle transcript DOM parsing, and manage request limits for npr.org.

Validation & QA
d 4–6

Schema validation, null-rate checks, and text formatting verification before full launch.

Delivery
ongoing

JSON, CSV, or Parquet pushed to your S3 bucket, BigQuery dataset, or Snowflake stage on agreed cadence.

Under the hood

How our NPR pipeline handles media extraction

Extracting from a media-heavy site requires handling dynamic audio players and asynchronous text loading. Here is how we manage it.

pipeline-monitor · npr.org · live ● active
// fingerprinting
Identity rotation
TLS fingerprintrandomised
User-agentrotated
IP poolresidential
Challenges blocked0
// pagination
Page coverage
48,291 pages queued running
// observability
Pipeline health
99.9%
uptime
142ms
p99 lat
0.3%
null rate
2
alerts
Dynamic transcripts
Asynchronous text rendering

NPR transcripts often load asynchronously or require user interaction to expand. We use Playwright to execute JavaScript, trigger transcript expansion, and parse the resulting DOM into structured speaker blocks.

Audio mapping
Extracting direct media URLs

Audio files are embedded within complex player components. Our pipeline intercepts network requests to extract the underlying MP3 URLs and streaming endpoints directly from the media server responses.

Text cleaning
Sanitising article bodies

News articles contain embedded tweets, newsletter signups, and related article links. We strip non-editorial elements, delivering pure journalistic text ready for NLP ingestion.

Archive crawling
Navigating legacy URL structures

NPR has decades of archives with varying URL schemas and page layouts. Our fallback selectors recognise legacy templates to ensure historical data is extracted consistently alongside modern articles.

Rate limiting
Respectful extraction cadence

We optimise request concurrency and utilise US-based proxies to distribute load, ensuring stable extraction without triggering firewall blocks or degrading NPR's server performance.

Applications

Who uses NPR data and how

Teams across industries use npr.org data to build competitive products and smarter operations.

01
LLM Training & NLP

AI teams use NPR's high-quality transcripts and articles to train language models on conversational audio and journalistic text.

02
Media Monitoring

PR firms and corporate communication teams track brand mentions, sentiment, and topic coverage across national and regional broadcasts.

03
Academic Research

Linguists and sociologists analyse decades of broadcast transcripts to study language evolution, political discourse, and media bias.

04
Accessibility Tools

Developers use aligned audio and text transcript datasets to improve speech-to-text algorithms and accessibility software.

05
Content Aggregation

News aggregators ingest structured article and podcast metadata to populate custom feeds and topic-specific dashboards.

06
Journalistic Archiving

Institutions maintain structured backups of public broadcasting records for historical preservation and reference.

Why DataFlirt

"NPR holds decades of pristine journalism and audio documentaries. We turn that unstructured media into queryable datasets ready for analysis."

Extracting data from NPR requires handling dynamic audio players, asynchronous transcript loading, and regional member station routing. DataFlirt manages the extraction layer so your data science teams receive clean text corpuses ready for NLP and LLM training pipelines, without maintaining complex scraping infrastructure.

Technical Spec

NPR scraper technical capabilities

Everything supported by our npr.org scraper — rendered SPA elements, auth walls, rate-limit evasion and beyond.

Article text extraction
Clean body text devoid of ads, navigation, and newsletter prompts
Supported
Transcript parsing
Speaker-attributed text with timestamps
Supported
Audio URL extraction
Direct MP3 links from embedded media players
Supported
Topic taxonomy
Extraction of primary and secondary categorisation tags
Supported
Historical archives
Pagination through legacy URL structures dating back to the 1990s
Supported
Member station mapping
Callsigns, frequencies, and stream URLs for local stations
Supported
NPR+ exclusive audio
Premium sponsor-free podcast episodes requiring subscriber authentication
Partial
User donation history
Account-level data, saved playlists, and personal bookmarks
Partial
Infrastructure

Infrastructure powering the NPR pipeline

Open-source tooling on proven cloud infra — no vendor lock-in, full observability.

ScrapyPlaywrightPython 3.12RedisPostgreSQLApache AirflowAWS LambdaS3CloudWatch2CaptchaCapSolverResidential ProxiesDockerKubernetesGrafanaPrometheusBeautifulSouplxml
Scrapy + Playwright Stack

Scrapy handles high-volume article crawling. Playwright executes JavaScript to extract dynamic audio player states and asynchronous transcripts.

DOM Parsing & Sanitisation

Advanced lxml and BeautifulSoup pipelines strip editorial noise, returning normalised text blocks optimised for NLP ingestion.

Cloud-Native Orchestration

Pipelines run on AWS Lambda and ECS. Airflow manages scheduling, ensuring daily news syncs complete within strict time windows.

Output & Delivery

Your data, your destination

Data delivered to where your team already works — no new tooling required.

JSON
Newline-delimited or nested arrays for complex transcript structures
CSV
Flat file with typed columns for metadata and simple article text
XLS
Excel compatible exports for editorial and PR teams
Parquet
Columnar format optimised for BigQuery, Snowflake, and Athena
AWS S3
Direct bucket delivery compatible with any data lake architecture
Webhook
HTTP POST per record for real-time news ingestion
API
REST endpoint to query historical extraction runs
BigQuery
Streamed directly into your dataset with schema auto-detect
S3
Direct bucket delivery — compatible with any data lake
// faq

Common questions.

About npr.org scraping, legality, and pipeline operations.

Ask us directly →
Is scraping NPR legal?

Scraping publicly available news articles, transcripts, and metadata from NPR is generally permissible under applicable law. DataFlirt targets only public, non-authenticated data. We do not extract user data or bypass NPR+ paywalls. Clients should review terms of service and consult legal counsel for specific commercial use cases.

Can you extract direct audio files?

We extract the direct URLs to the MP3 files and streaming endpoints hosted on NPR's media servers. You can use these URLs to download the audio files directly to your own infrastructure.

How do you handle transcripts?

We parse transcript pages into structured JSON objects, separating speaker names, text blocks, and timestamps. This format is designed specifically for ingestion into machine learning and NLP pipelines.

Can you scrape historical archives?

Yes. We configure fallback selectors to handle legacy page templates, allowing us to extract articles and broadcast metadata dating back decades.

How fast can we get breaking news?

We configure continuous monitoring pipelines that poll NPR RSS feeds and topic pages, delivering new articles via webhook within minutes of publication.

Do you extract data from local member stations?

Yes. We can extract member station directories, including callsigns, broadcast frequencies, local stream URLs, and network affiliations.

$ dataflirt scope --new-project --source=npr.org ready

Tell us what
to extract.
We do the rest.

20-minute scoping call. Pilot dataset within the week. Production within two. Whether you need a historical archive of Planet Money transcripts or a daily feed of breaking news articles, we build and operate the pipeline. Tell us what you need.

hello@dataflirt.com · Bengaluru · IST · typical reply < 4h
Related Scrapers

More in news and media

Services

Data Extraction for Every Industry

View All Services →