Bilibili transcript: get the transcript of a Bilibili video from its link, with or without CC subtitles
Short answer: most Bilibili (B站) videos have no subtitle file you can download, and the subtitles you do see are often burned into the picture. ChatGPT cannot watch a Bilibili link, and a script on a server is usually re
Short answer: most Bilibili (B站) videos have no subtitle file you can download, and the subtitles you do see are often burned into the picture. ChatGPT cannot watch a Bilibili link, and a script on a server is usually refused before it reads anything. To get a transcript, paste the video link or a b23.tv short link into LinkDigest: it transcribes the speech into timed segments, reads the text on screen, and returns both as JSON or Markdown. No Bilibili account, no cookies. Sign-up comes with 10 free credits.
Disclosure: LinkDigest is the author's own service. The run below was made on 2026-11-04. Originally published at linkdigest.dev.
Why the usual routes come back empty
- No subtitle track. Many uploaders add no CC subtitles, so there is nothing to download. What you see on screen is often part of the video image, so it is pixels, not text.
-
Bilibili refuses servers. Its risk control answers
HTTP 412 Precondition Failedto requests from datacenter addresses. That includes yt-dlp's Bilibili extractor and any fetch from a cloud function, so they get nothing. - Chatbots can't play video. Pasting the link into ChatGPT gets you a guess from the title, not what was said.
LinkDigest reads the video through the embed player Bilibili publishes for other websites, renders it in a browser, transcribes the audio and reads the frames. It does not need a subtitle track: a video without CC subtitles reads the same as one with them.
One real run
The link was b23.tv/Oieigam, a 4-minute-5-second vlog, read fresh on 2026-11-04:
| Time | 69 seconds from submit to done |
| Cost | 6 credits (1 for the video plus 1 per started minute) |
| Transcript | 17 timed segments, 710 characters, from 0:00 to 3:53 |
| On-screen text | 13 timed pieces: the title card and the subtitles burned into the frames |
| Key points | 10, each with a quote; 9 quotes found word for word in the transcript or on screen |
| Video data | Title, uploader, date, 11 tags, and like / favourite / comment / share counts at read time |
| Not read | The cover image and the comments, both listed in coverage.not_captured
|
One call
curl -X POST https://linkdigest.dev/api/v1/digest \
-H "Authorization: Bearer ld_live_..." \
-H "Content-Type: application/json" \
-d '{"url": "https://b23.tv/...", "depth": "transcript", "format": "json"}'
depth: "transcript" returns the speech and the on-screen text and nothing else, at 1 credit plus 1 per started two minutes: 4 credits for the video above. depth: "script" is the speech alone, 1 credit per started two minutes (3 for this video). Leave depth out for everything in the table above.
What comes back
| Field | What it holds |
|---|---|
transcript[] |
{t, text} segments, t in seconds from the start |
on_screen[] |
Text read from the frames, with the time it appears |
title, author, posted_at, tags
|
The video as posted |
stats |
Likes, favourites, comments and shares as of the read |
key_points[], key_point_support[]
|
Takeaways, each tied to a quote and whether it was found |
coverage |
Seconds transcribed and anything not read, so a partial read is never silent |
Ask for format: "markdown" and the same arrives as a page you can paste into a document or a prompt. Add translate_to: "en" to get the transcript in English alongside the Chinese, for 1 more credit.
From an agent
In Claude Code, Cursor or any MCP client, add https://linkdigest.dev/mcp with your key and ask for the transcript of the link; the tool is digest_url. Dify has a plugin. The Bilibili platform page has the setup, and the API docs the full response.
Limits, said plainly
- A private, deleted or still-under-review video returns a clear error and costs nothing.
- When Bilibili refuses every route at once, the read fails with a retry hint and costs nothing; it is not your link.
- Speech recognition is Mandarin-first. Heavy dialect or music over the speech lowers accuracy, and
coveragesays how much was transcribed. - Comments are not read on Bilibili yet.
For other platforms, see RedNote transcript and the Douyin transcript post.
Originally published by Dev.to AI. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.