Inspiration
The idea started with a simple question: when the same video appears on Instagram, TikTok, and YouTube, how can we figure out where it most likely came from?
At first, I thought video metadata would be enough. But while working on it, I realized how easily metadata can change or disappear when a video is downloaded, edited, compressed, or uploaded again.
That made me think that the answer shouldn't depend on just one thing. We needed to look at the video from different angles and combine the evidence.
That's how Video Origin Analyzer started.
What it does
Video Origin Analyzer investigates a video and tries to determine which platform it is most likely associated with: Instagram, TikTok, or YouTube.
It doesn't rely only on the video name or metadata. It analyzes multiple signals including:
- Video metadata and container information
- Video codecs and stream characteristics
- Audio characteristics
- File fingerprints
- Compression and re-encoding patterns
- Visual information
- OCR/text found in frames
- Online visual search results
- Public platform information
- Platform post dates and cross-platform timelines
One of the features I care about most is "Why did we reach this conclusion?"
Instead of just showing a platform and a confidence score, the app shows the evidence that contributed to the result. If the evidence conflicts or isn't strong enough, the app can also lower its confidence instead of pretending to know the answer.
How we built it
The application was built with Flutter so it can run on both Android and iOS.
The main video analysis is designed to be local-first. The video itself doesn't need to be uploaded to a server for the forensic analysis.
For online investigation, we use server-side APIs and Supabase Edge Functions. This also lets us keep API keys away from the mobile application.
We use visual search to find potentially related public pages, and when a relevant Instagram, TikTok, or YouTube URL is found, additional public platform information can be used as another piece of evidence.
The app also includes Firebase authentication, local analysis history, PDF reports, RevenueCat for the Pro version, and a formal/classic interface.
Challenges we ran into
The biggest challenge was accuracy.
There isn't one piece of information that can always tell us where a video originally came from. A video can be downloaded from one platform, edited, compressed, and uploaded somewhere else. Sometimes different platforms can have very similar versions of the same video.
Another challenge was making sure that online evidence didn't become the only thing the application trusted. We wanted the result to come from multiple signals rather than simply saying "Google found this first, so this must be the original."
We also had to deal with API limits, security, different platforms, and plenty of bugs during development.
Since I am building this with limited resources, keeping everything within free or very low-cost services was another challenge.
Accomplishments that we're proud of
I'm most proud that this went from an idea about reading video metadata into a complete working application with a much broader investigation system.
The "Why did we reach this conclusion?" feature is probably my favorite part because it makes the result understandable instead of giving the user a mysterious percentage.
I'm also proud of building the application as a cross-platform Flutter project, keeping the actual video analysis local-first, and integrating online investigation without exposing API keys inside the app.
Getting all of these different parts to work together was a much bigger challenge than I expected when I started.
What we learned
This project taught us that real-world detection is rarely about finding one perfect signal.
We learned how much information can be extracted from a video and how different signals can sometimes contradict each other.
We also learned a lot about Flutter, video analysis, OCR, visual search, Supabase Edge Functions, API security, Firebase authentication, RevenueCat, local storage, and building a larger application while continuously testing existing features.
Most importantly, we learned to treat uncertainty as part of the result. If the evidence isn't strong enough, it's better for the application to say that than to give a confident but unreliable answer.
What's next for Video Origin Analyzer
There are still many things we would like to improve.
The biggest one is accuracy. We want to improve how the application compares videos across platforms and how it handles cases where the same video has been heavily edited or re-encoded.
We also want to improve the visual and audio matching, make the timeline investigation more powerful, and eventually support more types of evidence.
For now, though, the main goal is to keep testing the application with difficult real-world videos and learn from the cases where it gets things wrong.
Video Origin Analyzer is still evolving, but this version is a strong starting point for something much bigger.
Built by Mahad and Mehdi Developers.
Built With
- api
- computer-vision
- cross-platform
- dart
- development
- firebase-authentication
- flutter
- google-lens
- image-processing
- ocr
- revenuecat
- serpapi
- supabase
- supabase-edge-functions
- video-analysis
- video-forensics
Log in or sign up for Devpost to join the conversation.