Dev.to AI 🤖 Ai 👁 0 📖 3 min read

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 Failed to 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 coverage says how much was transcribed.
  • Comments are not read on Bilibili yet.

For other platforms, see RedNote transcript and the Douyin transcript post.

📰 Read the original article on Dev.to AI

Originally published by Dev.to AI. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.