您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Concatenate Youtube Transcript
当前为
// ==UserScript== // @name Concatenate Transcript // @namespace jwang0614.top/script // @version 0.1 // @description Concatenate Youtube Transcript // @author Olivia // @match https://www.youtube.com/watch?v=* // @require http://code.jquery.com/jquery-1.11.1.min.js // @grant none // ==/UserScript== $(document).ready(function(){ UI(); }) function UI() { console.log("UI"); var $title_container = $("#title-container"); var $style = $('<style>'+ '#download_btn{color:green;font-size:20px;margin:10px auto;}' +'</style>'); var $download_btn = $('<button id="download_btn">Download Transcript</button>'); $title_container.append($style); $title_container.append($download_btn); $("#download_btn").click(function(){ var divs = document.querySelectorAll("ytd-transcript-body-renderer div.ytd-transcript-body-renderer[role='button']"); var text = ""; for(var i= 0; i < divs.length; i++){ text = text + divs[i].innerText + " " } var filename = $("title").text() + " - Transcript.txt" // add // before line 38 if you don't want to save concatenated transcript into a file download(text, filename, "text"); // add // before lines 41-45 if you don't want to save concatenated transcript to clipboard navigator.clipboard.writeText(text).then(function() { console.log('Async: Copying to clipboard was successful!'); }, function(err) { console.error('Async: Could not copy text: ', err); }); }) } function download(data, filename, type) { var file = new Blob([data], {type: type, charset: "utf-8"}); if (window.navigator.msSaveOrOpenBlob) { // IE10+ window.navigator.msSaveOrOpenBlob(file, filename); } else { // Others var a = document.createElement("a"), url = URL.createObjectURL(file); a.href = url; a.download = filename; document.body.appendChild(a); a.click(); setTimeout(function() { document.body.removeChild(a); window.URL.revokeObjectURL(url); }, 0); } }