WordPress 引用 Bilibili.tv 视频方法更新

update:现在 bilibili 官方已提供分享链接功能,这篇文章已经过时。

从业产品经理一年有余,虽非主业,前端知识也多少了解了下。今天发现有人评论老文章《吉原哀歌 外一篇( WordPress 引用 Bilibili.tv 视频方法)》,反映开启 Adblock 以后会有错位现象。这个我当时也是知道的,使用<iframe>也确属无奈,但在当时而言没有什么好办法,就在 Adblock 给自己的博客加了白名单。

现在再回过头来简单看了一下,发现有更简单的办法,不知道是 Bilibili 更新还是当时看不懂,总之…… 先 Test 一下。

Test 通过

——————

讲方法,一句话:

1
<embed src"http://static.hdslb.com/miniloader.swf?aid=337840&page=1" width="569px" height="440px"></embed>

其中 337840 为视频地址中数字代码,也就是视频 id。从浏览器地址栏就可以得到。bilibili-video-url-example

Bilibili 的播放器原始分辨率大小为 569*440,等比例可选大小为 620*480 或者 640*495。比如我博客就是 640 像素宽的。

——————

讲过程,也是一句话:

在页面原代码里搜索 .swf 就发现了以下代码——

1
<div itemprop="video" itemscope itemtype="http://schema.org/VideoObject" style="display:none"><meta itemprop="name" property="media:title" content="【96猫】吉原哀歌" /><span property="media:type" content="application/x-shockwave-flash" /><meta itemprop="duration" content="T3M56S" /><meta itemprop="thumbnailUrl" rel="media:thumbnail" content="http://i0.hdslb.com/user/1330/133076/1345197165138bc03361556fb3.jpg" /><meta itemprop="embedURL" content="http://static.hdslb.com/miniloader.swf?aid=337840&page=1" /><meta itemprop="uploadDate" content="2012-08-17T17:52" /></div>

其中有效的其实也就是

1
"http://static.hdslb.com/miniloader.swf?aid=337840&page=1"

这一句了。static.hdslb.com 很明显是静态资源的 CDN 服务器域名,后面自然就是参数了。那么 aid 就是视频 id,page 猜想可能是合集第二页吧,试了一下,果然。http://www.bilibili.tv/video/av672893/index_2.html

于是直接<embed> 到网页原代码里就可以执行了。Wordpress 会自动把它整理成更符合规范的代码,不用管了。

以上,大功告成。

——————–

更新:

使用 <embed> 嵌入 Flash 视频是因为我博客有自动转码,如果你没有,以下是真正的完整代码:

1
<object width="569px" height="440px" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://static.hdslb.com/miniloader.swf?aid=337840&page=1" /><embed width="569px" height="440px" type="application/x-shockwave-flash" src="http://static.hdslb.com/miniloader.swf?aid=337840&page=1" /></object>

——————–
更新

Bilibili 作了少量调整,现在即使非合集/剧集的孤立视频,也必须添加 &page=1 参数了。