// ==UserScript== // @name YoutubePostsCopy // @namespace http://tampermonkey.net/ // @version 2025-06-28 // @description copy yutube posts // @author 2402398917 // @match https://www.youtube.com/*/posts // @icon https://www.google.com/s2/favicons?sz=64&domain=youtube.com // @require https://scriptcat.org/lib/2847/3.0.1/ElementGetter%20%E6%B0%B4%E6%9E%9C%E7%8E%89%E7%B1%B3%20%E9%AD%94%E6%94%B9%E7%89%88.js // ==/UserScript== (function() { 'use strict'; elmGetter.each('ytd-backstage-post-thread-renderer', (el) => { let text = el.querySelector('#content-text').innerText; let buttonEl = document.createElement('button'); buttonEl.innerText = "copy"; buttonEl.onclick = async () => { const result = await cornCopyText(text); const showText = "success"; if (!result) { showText = "fail"; } buttonEl.innerText = showText; setTimeout(() => { buttonEl.innerText = "copy"; }, 1000); } let toolbarEl = el.querySelector('#toolbar'); toolbarEl.appendChild(buttonEl); }); })(); async function cornCopyText(text) { try { await navigator.clipboard.writeText(text); return true; } catch (err) { return false; } }