Inspiration
I read a media feature about elderly people in China and their relationship with short‑video apps. The article collected real stories — parents spending money on health supplements bought through livestreams, many of which were unregulated products with no real efficacy. Their children knew these were scams, but couldn't stop their parents from buying because the sellers were so good at packaging trust.
Furthermore, there's a lot of talk about AI right now. Every company wants to say their product has something to do with AI. Phones are no exception — manufacturers have stopped calling them phones and started calling them "AI hardware." Every product launch now revolves around how powerful the new NPU is and what AI features it enables.
But the reality is that most of these AI features don't actually do anything useful. They're gimmicks dressed up as innovation. For the average person, the biggest real-world impact of the AI boom might just be that memory chips got more expensive, making electronics harder to afford.
That's what this project is about — I wanted to build something that shows what all that on-device AI computing power should actually be used for. Not another photo filter or voice assistant trick, but something that solves real problems. The hardware is already powerful enough. The software just needs to care about the right things.
What it does
Gravekeeper (守目人) is a fully offline Android app that monitors short‑video and livestream content in real time, identifies health‑product marketing, and lets you choose how to respond — either show a warning notification or automatically skip the video.
The app runs entirely on the device. No screenshots leave the phone, no data goes to any server. It uses an accessibility service to read the screen, then passes the content through a pipeline of on‑device ML models:
A vision model (MobileNetV3‑Small) analyzes each frame to detect marketing patterns, health‑related content, and whether the seller is targeting elderly audiences A text classifier processes OCR‑extracted text from the screen using character‑level n‑gram features A rule engine checks for price signals, shopping‑cart prompts, and other behavioral cues An 18‑feature fusion model combines all signals into a final risk score
The result is either a notification (“this video looks like health marketing”) or an automatic swipe‑up to skip, depending on the user’s settings. You can set different sensitivity levels per platform (Douyin vs Kuaishou) and per content type (short video vs livestream), and whitelist specific creators you trust.
How I built it
I am a high school student and I built the Android app in Java using Gradle, running Google LiteRT for on‑device inference and ML Kit for Chinese OCR. A self-build tool named ShortVideoCollector tool captured the screenshots. The vision model was trained in PyTorch and exported to LiteRT; the text classifiers use scikit‑learn’s HashingVectorizer with LogisticRegression quantized to INT8. All signals are merged by a StandardScaler feeding into another LogisticRegression that produces the final risk score. The vast majority of the codebase was written through AI assistance, without which completing a project of this scope and complexity in a short timeframe would not have been possible.
Challenges I ran into
The biggest challenge was UI design. I relied on AI coding assistants to build the entire frontend, and while the results were functional, keeping a consistent visual style across every screen of the app was surprisingly difficult. Every time one part of the UI was adjusted, something else would look off. AI can generate code that runs, but achieving a polished, cohesive design across a full application with multiple pages and control types required constant manual correction.
Accomplishments that I'm proud of
The most important thing is that it works completely offline. Not “works offline with a cloud fallback” — genuinely offline. The entire inference pipeline runs on the device. This was a hard constraint from day one because the whole point is protecting people’s privacy while protecting them from marketing.
What I learned
A team beats going solo. I did this project alone, but I had classmates who could have helped — especially during data collection, where more people labeling would have significantly improved both the dataset and the model accuracy. I just never asked.
I also learned that AI's ability to write frontend code is acceptable at best. It produces something that looks presentable on the surface, but pushing it beyond that — making it actually look good — still requires human judgment and manual work.
What's next for Gravekeeper
The main issue right now is that the model's accuracy is still not high enough. If I have time going forward, I want to focus on improving the recognition accuracy.
Deep thanks to api.uniprep.world for providing APIs.
Log in or sign up for Devpost to join the conversation.