Inspiration
Short clips and social posts often remove the context that changes how a statement should be understood. Viewers rarely have time to find the original recording, locate the matching moment, or verify factual claims. We built ContextLens to make that process fast, transparent, and accessible.
What it does
ContextLens supports two complementary workflows:
- Video context recovery — Upload a short clip and its original video. ContextLens transcribes both, finds the matching passage, shows the precise timestamps, and presents what was said before, during, and after the clip. Optional Gemini insights highlight evidence-based context flags without changing the deterministic match result.
- Instagram Reel fact-checking — Paste a public Reel URL. ContextLens retrieves and transcribes the Reel, identifies factual claims with timestamps, and reviews selected claims using grounded evidence and citations. Predictions, opinions, financial advice, guaranteed-return language, and unreviewed claims remain clearly separated.
Results are shareable through stable URLs, and the interface is responsive for desktop and mobile.
A high transcript similarity score does not mean the short clip accurately represents the speaker's message. ContextLens separates word matching from contextual interpretation, helping users recognize when real words may create a misleading impression.
How we built it
The frontend is a React + Vite application deployed on Vercel. The backend uses AWS API Gateway, Lambda container workers, S3 presigned uploads, DynamoDB, SQS, CloudWatch, FFmpeg, and Faster-Whisper running with CPU int8. Gemini provides optional contextual insights and grounded claim reviews, while the API key remains server-side in AWS Secrets Manager.
The asynchronous architecture lets uploads finish quickly while workers perform transcription and analysis in the background. The frontend polls job status and renders completed results using backward-compatible API contracts.
Challenges we ran into
Our biggest challenges were packaging FFmpeg and Faster-Whisper for an AMD64 Lambda container from an Apple Silicon Mac, keeping processing reliable within Lambda limits, securely configuring Gemini, handling CORS across Vercel, API Gateway, and S3, and making uploaded videos playable from shared result pages.
Instagram retrieval also required careful error handling because public Reels can still be restricted by availability, rate limits, or platform changes. We kept manual video comparison as a reliable core workflow and designed AI analysis to be non-blocking.
Accomplishments that we're proud of
- Deployed two functioning AWS analysis pipelines end to end.
- Preserved a deterministic video-matching algorithm while adding optional AI context.
- Produced timestamped, citation-backed Reel claim reviews.
- Made comparison results and their videos shareable.
- Built a polished responsive experience with clear loading, failure, partial-review, and evidence states.
- Kept secrets out of the frontend, repository, logs, and API responses.
What we learned
We learned how to design asynchronous media-processing systems on AWS, package ML workloads in Lambda containers, combine deterministic analysis with generative AI safely, and communicate uncertainty rather than presenting AI output as unquestionable truth.
What's next for ContextLens
Next, we would improve retrieval reliability, expand evidence-source ranking, add richer media provenance signals, optimize transcription latency, and support more social platforms while preserving clear citations and human-readable limitations.
Built With
- amazon-web-services
- docker
- dynamodb
- ffmpeg
- gemini
- javascript
- lambda
- python
- react
- s3
- sqs
- vercel
Log in or sign up for Devpost to join the conversation.