myself-bbs擷圖

"myself-bbs" 影片擷圖

// ==UserScript==
// @name         myself-bbs_snipping
// @name:zh-TW   myself-bbs擷圖
// @version      1.0.1
// @description  snip picture from "myself-bbs" video
// @description:zh-TW "myself-bbs" 影片擷圖
// @author       AndyTLemon
// @match        *://v.myself-bbs.com/player/*
// @match        *://myself-bbs.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=myself-bbs.com
// @grant        none
// @license      GPL-3.0-or-later
// @namespace https://greasyfork.org/users/1193722
// ==/UserScript==

const add_button = `<button style="cursor:pointer;" id="cap-button" class="vjs-control vjs-button" type="button"><svg version="1.1" viewBox="0 0 36 36" height="100%" width="100%" onclick="download_image()"><path id="screenshot" d="M 26.079999,10.02 H 22.878298 L 21.029999,8 h -6.06 l -1.8483,2.02 H 9.9200015 c -1.111,0 -2.02,0.909 -2.02,2.02 v 12.12 c 0,1.111 0.909,2.02 2.02,2.02 H 26.079999 c 1.111,0 2.019999,-0.909 2.019999,-2.02 V 12.04 c 0,-1.111 -0.909,-2.02 -2.019999,-2.02 z m 0,14.14 H 9.9200015 V 12.04 h 4.0904965 l 1.8483,-2.02 h 4.2824 l 1.8483,2.02 h 4.0905 z m -8.08,-11.11 c -2.7876,0 -5.05,2.2624 -5.05,5.05 0,2.7876 2.2624,5.05 5.05,5.05 2.7876,0 5.049999,-2.2624 5.049999,-5.05 0,-2.7876 -2.262399,-5.05 -5.049999,-5.05 z m 0,8.08 c -1.6665,0 -3.03,-1.3635 -3.03,-3.03 0,-1.6665 1.3635,-3.03 3.03,-3.03 1.6665,0 3.03,1.3635 3.03,3.03 0,1.6665 -1.3635,3.03 -3.03,3.03 z" fill="white"></path></svg></button>`

function image_filename(){
    //const animename = document.querySelector("#pt > div > a:nth-child(9)").textContent.replace(/【.*$/, "");
    let currentTime = new Date().getTime();
    return `${currentTime}.png`
}

function image_data(){
    const video = document.querySelector('video');
    const canvas = document.createElement('canvas');
    canvas.width = video.videoWidth;
    canvas.height = video.videoHeight;
    const context = canvas.getContext('2d');
    context.drawImage(video, 0, 0, canvas.width, canvas.height);
    return canvas.toDataURL();
}

function download_image() {
    const video = document.querySelector('video');
    const canvas = document.createElement('canvas');
    canvas.width = video.videoWidth;
    canvas.height = video.videoHeight;
    const context = canvas.getContext('2d');
    context.drawImage(video, 0, 0, canvas.width, canvas.height);

    canvas.toBlob(function(blob) {
        const link = document.createElement('a');
        link.href = URL.createObjectURL(blob);
        link.download = image_filename();
        document.body.appendChild(link);
        link.click();
        document.body.removeChild(link);
    }, 'image/png');
}

if (!window.download_image){
    window.download_image = download_image;
}

(function() {
    if (document.location.href.includes("://myself-bbs.com/")){
        return;
    }
    // 在指定元素後插入HTML
    var targetElement = document.querySelector("#my-video > div.vjs-control-bar > div.vjs-playback-rate.vjs-menu-button.vjs-menu-button-popup.vjs-control.vjs-button");
    targetElement.insertAdjacentHTML('beforebegin', add_button);

})();