DEV Community

Cover image for I Built a tool to generate podcast of any place we visit.
Kumar Saurav
Kumar Saurav

Posted on

I Built a tool to generate podcast of any place we visit.

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass

ss

What I Built

My friend loves hiking near our town in Himachal Pradesh. He dislikes staring at a screen to identify local plants or birds. I built TrailTale to solve this problem. TrailTale is a web application that creates hyper-local audio podcasts. A user types a location into the browser. The application searches the internet for real-time data about local wildlife, geology, and native plants. It writes a short documentary script and converts that text into an audio file. My friend can put her device away and listen to facts about the ground beneath her feet.

Demo

Code

Hyper-Local Ecosystem Podcast Generator

A stateless web app that generates personalized audio podcasts about local flora, fauna, and geology based on your location.

Architecture

  • /server - Node.js/Express backend with TypeScript
  • /client - Vite + React frontend with neo-brutalism UI

Setup

Prerequisites

  • Node.js 18+
  • API keys for: SerpApi, LLM provider (Groq/DigitalOcean)

Environment Variables

  1. Copy the example env file:
cp server/.env.example server/.env
Enter fullscreen mode Exit fullscreen mode
  1. Fill in your API keys in server/.env:
  • SERPAPI_KEY - Get from serpapi.com
  • LLM_API_KEY - Your LLM provider API key
  • LLM_ENDPOINT - LLM API endpoint (defaults to Groq)

Installation

# Install server dependencies
cd server && npm install

# Install client dependencies  
cd ../client && npm install
Enter fullscreen mode Exit fullscreen mode

Running the App

Terminal 1 (Server):

cd server && npm run dev
Enter fullscreen mode Exit fullscreen mode

Terminal 2 (Client):

cd client && npm run dev
Enter fullscreen mode Exit fullscreen mode

The app will be available at:

How It Works

  1. User enters a location
  2. Server searches for local ecosystem…

How I Built It

I built a stateless architecture using Node.js and React. The frontend uses a bold yellow design. The backend relies on an open-source pipeline.

  • SerpApi runs three concurrent web searches for wildlife, geology, and plant data.
  • The backend sends this data to the Groq API running the open-weight Llama 3.3 70B model.
  • The model writes a 300-word conversational script about the specific location.
  • The system passes the text to Transformers.js.
  • Transformers.js runs the Xenova/speecht5_tts model locally on the server to generate a WAV audio file.

The system returns the audio buffer to the frontend audio player. The process takes roughly 20 seconds.

Why Does Open Innovation Matter?

Open models made this project possible and affordable. The system generates high-quality text using Llama 3.3 without expensive proprietary fees. Transformers.js runs the text-to-speech conversion locally on the server. A closed text-to-speech API charges per character. The open-source model allows TrailTale to generate infinite audio for free. Developers can host this application anywhere and run the models directly on their own hardware. This keeps user location data private and reduces reliance on paid services.

Prize Categories

  • Best Use of SerpApi

Top comments (0)