// ==UserScript== // @name 提取b站视频cc字幕内容(自行配合GPT) // @namespace http://tampermonkey.net/ // @version 0.1 // @description 一键复制视频字幕文本,可以配合GPT对视频进行总结 // @author Josh // @match https://www.bilibili.com/video/* // @icon https://www.google.com/s2/favicons?sz=64&domain=bilibili.com // @grant unsafeWindow // @grant GM_xmlhttpRequest // @grant GM_download // @grant GM_setClipboard // @license MIT // @downloadURL none // ==/UserScript== var currentCCText = ""; function createBtn() { const right = document.querySelector(".video-toolbar-right"); const btn = document.createElement("div"); btn.innerHTML = `
`; right.appendChild(btn); _setBtnCopyEvent(); } function createFailBtn() { const right = document.querySelector(".video-toolbar-right"); const btn = document.createElement("div"); btn.innerHTML = ` `; right.appendChild(btn); } function _setBtnCopyEvent() { const btn = document.querySelector("#fetchCCBtn"); btn.addEventListener("click", function () { GM_setClipboard(currentCCText); btn.innerText = "复制成功"; setTimeout(() => { btn.innerText = "复制视频字幕内容"; }, 2000); }); } function getSubtitleUrl() { return unsafeWindow.__INITIAL_STATE__.videoData.subtitle.list[0].subtitle_url; } function main() { try { GM_xmlhttpRequest({ method: "GET", url: getSubtitleUrl(), onload: function (res) { const data = JSON.parse(res.response); for (const e of data.body) { currentCCText += e.content + " "; } createBtn(); }, }); } catch (e) { createFailBtn(); } } setTimeout(main, 5000);