How to Build an Automated Audio News Briefing with a News API
Learn how to build an automated audio news briefing using a news API, AI-powered summaries, and text-to-speech technology. From selecting relevant stories to generating audio and scheduling daily episodes, this guide walks you through creating your own news podcast.
Try reading the news on a packed 7:40 a.m. train. Someone's backpack is in your face, the carriage lurches, and you lose your place three times in one paragraph. Most people just give up.
Pop in your earbuds and press play on a five-minute briefing, though, and you can catch up before your stop.
People still want the news. What they're short on is free eyes. Between driving, chasing kids and cooking dinner, their hands are busy most of the day. Their ears usually aren't.
Serving that audience used to mean a studio, a presenter and some poor producer awake at 5 a.m. Now it takes a steady feed of news data, a bit of code and a decent voice. The scheduler handles the early alarm.
So let's build one.
The short version
A script wakes up early and pulls the morning's stories from a news API. Then it rewrites each one the way you'd actually say it out loud. A synthetic voice reads them. The finished episode goes live on a timer while you're still asleep.
Key takeaways
- Story selection matters more than anything else.
- Write scripts the way people actually talk.
- Pick a voice and keep it. Regular listeners notice when it changes.
- Automate freely, but have a person listen to the early episodes.
Why bother with audio at all?
Reading needs your eyes on the page. Listening lets you follow along while doing other things. That one difference frees up a surprising amount of someone's day.
Here's what you get out of it:
- Time you didn't have before, like commutes, gym sessions and washing up.
- Better accessibility. Audio gives someone who struggles to read a screen another way to follow the news.
- More use out of data you already pay for.
- New places to show up, like podcast apps and smart speakers.
- A habit. Same time every day, same voice. People come back to things they can count on.
After the first build, automation reduces the work involved in each episode, though API usage, voice generation and hosting still have costs.
First, pick stories worth hearing
Honestly, this step makes or breaks the whole thing. People will forgive an average voice. They won't forgive five minutes of stories they don't care about.
NewsAPI.ai can return article headlines, text, source information, dates and language, along with enrichments such as categories and sentiment. The fields depend on what you request, and some values may be unavailable. From that feed, you want perhaps eight distinct stories.
I'd start with these filters:
- Choose a recent time window, such as the previous calendar day.
- Filter by categories or concepts rather than loose keywords. Search "Apple" as a plain keyword and you'll get pie recipes mixed in with iPhone news.
- Match language and source location to your audience. For a UK business briefing, choose sources relevant to that audience, including overseas reporting where useful.
- Turn on duplicate filtering to skip repeated copies of articles. Separate reports about the same story may still need grouping.
- Sort by date or source importance, then select the stories most relevant to your audience.
In Python, with the official SDK, a basic version looks like this:
from datetime import datetime, timedelta, timezone
from eventregistry import EventRegistry, QueryArticlesIter
er = EventRegistry(apiKey="YOUR_API_KEY")
yesterday = datetime.now(timezone.utc).date() - timedelta(days=1)
query = QueryArticlesIter(
categoryUri=er.getCategoryUri("business"),
lang="eng",
dateStart=yesterday,
dateEnd=yesterday,
isDuplicateFilter="skipDuplicates",
)
stories = list(query.execQuery(er, sortBy="date", maxItems=10))
This retrieves up to ten matching articles from the previous UTC calendar day; it is not a rolling 24-hour query or a finished editorial selection.
If you're new to the SDK, this Python SDK guide covers setup and iterators in more detail.
A trick I like: query events instead of single articles. If forty outlets cover the same rate cut, event clustering can group their coverage. Your script can use that group to build one segment, and the article count indicates how widely the event has been covered.

Rewrite everything for the ear
News articles are written to be read on a screen. They lean on parentheses, tables and phrases like "see the chart below." Try reading one out loud and you'll hear the problem straight away.
So every story needs rewriting first, either with templates or a language model. Give it rules like these:
- Keep sentences short, ideally under 20 words, with one idea each.
- Spell out anything a voice could trip over. "Q3" should become "the third quarter," and "$4.2B" should become "4.2 billion dollars."
- URLs, brackets and image captions have to go.
- I'd name the source every time ("according to the Financial Times").
- Put small signposts like "Next up" between stories. A listener can't scroll back to check where one story stopped.
- Say the date at the start. It seems minor, but people notice when it's missing.
Aim for five minutes. That's roughly the time it takes to make a coffee. At around 150 words per minute, five minutes is roughly 750 words. Allow room for pauses and transitions, then check the generated audio’s actual duration.
A word of caution about AI summaries: they can get facts, numbers and quotes wrong. Keep the source link beside each summary and check those details before publication.
Choose a voice you can live with
Listeners judge a voice within a few seconds. If it sounds flat and robotic, even strong stories come across as cheap.
Before you write a single line of integration code, paste yesterday's script into a browser-based voice generator. Then listen on your phone, in the car, over kitchen noise. A voice that sounds great on good headphones can get tiring by day three. Better to find that out now, while switching costs you nothing.
A few things worth checking before you commit:
- Can you fix pronunciation? News is full of names and tickers, and you'll want each fix to stick.
- Pauses. A beat of silence between stories helps more than any jingle.
- Tone options, since a markets update and a culture roundup need different moods.
- Language and accent support, if you cover more than one market.
- Commercial rights. Read the license before episode one goes live.
Production can stay basic: an intro sting, maybe quiet background music, an outro. Aim for about -16 LUFS overall loudness, check true peaks, and follow your podcast host’s audio guidance.

Then let it run itself
Get every piece working by hand first. Chaining them together after that is the easy bit.
A daily run might look like this. At 5:30 a scheduler kicks things off. Cron and GitHub Actions both work fine for this. The script grabs the stories. Then it rewrites each one for the ear. After that it sends the script off to be voiced. FFmpeg joins the intro, stories and outro into one MP3 file. Once the upload succeeds, your podcast feed updates and the player on your site picks up the new episode.
Two cheap safety checks will spare you some embarrassing mornings. If unusually few stories come back, pause publication and check whether it is a quiet news day or an upstream problem. And if an episode comes out at 90 seconds when it's usually five minutes, have the script ping you before it publishes.
Once one show works, a second one is mostly copy and paste. Swap the filters and keep everything else. Your tech show and your markets show can share almost all of their code. If you're building a bigger product around this, NewsAPI.ai's page on news aggregation shows how far personalized feeds can go.
When the Mac says "scratch disks are full"
Some of the work still takes place on a laptop. You may also create cover art or edit social media videos using tools such as Photoshop or Premiere Pro.
Daily audio piles up quickly too. Raw WAV files, render caches and old exports eat disk space week after week, until one morning Photoshop won't open because its scratch disks are full. Usually about twenty minutes before you need to publish.
Do not panic. These immediate solutions should get you back to work in a few minutes. Freeing up storage or choosing another suitable scratch disk can help you get back to work.
To stop it happening again:
- Archive raw WAV files and remove local copies once your backups are verified.
- Move old episodes to cloud storage every week or so.
- Keep ample space free on the drive Photoshop uses; Adobe currently recommends freeing at least 100 GB when troubleshooting a full scratch disk.
- If you have an external SSD, point render caches there.
Mistakes to avoid
- Reading headlines out word for word. They're written to win clicks, and spoken aloud they sound like clickbait.
- Twenty stories in one episode is too many. Ten is plenty.
- Using the wrong tone. An overly cheerful delivery can jar with serious news. Choose a measured style that suits the stories.
- Always give credit to the publishers. Include links to the original sources in your show notes.
- Never let it run without checking it. Technical monitoring can spot crashes, but listening checks are needed to catch a mispronounced name or a misstated fact.
Your first episode can ship tomorrow
Start with one category, eight distinct stories and one voice. Prepare a test episode for 6 a.m. and listen to it on your commute tomorrow.
If you'd skip it halfway through, so will everyone else.
Fix that, and you've got a show people actually wait for.