My Podcast: NZ news explained in Chinese
/ 4 min read
Table of Contents
Recently, I built an AI-powered workflow to generate a podcast. The podcast is called “NZ news explained in Chinese” and it summarizes New Zealand news in Chinese and also offers a few English learning tips for each news story. People can listen to this podcast on Apple Podcasts.
Why I built this podcast
- Personally, I want to learn more about New Zealand news and also improve my English. News can help people learn more about the country. That’s the background you need when you are talking with others. The podcast also explains the key English terms, phrases, and idioms as tips to help listeners learn English.
- I want to use AI to build something useful. I intended to fully leverage AI but lower the cost as much as possible. I tried to handle all the tasks on my own laptop with as little dependence on paid APIs as possible.
How I built this podcast
This is a Python project. I used Codex to help me write the code. This project is a full vibe-coding product. I didn’t read the code from beginning to end. Because it is not a critical tool, I thought it was OK to only focus on the external behavior. I can tolerate some bugs and fix them later. During the development, I told Codex my ideas and how to implement it in different steps. I designed the purpose and requirements scope for each step.
Just recently, Codex released a new feature that users can control the project on the computer from a mobile phone. So most of the code of this project was generated from prompts I wrote on my phone. I also used prompts to run and test the code. It is really convenient.
The steps of this workflow and related techniques for each step are listed below:
- Get news data: I used some news websites’
RSS feedsto get the news list. Then I usedPlaywrightto scrape the full news content from the news links. - Prepare podcast script: First, I used
Codex CLIto generate each news story’s script in Chinese with a few English learning tips. The reason I used Codex CLI instead of API calls is that I don’t want to pay for the API usage. Reusing the credits from my ChatGPT subscription is a more cost-effective way. This could be changed to API calls if needed. Second, I concatenated all the news story scripts into one script for the whole episode. For this part, designing good prompts is the key point. - Generate audio: I used
Qwen TTSto generate the audio. It is a free TTS model from Alibaba. I ran the model locally to lower the cost. My laptop is an MBP with an M5 chip and 24GB of unified memory (for the 0.6B model, I think 16GB of memory is sufficient). In order to fully exploit the performance of the Apple Silicon, I used an MLX version of the TTS model. It is optimized for Apple Silicon and can run much faster than the original version. The audio generation is the most time-consuming part in the workflow. In my case, usingmlx-community/Qwen3-TTS-12Hz-0.6B-Base-8bitwith a customized voice reference, it gave a weighted RTF of 0.89 (the quality was good enough). - Publish the podcast: Podcasts operate on RSS feeds. I used Cloudflare R2 to host the audio files and generated the RSS feed for them. Cloudflare R2 is an object storage service. Its free tier is enough for this project. Lastly, I submitted the RSS feed to Apple Podcasts. Of course, I let Codex generate everything else I needed, like the podcast cover, the description, and so on.
- Automation: I set up an Automation task in Codex. It runs the whole workflow every morning at 4 a.m. This allows the podcast to be updated daily without any manual work.