// ==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 // @downloadURL https://update.greasyfork.icu/scripts/477198/myself-bbs_snipping.user.js // @updateURL https://update.greasyfork.icu/scripts/477198/myself-bbs_snipping.meta.js // ==/UserScript== const add_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); })();