Discourse Bilibili Onebox

AI-generated summary

scavin introduces the Discourse Bilibili Onebox plugin, which allows users to embed and play Bilibili videos and live streams directly in Discourse posts by pasting URLs. The plugin requires adding specific Bilibili domains to the Allowed iframes setting. While standard video embedding works well, qi_lu inquires about supporting other Chinese platforms like Xiaohongshu and Douyin. scavin explains that embedding is only possible if the platform officially allows iframe playback, noting that neither Xiaohongshu nor Douyin currently support this.

Regarding live streams, qi_lu reports that pasting live stream URLs does not generate a preview, and manual iframe code results in sizing issues. In response, scavin updates the plugin to support live streams via a specific commit. Later, 祁同伟 reports that videos fail to load, but scavin attributes this to an outdated plugin version and provides a working example. Finally, Noble_Fish notes a bug where links with page parameters (e.g., ?p=2) always play the first page. scavin confirms this bug has been fixed and advises rebuilding the plugin to apply the update.

:information_source: Summary Discourse Bilibili Onebox is a plugin that allows Discourse communities to directly play Bilibili videos and live streams.
:hammer_and_wrench: Repository Link GitHub - scavin/discourse-bilibili-onebox: Discourse Bilibili Onebox · GitHub
:open_book: Install Guide How to install plugins in Discourse

Features

Simply paste a Bilibili video or live stream URL on its own line in the editor to automatically embed and play it. Autoplay is disabled.

DEMO

Settings

You need to add the following two entries to the Allowed iframes setting:

  • https://player.bilibili.com/
  • https://www.bilibili.com/
  • https://live.bilibili.com/ (FOR live streams)

Usage

Paste a Bilibili URL on its own line inside the composer. Links copied from the mobile share dialog also work.

Examples:

  • https://www.bilibili.com/video/BV1WEgJzMEK3/?spm_id_from=333.1387.homepage.video_card.click
  • https://www.bilibili.com/video/BV1WEgJzMEK3/?spm_id_from=333.1387.homepage.video_card.click&vd_source=b0a719e1950c150a97859195679d417a
  • https://www.bilibili.com/video/BV1WEgJzMEK3/
  • https://www.bilibili.com/video/BV1WEgJzMEK3
  • https://b23.tv/hiS7rgR

For live streams:

  • https://live.bilibili.com/1977907487
3 Likes

Very useful.
May I ask if it’s possible to develop media embedding plugins for other platforms? For example, commonly used Chinese video platforms like Xiaohongshu and Douyin. :handshake:

1 Like

It can only be played if the official source allows iframe playback. You say neither of these is allowed.

3 Likes

Normal video testing is fine; links can be displayed when inserted, but it seems the live broadcast room cannot.
No web links in the live broadcast room can be previewed.

The only viable option in the live broadcast room is the iframe embed code. However, the size is not quite right, and parameter modification is not taking effect.

<iframe style="width: 700px;height: 400px;" src="https://www.bilibili.com/blackboard/live/live-activity-player.html?cid=8178490&quality=0" frameborder="no"    framespacing="0" scrolling="no" allow="autoplay; encrypted-media" allowfullscreen="true"></iframe>

Test image:

Can Bilibili live broadcast rooms support link insertion or embed code adaptation to page size?

Live stream updated

1 Like

For some reason, the video won’t load.

This is the actual usage effect from 7 days ago, with no issues reported:

Plugin version: 1.3 aeb2ff4

1 Like

Does it not add support for playing a specific part of a video? For example, I found in testing that even if the link has /?&p=2, it still plays the content of p1.

Hi, this bug has been fixed. A rebuild is required to complete the update.

2 Likes