B站视频封面获取

B站视频播放页添加获取封面的按钮

As of 2020-01-23. See the latest version.

// ==UserScript==
// @id             BilibiliVideoCover@Laster2800
// @name           B站视频封面获取
// @version        1.0
// @namespace      laster2800
// @author         Laster2800
// @description    B站视频播放页添加获取封面的按钮
// @include        *://www.bilibili.com/video/*
// ==/UserScript==

(function() {
    var interval = 100
    var timeout = 5000
    var maxCnt = timeout / interval
    var cnt = 0
    var tid = setInterval(() => {
        var app = document.querySelector('#app')
        var vueLoad = app && app.__vue__
        if (++cnt > maxCnt) {
            clearInterval(tid)
        } else if (vueLoad) {
            clearInterval(tid)
            var atr = document.querySelector('#arc_toolbar_report')
            if (atr) {
                var coverMeta = document.querySelector('head meta[itemprop=image]')
                var coverUrl = coverMeta && coverMeta.content
                var cover = document.createElement('a')
                var errorMsg = '获取失败,若非网络问题请提供反馈'
                cover.innerText = '获取封面'
                cover.onclick = () => coverUrl ? window.open(coverUrl) : alert(errorMsg)
                cover.title = coverUrl || errorMsg
                cover.className = 'appeal-text'
                atr.appendChild(cover)
            }
        }
    }, interval)
})();