YouTube Engagement Panel Text Extractor

提取并复制 ytd-engagement-panel-section-list-renderer 标签下的文本

目前为 2024-12-10 提交的版本。查看 最新版本

// ==UserScript==
// @name         YouTube Engagement Panel Text Extractor
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  提取并复制 ytd-engagement-panel-section-list-renderer 标签下的文本
// @author       您的名字
// @match        https://www.youtube.com/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // 创建两个按钮
    const button1 = document.createElement('button');
    button1.innerText = '提取文字';
    button1.style.position = 'fixed';
    button1.style.top = '10px';
    button1.style.left = '10px';
    
    const button2 = document.createElement('button');
    button2.innerText = '复制文字';
    button2.style.position = 'fixed';
    button2.style.top = '50px';
    button2.style.left = '10px';
    button2.disabled = true; // 初始状态下禁用复制按钮

    // 添加到页面
    document.body.appendChild(button1);
    document.body.appendChild(button2);

    let extractedText = '';

    // 按钮1点击事件 - 提取文字
    button1.addEventListener('click', () => {
        // 查找所有ytd-engagement-panel-section-list-renderer元素并提取其文本内容
        const elements = document.querySelectorAll('ytd-engagement-panel-section-list-renderer');
        extractedText = Array.from(elements).map(el => el.textContent.trim()).join('\n');
        
        console.log('已提取的文字:', extractedText); // 输出到控制台供调试
        
        // 启用复制按钮
        button2.disabled = false;
    });

    // 按钮2点击事件 - 复制文字
    button2.addEventListener('click', () => {
        if (extractedText) {
            navigator.clipboard.writeText(extractedText).then(() => {
                console.log('文本已复制到剪贴板');
                alert('文本已复制到剪贴板');
            }).catch(err => {
                console.error('无法复制文本: ', err);
            });
        }
    });
})();