JimmyLv/BibiGPT-v1: self-hosting the one-click summary tool for Bilibili and YouTube
BibiGPT v1 · one-Click AI Summary for Audio/Video & Chat with Learning Content: Bilibili | YouTube | Tweet丨TikTok丨Dropbox丨Google Drive丨Local files | Websites丨Podcasts | Meetings | Lectures, etc. 音视频内容 AI 一键总结 & 对话:哔哩哔哩丨YouTube丨推特丨小红书丨抖音丨快手丨百度网盘丨阿里云盘丨网页丨播客丨会议丨本地文件等 (原 BiliGPT 省流神器 & AI课代表)
At a glance
- What is it?
- BibiGPT-v1 is the open source first version of BibiGPT, a Next.js app that pulls a Bilibili or YouTube video's content, sends it to an OpenAI-compatible API, and streams back a summary. This article covers what it does, how to run it locally or in Docker, and where it stops being the right choice.
- Who is it for?
- Adopt BibiGPT-v1 if you want a readable Next.js reference for streaming AI summaries and you accept that the hosted product at bibigpt.co has moved well past this repo. Do not adopt it if you need the many platforms the marketing copy lists, because the README states this repository only supports Bilibili and YouTube.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 135 days ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What BibiGPT-v1 actually is, and who it is for
BibiGPT-v1 is the first version of BibiGPT, published under GPL-3.0 and written in TypeScript. The README opens with a blunt constraint: "This repo is only for v1 and supports Bilibil and YouTube!" Everything else in the project description, from TikTok to podcasts to meetings to Google Drive, belongs to the hosted product at bibigpt.co, not to this codebase. The repository name carries the v1 suffix for a reason, and the homepage points elsewhere.
The intended user is a developer who wants a working example of a streaming AI summarizer rather than a finished product. The app is a Next.js project with pages, components, hooks, lib and utils directories at the top level, plus Sentry configuration files for client, edge and server. If you are evaluating it as an end-user tool, the browser extension and the hosted site are the paths the README actually recommends. If you are evaluating it as source code to learn from or fork, this is the right artefact.
The project credits three prior works as inspiration: Nutlope/news-summarizer, zhengbangbo/chat-simplifier and lxfater/BilibiliSummary. That lineage is visible in the shape of the code: a summarizer that fetches remote content, builds a prompt, and streams tokens back to a React front end.
The data flow: fetch, prompt, stream, cache
The README's How it works section is short but specific. The project uses the AI SDK OpenAI-compatible provider with Vercel Edge functions for streaming, plus Upstash for Redis cache and rate limiting. The sequence it describes is: fetch the content of a Bilibili video, send it in a prompt to an OpenAI-compatible API, then stream the response back to the application.
Two design choices follow from that. First, the OpenAI-compatible provider means the summarization endpoint is not hardwired to OpenAI's own service; any API that speaks the same interface can sit behind it. Second, Upstash appears twice in the stack, once for Redis cache and once for rate limiting, which tells you the author expected public traffic and repeated requests for the same video. The README's Saving costs section makes the same point as advice: implement rate limiting so people cannot abuse your site, implement caching to avoid expensive AI re-generations.
The third cost suggestion is a model choice, and it is dated. The README recommends using text-curie-001 instead of text-dacinci-003 in the summarize edge function. Those are older OpenAI completion model names, and the typo in dacinci is in the original. Treat that line as historical context for how the author thought about cost, not as a configuration you should copy today.
Installing BibiGPT-v1 and running a first summary
The README's Running Locally section is minimal. After cloning the repo, it says to go to OpenAI, make an account, and put your API key in a file called .env. It then says the app will be available at http://localhost:3000. For anything beyond that, it defers to a separate document, deploy-ch.md, described as the Chinese version of the specific running procedure.
The repository ships .example.env at the top level, and the Deployment section says to set up the env variables by following that file. The README does not enumerate the keys, so open .example.env and fill in the ones your setup needs. Then start the dev server:
npm run devThe package.json confirms this script maps to next dev. The README states the app is then available at http://localhost:3000. Open that address, paste a Bilibili or YouTube URL, and you should see the summary stream in rather than appear all at once, which is the behaviour the edge function streaming is there to produce. If nothing streams, the two things to check are your API key and, for anything beyond a single local request, your Upstash credentials, since the README lists Upstash as part of the stack.
There is also a Docker path. The docker-compose.yml defines two services and asks you to choose one: bibigpt, built from Dockerfile and mapped to port 3000, and bibigpt-dev, built from dev.Dockerfile and mapped to port 3002 on the host, reading .env via env_file. The README gives the command:
# make sure setup .env file firstly
docker compose up -dNote the warning in the Dockerfile header: the image will include your .env file, so do not publicly share your Docker image. The build also strips Sentry by default through an IS_USED_SENTRY build argument set to 0, using sed to comment out the Sentry wrapper in next.config.js. Set it to 1 if you want Sentry in the image.
Where BibiGPT-v1 fails or is the wrong tool
The largest limitation is stated by the project itself. The README says the repo is only for v1 and supports Bilibili and YouTube. The description lists TikTok, Twitter, Xiaohongshu, Douyin, Kuaishou, Baidu Netdisk, Aliyun Drive, web pages, podcasts, meetings and local files. Those are not in this repository. If your requirement is summarising a local audio file or a Google Drive recording, this code does not do it, and no amount of configuration will add it.
A second issue is version skew. The most recent releases listed are v2.38.0, v2.37.0 and v2.36.0, all dated 2023-07-02. The last push to the repository was on 2026-05-04, so the repository has seen activity long after its last tagged release. Anyone treating the release list as the state of the code will be working from a three-year-old signal. The README's own cost advice, with text-curie-001 and text-dacinci-003, is from the same era and no longer matches current model naming.
Third, the operational surface is not free. The README is explicit that projects like this can get expensive, and it recommends rate limiting and caching precisely because AI re-generations cost money. Running this locally for yourself is cheap; running it publicly without the Upstash rate limiter in front is not. The README does not document rollback, migration or upgrade procedures, and it does not describe what happens when the upstream video page changes its markup. Content fetching from a platform you do not control is the kind of dependency that breaks quietly.
How it compares to rolling your own summarizer
The obvious alternative is not another product but the underlying pieces used directly. The AI SDK OpenAI-compatible provider, Vercel Edge functions, Upstash Redis and rate limiting are all general-purpose components. A team that only needs to summarise one fixed source could write a small edge function that fetches the transcript, calls the provider, and streams the result, and skip the Next.js front end, the Supabase auth helpers, the Radix UI component set and the Sentry wiring entirely.
The difference is in what you inherit. BibiGPT-v1 gives you a complete application: pages, components, hooks, a Dockerfile and a compose file, a deploy-ch.md walkthrough in Chinese, and a package.json that pins React 18.2.0 and Next 16. What it does not give you is a library. There is no published package to import; adoption means forking a GPL-3.0 application. If your goal is to embed summarisation into an existing product, the general-purpose components are a better fit than this repository. If your goal is a working site you can stand up and modify, the assembled app saves you the integration work.
The licence difference matters here too. GPL-3.0 is copyleft. If you distribute a modified version of this application, the licence terms apply to that distribution. The repository includes LICENSE.txt at the top level, and the README does not discuss commercial licensing. That is a question for your own legal review, not something this article can settle.
Maintenance cost, licensing and what the repo tracks
The repository is not archived, and its last push was on 2026-05-04. That is a fact about the repository, not a statement about how actively it is developed. The released tags stop in July 2023, so the gap between tagged releases and repository activity is wide, and you should read CHANGELOG.md rather than the release list if you want to know what changed recently.
The dependency list is heavy and current, which cuts both ways. Next is pinned at ^16.1.6, React at 18.2.0, and the AI SDK packages at ^6.0.116 and ^2.0.35. A fork inherits all of that upgrade surface, including Supabase auth helpers, Sentry, Segment analytics, Lemon Squeezy, and a long list of Radix UI primitives. The husky prepare script and the lint-staged configuration mean a fresh npm install runs husky install, which will fail in environments without git hooks support.
On licence: GPL-3.0 governs the code in this repository. The README does not state any exception, dual licensing or commercial grant. If you plan to distribute a modified BibiGPT-v1, the copyleft obligations travel with it. For private internal use the practical difference is smaller, but that is a judgement for your legal team, and nothing in the repository substitutes for it.
Editorial conclusion
Adopt BibiGPT-v1 if you want a readable Next.js reference for streaming AI summaries and you accept that the hosted product at bibigpt.co has moved well past this repo. Do not adopt it if you need the many platforms the marketing copy lists, because the README states this repository only supports Bilibili and YouTube. Verify first that your OpenAI-compatible endpoint and Upstash credentials work, then run npm run dev and confirm a summary streams for one video before wiring anything else.
Frequently asked questions
Which video platforms does BibiGPT-v1 support?
The README states plainly that this repository is only for v1 and supports Bilibili and YouTube. The longer list of platforms in the project description belongs to the hosted product at bibigpt.co, not to this code.
How do I run BibiGPT-v1 locally?
Clone the repository, put your OpenAI API key in a file called .env, then run npm run dev. The README says the app will be available at http://localhost:3000.
Can I run BibiGPT-v1 with Docker?
Yes. The docker-compose.yml defines a production service on port 3000 and a development service on host port 3002, and the README gives docker compose up -d as the command after you set up .env. The Dockerfile warns that the built image includes your .env file, so do not share the image publicly.
Does BibiGPT-v1 require an OpenAI API key?
The README's Running Locally section tells you to create an OpenAI account and put your API key in .env. The How it works section describes sending the prompt to an OpenAI-compatible API, so the key is required for summarization to function.
Why does BibiGPT-v1 need Upstash?
The README lists Upstash for Redis cache and rate limiting, and its Saving costs section recommends both to avoid expensive AI re-generations and abuse. Without them, repeated requests for the same video hit the model again.
What licence is BibiGPT-v1 released under?
The repository is licensed GPL-3.0, with LICENSE.txt at the top level. The README does not mention any dual licence or commercial exception, so a distributed fork carries the copyleft terms.
Community notes