Skip to content

BandarLabs/gitpodcast

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f76770c Β· Mar 22, 2025
Jan 13, 2025
Mar 14, 2025
Dec 30, 2024
Jan 1, 2025
Mar 22, 2025
Dec 30, 2024
Dec 30, 2024
Dec 26, 2024
Dec 30, 2024
Jan 6, 2025
Jan 5, 2025
Dec 24, 2024
Dec 15, 2024
Jan 12, 2025
Dec 19, 2024
Mar 22, 2025
Mar 22, 2025
Dec 15, 2024
Dec 15, 2024
Dec 15, 2024
Dec 21, 2024
Dec 15, 2024

Repository files navigation

Start License

GitPodcast - Generate engaging podcast to understand a Github repo | Product Hunt

Image

GitPodcast

Turn any GitHub repository into an engaging podcast in seconds.

You can also replace hub with podcast in any Github URL to access its podcast.

πŸš€ Features

  • πŸ‘€ Instant Podcast: Convert any GitHub repository structure into a podcast
  • 🎨 Customization: Choose Voices (WIP)
  • ⚑ Fast Generation: Powered by OpenAI and Azure Speech SDK
  • 🌐 API Access: Public API available for integration (WIP)
  • πŸ’°Cost Effective: Free (via Gemini Flash + Azure Speech SDK)

βš™οΈ Tech Stack

  • Frontend: Next.js, TypeScript, Tailwind CSS, ShadCN
  • Backend: FastAPI, Python, Server Actions
  • Database: PostgreSQL (with Drizzle ORM)
  • AI: OpenAI 4o / Azure Speech
  • Deployment: Vercel (Frontend), EC2 (Backend)
  • CI/CD: GitHub Actions
  • Analytics: PostHog, Api-Analytics

πŸ› οΈ Self-hosting / Local Development

  1. Clone the repository
git clone https://github.com/BandarLabs/gitpodcast.git
cd gitpodcast
  1. Install dependencies
pnpm i
  1. Set up environment variables (create .env)
cp .env.example .env

Then edit the .env file with your OpenAI API key for SSML and Azure AI Speech Key for TTS (https://azure.microsoft.com/en-us/pricing/details/cognitive-services/speech-services/).

You can also use Gemini Flash for the SSML. You will need to change the code from OpenAIService to GeminiService.

  1. Run backend
docker-compose up --build -d

Logs available at docker-compose logs -f The FastAPI server will be available at localhost:8000

  1. Start local database
chmod +x start-database.sh
./start-database.sh

When prompted to generate a random password, input yes. The Postgres database will start in a container at localhost:5432

  1. Initialize the database schema
pnpm db:push

You can view and interact with the database using pnpm db:studio

  1. Run Frontend
pnpm dev

You can now access the website at localhost:3000 and edit the rate limits defined in backend/app/routers/generate.py in the generate function decorator.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Acknowledgements

Shoutout to [Romain Courtois/Ahmed Khalil]'s Gitingest and Gitdiagram for inspiration and styling

πŸ“ˆ Rate Limits

I am currently hosting it for free with the following rate limits. If you would like to bypass these, self-hosting instructions are provided. I also plan on adding an input for your own OpenAI API key.

Podcast generation:

  • 15 API calls/minute via Gemini Flash Exp. 2.0 for Github -> SSML
  • 0.5 million characters for SSML -> Speech (via Azure Speech Service)

πŸ€” Future Steps

  • Allow user to choose Voices
  • Remove dependence on Anthopic of token count
  • Allow user prompts