← Back to blog

How to Record a Bilibili Live Stream in Chrome

Bilibili Live broadcasts use FLV instead of HLS and disappear immediately when the host ends. Here's how to record one as a usable MP4 in Chrome — accounting for Bilibili's specific quirks.

Bilibili (B站) is China’s largest live streaming and video community, with millions of nightly live broadcasts ranging from VTuber streams to esports tournaments to study-with-me sessions. Like TikTok Lives, Bilibili Lives evaporate when the host ends them — there’s no automatic VOD archive for most broadcasts. If you want to keep one, recording while it’s live is the only option.

What makes Bilibili Lives different from Twitch or Kick: Bilibili serves Lives via FLV (Flash Video) and HTTP-FLV, not HLS. This is a leftover from the Flash era that Bilibili kept for low-latency reasons. Most browser-based recorders are built for HLS and choke on FLV. This guide explains the quirks and how to record cleanly.

Why Bilibili uses FLV instead of HLS

The technical reason: FLV/HTTP-FLV has roughly 1-second end-to-end latency. HLS, with its segment-based delivery and need for the player to buffer 2-3 segments, typically has 6-10 seconds of latency. For interactive Lives (Q&A, gaming, music performances), 1-second latency makes audience interaction feel real-time; 6-10 seconds makes it feel like a delay.

Bilibili also offers an HLS fallback (.m3u8) for older devices and the iOS Safari web player, but the primary delivery is FLV. If your recorder only understands HLS, it might miss the broadcast entirely or fall back to the lower-quality m3u8 variant.

What you need

  • Chrome (or any Chromium-based browser — Edge, Brave, Opera)
  • An HLS+FLV-aware recorder. Video Downloader One-for-All supports both.
  • A Bilibili account (optional for most Lives, required for sub-only / guard-level content)

Lives that require a “船员” (boat crew, Bilibili’s subscription tier) need you to be logged in with an active subscription. Access control happens at the stream-URL fetch layer; if the browser can play it, the recorder can capture it.

Step-by-step

1. Open the live broadcast

Navigate to the Live URL — usually live.bilibili.com/<room-id>. Don’t confuse the Live URL with a video URL (bilibili.com/video/BV...). Videos are recorded broadcasts that already exist as VODs — download those normally.

If the room shows 未开播 (“Not broadcasting”), there’s nothing to record. Lives only exist while the host is actively streaming.

2. Pick your quality

Bilibili’s quality menu in the player has options like 原画 (Source), 蓝光 (Blu-ray, typically 4M+ bitrate), 超清 (Ultra HD, 1080p), 高清 (HD, 720p), 流畅 (Smooth, 480p).

Pin to 原画 (Source) before recording if you have the bandwidth — Auto can drop to lower variants during the recording and you’d capture the dropped quality.

Note: not every Bilibili streamer broadcasts at Source quality. Smaller channels max out at 1080p or even 720p. Whatever the top option in the dropdown is, that’s the source.

3. Start the recording

Click the extension icon. The popup should show the Bilibili stream with a LIVE label.

Hit Record. The recorder fetches the FLV stream and writes segments to disk as they arrive. CPU usage stays at ~1% — no transcoding, just bit copying.

4. Stop or let it auto-finalize

Open the popup, click Stop when done. The MP4 (or FLV depending on the recorder) gets finalized.

If the host ends the broadcast first, the connection drops, and the recorder finalizes automatically.

Bilibili-specific gotchas

Region availability

Some Bilibili Lives are region-locked (mainland China only, or excluded from mainland China). The access check happens before the stream URL is even returned to the browser. If you can play the Live in your region, you can record it. If you can’t play it, no recorder can.

Quality switches mid-stream cause discontinuities

If you change the quality dropdown during a recording, Bilibili switches you to a new stream URL. A naive recorder loses the connection and stops; a good one detects the URL change and continues.

Just pick your quality before starting and leave it alone.

Long broadcasts and FLV file size

FLV has no upper limit on duration, but very long files (>4 hours) can hit filesystem boundaries on some setups. If you’re recording a 6+ hour broadcast (a 24-hour subathon, a long study-with-me session), the recorder should automatically split into multiple files at, say, 4-hour boundaries.

If your recorder doesn’t auto-split, the resulting file may be unplayable above a certain size. Test with a short recording first if you’re planning a long session.

Chat (弹幕) isn’t captured

Bilibili’s signature feature — danmaku flying across the screen — is a separate WebSocket data stream. Stream recorders capture video and audio. Danmaku is overlaid client-side and not in the FLV stream.

If you want to preserve the danmaku experience:

  • Use a specialized Bilibili recorder like BililiveRecorder (open source, captures both stream and danmaku)
  • Or accept that the recording is just video+audio

For most “I want to keep this broadcast” use cases, video+audio is enough.

The pre-stream “waiting room” sometimes blocks recording

Bilibili shows a 等待中 (“waiting”) graphic before the actual broadcast starts. Some recorders pick up the waiting-room stream by mistake, record 30 seconds of static, and stop. Wait until the host’s actual video shows in the player before clicking Record.

What FLV vs HLS means for the output file

Bilibili Lives are FLV streams. Your saved file will be either:

  • .flv if your recorder saves the raw container — universally playable by VLC, MPV, ffplay, and most modern players. Not all default Mac/Windows players support FLV (QuickTime won’t open it; Windows Media Player won’t).
  • .mp4 if your recorder remuxes FLV to MP4 — same video and audio data, just repackaged. Plays everywhere QuickTime / Windows Media Player play.

If you plan to share recordings with friends who use QuickTime or Windows Media Player, prefer a recorder that outputs MP4. If you only watch in VLC, FLV is fine and saves the remuxing time.

Bottom line

Bilibili Lives are FLV streams, not HLS. Most “Twitch recorder” type tools won’t work on them. With an FLV-aware recorder (Video Downloader One-for-All or similar), the workflow is identical to Twitch/Kick: open the room, pin source quality, click Record, click Stop. The output is a clean video+audio file at the broadcast’s full source quality, completely independent of whether Bilibili archives the broadcast later (it usually doesn’t).