2 sentence tl;dr

We turn saved short-form videos (Reels, TikToks, Shorts) into a structured personal knowledge "second brain" of sorts. ReelsBot automatically transcribes, indexes, and semantically links your saves via a Telegram bot and interactive web dashboard so you never lose the value of what you scroll. Try now @ https://t.me/Reeeeeelssssbot

Inspiration

to put it simply, instagram's saved page is a graveyard. its a digital black hole where high-value ideas, tutorials, and insights go to die because there is zero searchability, zero actionability, and no structure (except for folders which aren't that great) passive scrolling consumes hours of our days, but retention is effectively zero.

What it does

ReelsBot is an ambient Telegram bot that acts as a second brain for short-form video.

For Users: Y you simply forward a Reel, Short, or TikTok to the bot. It automatically watches the video, transcribes the audio, generates structured summaries, extracts actionable to-dos, and maps the content into an interactive knowledge graph.

technical explanation: ReelsBot leverages Gemini's multimodal audio-visual understanding to parse and structure raw media payloads into a stateful, per-user knowledge engine. It runs a dual-pipeline: a ChromaDB vector store for dense semantic retrieval (RAG-based Q&A via /search and /ask) paired with a NetworkX topological graph using cosine similarity between embeddings to map the relationships between your saved memories.

i mean its a real pain to just open saved reels and see 100 scattered reels there, so i made this. you can try it out to organize your own saved reels sending the reel to the bot is super easy, just copy link then enter telegram and send it, 3 steps (i know, 2 steps too many, but for a v1 i'd take it)

i think it still reduces friction compared to a save button despite taking 2 more steps. because the process doesn't end at saving. the process is save, scroll through the graveyard, find the reel, use it. and scrolling through the saved pages might be like an extra 20 reels (so 20 steps) but doing /search [keyword] or /login and finding it takes like 1-3 steps

How we built it

Ingestion & Multimodal Analysis When a Reel URL is shared, the bot downloads the video via yt-dlp and passes the raw video file to Gemini 2.5 Flash. Gemini watches the actual video (not just a transcript), extracting summaries, topics, todos, preferences, and suggested collection categories as structured JSON.

Dual Memory Architecture The structured output feeds two systems simultaneously: ChromaDB for vector-based semantic search (enabling /ask and /search), and NetworkX for building a cosine-similarity graph that links related memories.

Web Dashboard A Flask backend serves an authenticated, per-user dashboard that renders the memory grid, collection sidebar, priority filters, and an interactive Pyvis knowledge graph accessible via a one-time magic link generated by /login in Telegram.

Challenges we ran into

i heard about this hackathon literally 2 hours before deadline I already had this and thought why not submit it (it was just a private project I made for myself)

pyvis's default behavior escaped HTML string titles, showing raw ""< b > "" tags. wrote a post-processing step that intercepts the generated HTML and converts node title strings into browser-native DOM elements before the vis.js network initializes.

emoji characters in print() statements caused UnicodeEncodeError crashes on Windows console (cp1252 encoding). Fixed by forcing PYTHONIOENCODING=utf-8 at runtime.

raw video payloads are large. so i implemented strict duration limits and immediate file cleanup after Gemini analysis to avoid disk bloat

Accomplishments that we're proud of

zero friction secure login with /login. /login generates a 15-minute, single-use cryptographically signed magic link so users can log into the web dashboard without any passwords.

the graph, and thinking of linking all the reels together via chroma db

watching randomly saved reels self-organize into a connected gold node map where "Stripe founder story" edges to "Paul Graham's do things that don't scale" edges to "bias to action" is actually satisfying and useful lol

What we learned

RAG is just better with a graph layer pairing ChromaDB vector retrieval with NetworkX relational linking creates a significantly more nuanced search experience than either alone. Gemini's native multimodal context window is actually great for real-time video understanding the structured JSON output quality is high even on messy, fast-paced short-form content.

shipping under time pressure forces radical prioritization having 2 hours to turn a messy repo you made for yourself into something presentable publicly is pretty stressful at least I made it good when I did make it, so it wasn't hard to make it public.

What's next for ReelsBot

hopefully in the future i can get reelsbot a instagram/tiktok account, and you can just send reels in app, like as if you'd send a friend. working on a weekly briefing, where it sends you a weekly brief of the stuff you saved that week

Rubric Breakdown (quick reference for judges)

Challenge-Solution Fit & Demand: Solves the core information-retrieval bottleneck of modern social media. While saving a video manually takes 1 step, retrieving it later among hundreds requires scrolling past an average of 20+ unrelated videos. ReelsBot cuts retrieval down to a 1-step /search command. Target audience is anyone who saves too many reels/tiktoks/shorts, finds it difficult to find specific videos at any given time.

AI Leverage: Far beyond a simple wrapper. A standard wrapper just prints LLM text outputs, but ReelsBot uses Gemini as a structural translator within a custom engineering pipeline. Gemini translates the audio-visual noise into a machine-readable JSON schema, and our backend independently routes that data into ChromaDB for vector search and NetworkX for topological graph mapping. The AI is simply an ingredient; the actual product is a standalone, deterministic database and visual dashboard architecture. Infact, the standard wrapper part is just /ask. a standard wrapper would end there.

Product Thinking: Complete end-to-end user loop featuring frictionless Telegram ingestion, robust RAG search, and a visual graph UI. I think it can evolve into a strong product simply because a) it's elegant simplicity for a massive problem. b) cost of ingesting the videos and indexing them is very low, so highly efficient unit economics (Which will only get better as AI gets better) c) the product exhibits strong data-hook mechanics. as a user saves more content, their knowledge graph grows denser and more interconnected, exponentially increasing the utility of semantic search and cross-topic mapping over time. d) low friction and actually saves you time. replaces manual, time-consuming scrolling through unindexed media with instantaneous, single-keyword algorithmic retrieval.

Evidence of Real Demand: I use it, friends use it, some friends' friends also use it. basically everyone uses social media, and on instagram, about 3-7% of a post's views are also saves. which means there's at least a tens of billions of saved reels. in general, lots of people save lots of reels. and they are mostly educational content, How-tos, tutorials, recommendation lists, recipes, workout routines.

this post from someone else has 8000+ real comments asking for a link to a solution that is similar but just doesn't have nearly as much functionality as reelsobt (this just transcribes captions of videos, not the actual video, no linking/any other features)

some extra notes

i think it can evolve into a strong product simply because a) cost of ingesting the videos and indexing them is very low b) network effects. the more reels you save, the more useful this is c) low friction and actually saves you time

any suggestions/feedback email me @ [email protected]
learnt about this hackathon 3 hours ago, might not have all the details in here, ask me anything!

update a day later: didnt realise i had to sign up at wavesparks.co, but it was fun shipping this in 3 hours anyways if you see this and the bot isn't responding, most likely what happened was more than 500 reels were sent to the bot in total since making it public

Built With

Share this project:

Updates

Submission history