See how a GitHub repo's commit history is transformed into a documentary-style video using AI, LangChain, and Remotion, revealing contribution eras and character arcs.
Overview
GitFlix is an AI-powered developer tool that transforms any GitHub repository’s commit history into a cinematic documentary-style video narration.
For the demo, I’ll show a working system, you paste a GitHub repo URL, the backend ingests the full commit history via the GitHub API, an analytics engine detects contribution eras, character arcs, and hero commits, a LangChain agent generates a structured script and Remotion renders it into an actual video with scenes, narration and transitions. I’ll walk through the live app, the LangChain agent reasoning, and the architecture end to end.
Video
Transcript
Generated about 2 months ago
Summary
Generating a talk summary...
View full transcript
Speaker 0: It extracts the Day from your git GitHub and just creates a movie out of it. So let's have a URL. So there are 3 more, 3 types we can create APIs version app well as documentary and casual. So we'll just create a documentary. By the time it's creating okay.
Speaker 0: Stop and sharing again. Yeah. So by the time it's preparing the movie, let's have a look at the architecture structure. So first of all, what we did was we gave the repo URL, and we set the tone, which force this case was the documentary. And then we send it back to the back end.
Speaker 0: So back end has a generate and stream outputs app well as Scene tool how did I change it? Yeah. But I need to change it. T. T.
Speaker 0: T o. BITS okay. Right? Okay. So we have outputs as generation stream and as well as status.
Speaker 0: For in this case, we have also kept, in memory cache. Force example, within the 10 minutes, if some of the same repositories have been hit again, so we it won't process again. It will just show you up the results. So we have 3 sections, which is ingestion, analysis, and agent. Mid-session consists of the GitHub client, which actually talks to the GitHub using the GitHub, API key.
Speaker 0: Analytics is the 1 which we are actually using, which extracts all the Date, the main characters, hero, the chemist, and the ghost files, and the weekly City. And as well as the agent is 1 switch battery extracting all the datas, it file just scratch out of it and, yeah, using Grok API. The main reason I use Grok was because of its Scene, inference speed. So for all the base, we are using a schemas, which is which consists of commit Day, hero commits, script Scene, and the characters and the scene switch we build be making. For the front end, we have different scenes because we consist of 7 scenes in the movie, for the documentary, which is origin, the cast, which comprises of all the contributors, the rise where the, actually, the files, the contribute, the repository is AI up, The plot twist that actually changed the repository, the Zustand the hero commits, and the finale is the summarization.
Speaker 0: So it is all made, using Remotion. So Remotion is a tool which is build on TypeScript. We so yeah. I think the Cloud be ready. Yeah.
Speaker 0: So it's can just AI I should change the audio. AI think it's not it's not it's not it's not it's not Okay. Yes. AI a AI Signal part. So if you look at the code okay.
Speaker 0: AI like offline. APIs is the part of the code which we actually are using. So what I have did is first of all, we need to validate the URL which we are putting. So I just basically use a very basic Edge pattern, which is okay. It will start with HTTPS GitHub, and then we will be extracting the owner's name and the repos free, Remotion AI/ML.
Speaker 0: And the later on, we won't be extracting anything. Later on is, unnecessary values. So, yeah, that's the code for extracting. And, also, 1 of the main things which I have used is, AI set limit to only I've set limit only to 300 commits, but it mainly extracts the first 100 commits because GitHub, for the first 100 commits, it's easier to pull up Day for file correct and all. And after that, GitHub usually charges chat.
Speaker 0: And everything chat been, and that's a loop which you have used tool, detect the file changes, lines added, lines Date, and everything chat been stored to the contribution maps, which, consumer of the BITS, lines first, last commit, and the set of months. Then we come to the analyzing part to analyze how the Day were actually made. So yeah. So 1 of the main things which I used here was some amount of mathematics to determine the spike, detection. 1 of the, things was, the formula, I'll show.
Speaker 0: It's the mean plus 2, Intern standard generation. Agents, basically, we are finding the mean, the number of contributions. We are finding the mean of that, and then we are creating a standard deviation. So if some AI, so for the weeks to detect which were the Maps number of AI spikes, she just we are taking the weekly count. And if it's greater than Scene plus 2 Campus of the standard deviation, so that's the actual spike switch we are using.
Speaker 0: And, yeah, that's all the Date is how we are analyzing. And then coming to the director.py. This is where the scripts are Date. So first of all, we'll start with the origin chat will be comprised of 8 seconds. So these are some of the, basic values which would be started switch.
Speaker 0: The story begins with the first line. And then for the scene switch consists of the cast, which is all the contributors tool meet the people who build APIs. And then the third is the rise, which I, spoke Abdul, was the code base come AI. Then the plot twist, how everything changed in the code, the ghost towns, the files which were left behind. For the ghost towns, I've used a very heuristic value of 1 80 days.
Speaker 0: And, also, if, like, if some files are older than 1 80 days, that would be considered as ghost files. So, basically, the files which aren't being used in the code, and they just sit in the repository. And the hero moment is the 1 commit that changed everything. And, yeah, that's the final. That is how it was built.
Speaker 0: So, this is the tone which I have set, epic. What we watched was in the documentary mode, the casual. And, here are some of the prompts which I have already Live. No preambles, no labels, no intro. Narration should be and no technical identify, no parenthesis, brackets, Stack in the subtitles switch we are seeing and also in the script.
Speaker 0: No mention of music visuals, no dates, and also sound like a human using, not being an AI. Yeah. So those were some of the things which Chat build, and yeah. Thank you so much.
Speaker 1: Any questions? Yes.
Speaker 2: Yeah. Hi. Nice. Cool per-project. So I was just wondering, you know, while you were showing the the movie Yeah.
Speaker 2: Is it possible to do it on specific PRs, or is it the whole free for now?
Speaker 0: No. It's only for the whole repo.
Speaker 2: Yeah. Because I was you could have I mean, if you had, like, specific PRs, you could have done it for, like, the 1 PR. Right? Yeah. Maybe there'll be something cool maybe.
Speaker 0: Just That was also 1 of the teaching.
Speaker 2: Yeah. I AI tool like.
Speaker 3: Yeah. Alright. Is it mobile City repo size force
Speaker 2: No. I I don't know the like,
Speaker 3: does it affect free size, the Conversation?
Speaker 0: No. Yes. To some extent.
Speaker 1: Moving next. I'll do. What is being used to generate the Remotion video? Because Presenter, Event Charge GBD and Claude added the feature to generates Remotion video. So what are you using in the back end to generate the video?
Speaker 1: You didn't mention anything about chat?
Speaker 0: Yeah. Basic-auth, the Remotion, that's the AI tool switch I Mhate been using. So to show it up, it's in the front end.
Speaker 1: Oh, for that. Using the I mean, that's for the screen and the motion.
Speaker 0: These are some of the AI tools which I have used, using the Remotion. So it's basically how, it okay. So the yeah. That's the scene 1, how the scene 1 will Stack, then same for the costs, same for the AI, and, yeah, plot twist, ghost, everything. So this is basically a AI tool using like, Remotion uses TypeScript at the base.
Speaker 0: So this has been used, and this has been sending back to the back end to process the video and make it.
Speaker 1: So is it AI generates tool is it Yeah.
Speaker 0: It's some amount of templates. Like, for example, the Remotion is mainly used by all the content creators recently. It has fixed number of templates. So 1 template tool be created, then you can just give your videos and, yeah, you can get the videos out.
Speaker 1: Final question. Anyone? I don't ask that question.
Speaker 3: So if you go back to the AI ones. Okay. What are the 3, 4, what do I say, categories that we can select?
Speaker 0: Yeah. It's the 3 categories. 1 is APIs.
Speaker 3: Okay. So between these categories, what are the differentiators?
Speaker 0: Differentiators is basic-auth APIs is basically, main difference I would say is the type of sound, the music which Live choose. More or less, it's all Scene. And for the epic, you can see everything same. It's just the way of sharing, I would say, like, how the subtitles Date. It's Litmus different for
Speaker 3: it. BITS what is the business use case for that? Because, if, so chat is the maximum limit of video that it can generate? Limit. Chat is the, duration Maps?
Speaker 0: Duration is yeah. It's 2 minutes. 2 minutes? Less than 2 minutes. 1 1 minute 50 seconds.
Speaker 3: So, like, what is the, business, use case for this, though? Like, looking at a at a Date Menu things at 1 in just 1 scroll
Speaker 1: Yeah.
Speaker 3: Versus looking at this, video of 1 and a half minutes or
Speaker 0: 2 minutes. So, basically, it's AI, instead of looking at the repositories and understanding what the things are doing, you just can have a AI eye perspective of the repository, which makes you easier for how you start the things. Right? You first go through the summaries, then you Event go deep inside. So just it can be considered as a first step to analyze how repositories actually are Intern of you actually AI like, going through and understanding the things.