Inspiration

Cooking enthusiasts often find themselves inspired by YouTube recipes but struggle with the manual task of pausing and transcribing ingredient lists. We wanted to bridge the gap between video inspiration and a structured shopping list, allowing chefs to focus on the craft of cooking rather than data entry.

What it does

Ingredio is a smart kitchen companion that takes a YouTube cooking video URL and automatically extracts a categorized list of ingredients. It utilizes AI to identify the dish, filter out conversational filler, and organize items into logical groups like Produce, Pantry, and Meat & Dairy for an optimized shopping experience.

How we built it

Backend: Developed a Python FastAPI server utilizing yt-dlp and youtube-transcript-api to fetch video metadata and captions.

AI Integration: Integrated Groq’s Llama 3 models to process raw transcripts into structured JSON data.

Mobile App: Built a native-ready Android application using Capacitor and Kotlin, featuring a custom MVVM architecture for the chat and extraction modules.

Infrastructure: Used adb reverse tunneling and CORS middleware to connect the mobile frontend to the local development server.

Challenges we ran into

Network Security: Overcoming Android’s strict "Cleartext" policies which initially blocked unencrypted HTTP traffic to the local server.

Dependency Chains: Resolving complex Python library conflicts involving webvtt and yt-dlp to ensure reliable transcript parsing.

API Integration: Debugging 422 errors by aligning FastAPI’s Pydantic models with the JSON payloads sent from the Android frontend.

Accomplishments that we're proud of

Robust Extraction Pipeline: Implementing a fallback system that can pull data from captions, video descriptions, or AI knowledge of the dish title.

Seamless Bridge: Successfully establishing a communication bridge between a local Python backend and an Android emulator via 10.0.2.2.

Pro-Mode Implementation: Creating a working "Gold Chef" subscription tier logic to demonstrate monetization potential.

What we learned

Android Security: The critical importance of android:usesCleartextTraffic in the Android Manifest for development environments.

Data Modeling: How to use Pydantic and TypeScript interfaces to maintain type safety across the entire stack.

Production Deployment: The necessity of CORSMiddleware and environment variable management when moving an app from a local environment to a live web URL.

What's next for Ingredio

The application is only working within replit I plan to make it such that it can work on web and an app.

Built With

  • replit
Share this project:

Updates