Project Info
This project did not submit a demo video on Devpost.
Inspiration
Videos are made to help people learn another language by injecting the learning into a popular foreign show.
What it does
Simply provide a video link in a foreign language. LinguaMedia will parse the content, extract meaningful words, generate subtitles and word bubbles, and help you practice newly learned vocabulary in a post-learning session and quiz section! As the user watches the video, LinguaMedia will parse it in real-time, generating subtitles and popping up keyword chat along the way. Once the video finishes, a review section will display detailed information about each vocabulary word, along with pronunciation audio. This will be followed by a quiz section to reinforce learning.
How we built it
The app front-end backend is built with Relex.dev The backend logic/task is modulized and chained with fetch.ai and uagent framework. Video transcription is captured using Python script. Transcripts are processed using the GROQ model to extract the meaningful vocabulary. Translation, Description, Pronunciation text, and Quiz content are generated with the Google Gemini model. Pronunciation Audio is generated with Cartesia API
Challenges we ran into
new framework and technology and documentations to read and learn
Accomplishments we're proud of
It works functionally, and the app has components.
What we learned
Modulize a process to break down big problems.
What's next
Fully link front-end and backend logics for full experience.
Analysis
View
Metric
- 13
- 4
- 1
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- PythonIn code
- Google GeminiClaimed
1 of 2 appear in the indexed code. 1 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
57 KB
Source files
13
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
we-dont-like-javascript/LinguMedia_pinguAI
17 files · 61 KB · @ db016ed
Structure
Application logic
12 files · 71%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- Python100%
- Markdown0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
requirements.txt
pypi · 8- cartesia
- ffmpeg-python
- google.generativeai
- python-dotenv
- reflex
- requests
- uagents
- websockets
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
Feature verification
Backend logic modularized/chained using fetch.ai uagents frameworkVerified
The backend logic/task is modularized and chained with fetch.ai and uagent framework
Claimed on Devposthigh confidenceagents/mainRunner.py:9— Defines uagents Agent instances (startUp, textToAudio) added to a Bureau and communicating via ctx.send messagesagents/flashcardGenerationAgent.py:34— flashCardGenAgent is a separate uagents Agent that message-passes to textToAudioAgent, showing chained agent modules
Frontend/backend built with Relex.dev (Reflex)Verified
The app front-end backend is built with Relex.dev
Claimed on Devposthigh confidenceLinguMedia_pinguAI/LinguMedia_pinguAI.py:3— Uses the reflex (rx) Python framework to define State and page componentsrxconfig.py— Reflex project config file present
Language selector (English/Mandarin) in UIVerified
Implied by 'foreign language' video support and language-specific processing
Claimed on readmemedium confidenceLinguMedia_pinguAI/LinguMedia_pinguAI.py:16— create_styling_select renders a dropdown with English and Mandarin (中文) options
Pronunciation audio generation via Cartesia APIVerified
Pronunciation Audio is generated with Cartesia API
Claimed on Devposthigh confidenceagents/cartesiaTextToSpeech.py:36— cartesiaTextToSpeech posts to the Cartesia TTS API and saves the resulting audio as a wav file
Word translation, description, and pronunciation text via Google GeminiVerified
Translation, Description, Pronunciation text, and Quiz content are generated with the Google Gemini model
Claimed on Devposthigh confidenceagents/geminiAccess.py:30— getDescriptionUseGemini calls Gemini with a system prompt requesting word, pronunciation, translation, description in JSON
Post-video vocabulary review section with pronunciation audioCode-supported
Once the video finishes, a review section displays detailed information about each vocabulary word along with pronunciation audio
Claimed on Devpostmedium confidenceagents/flashcardGenerationAgent.py:79— For each keyword, description/quiz data is generated via Gemini and audio is requested from the textToAudio agent, but there is no UI review section and the result is never persisted or returned (comments say 'save to database' and 'response' with no implementation)agents/textToAudioAgent.py:62— cartesiaTextToSpeech produces a pronunciation audio file for a given transcript
Quiz generation to reinforce learningCode-supported
This will be followed by a quiz section to reinforce learning
Claimed on Devpostmedium confidenceagents/geminiAccess.py:69— generateQuizUseGemini asks Gemini for synonyms/antonyms/random word JSON, but there is no quiz UI or scoring logic, only an empty styled box in the frontendLinguMedia_pinguAI/LinguMedia_pinguAI.py:122— Frontend only renders an empty placeholder 'Quiz Box' div with no quiz content wired in
Video URL input and playback UICode-supported
Simply provide a video link in a foreign language
Claimed on Devpostlow confidenceLinguMedia_pinguAI/LinguMedia_pinguAI.py:81— An input field and 'Link' button exist for entering a video URL, but the button has only a comment '# Handle Link to upload video here' with no handler implemented, and the adjacent 'Video Box' is an empty styled div with no video player or parsing logic
Full end-to-end linkage of front-end and back-endClaimed only
What's next for LinguaMedia: Fully link front-end and backend logics for full experience (implying it is not yet fully linked)
Claimed on Devposthigh confidenceReal-time subtitle and keyword 'word bubble' popup during video playbackClaimed only
As the user watches the video, LinguaMedia parses it in real-time, generating subtitles and popping up keyword chat/word bubbles
Claimed on Devposthigh confidenceVideo transcript/subtitle extraction from a video URLClaimed only
Provide a video link in a foreign language; LinguaMedia parses the content and generates subtitles in real-time (video transcription captured using a Python script)
Claimed on Devposthigh confidenceVocabulary/keyword extraction from transcript using GROQClaimed only
Transcripts are processed using the GROQ model to extract meaningful vocabulary
Claimed on Devposthigh confidence
An AI agent derived these features from the project’s Devpost page and readme, then searched the code for each one. Verified features are backed by cited code; claimed-only features had no supporting code, which is not by itself proof a feature is missing.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.