飞书妙记-下载字幕和txt

让你更加便捷地下载飞书妙记生成的字幕文件和txt文件.

// ==UserScript==
// @name         飞书妙记-下载字幕和txt
// @namespace    http://tampermonkey.net/
// @version      2024-02-22
// @description  让你更加便捷地下载飞书妙记生成的字幕文件和txt文件.
// @author       You
// @match        https://*.feishu.cn/minutes/*
// @icon         http://feishu.cn/favicon.ico
// @grant        none
// ==/UserScript==

(function () {
    'use strict';

    var forceDownload = function (blob, filename) {
        var a = document.createElement('a');
        a.download = filename;
        a.href = blob;
        a.click();
    }

    let format_map = {
        '2': '.txt',
        '3': '.srt'
    };

    var downloadRes = function (sid, filename, format) {
        fetch(`https://${location.host}/minutes/api/export?_t=${new Date().getTime()}`, {
            "headers": {
                "accept": "application/json, text/plain, */*",
                "accept-language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
                "bv-csrf-token": "850d44eb-1a84-432b-9de1-b34f715f9d25",
                "cache-control": "no-cache",
                "content-type": "application/x-www-form-urlencoded",
                "device-id": "7338560823671504898",
                "platform": "web",
                "pragma": "no-cache",
                "sec-ch-ua": "\"Not_A Brand\";v=\"8\", \"Chromium\";v=\"120\", \"Microsoft Edge\";v=\"120\"",
                "sec-ch-ua-mobile": "?0",
                "sec-ch-ua-platform": "\"Windows\"",
                "sec-fetch-dest": "empty",
                "sec-fetch-mode": "cors",
                "sec-fetch-site": "same-origin",
                "utc-bias": "480",
                "x-lgw-os-type": "1",
                "x-lgw-terminal-type": "2",
                "cookie": `${document.cookie}`,
                "Referer": `${location.href}`,
                "Referrer-Policy": "strict-origin-when-cross-origin"
            },
            "body": `add_speaker=false&add_timestamp=false&format=${format}&is_fluent=false&language=zh_cn&object_token=${sid}&translate_lang=default`,
            "method": "POST"
        })
        .then(response => response.blob())
        .then(blob => {
            let blobUrl = window.URL.createObjectURL(blob);
            let download_name = filename + format_map[format];
            forceDownload(blobUrl, download_name);
        })
        .catch(e => console.error(e));

        // .then(response => response.text())
        //  .then(data => console.log(data));
    };

    if (location.href.includes('/me')) {
        window.onload = function () {
            // 你的代码放在这里,会在页面加载完成后执行
            console.log("页面已完全加载");
            let videos = document.querySelectorAll("#app > div > div.mm-layout > div.mm-content-outside > div.mm-content > div.list-table > div > div > a > div");

            for (var i = 0; i < videos.length; i++) {

                let parentDiv = videos[i];
                var children = parentDiv.children;
                var newDiv = document.createElement('div');

                let sid = parentDiv.parentElement.href.split('minutes/')[1];
                let filename = parentDiv.children[0].children[1].querySelector('.content').innerText;

                var button_txt = document.createElement('button');
                button_txt.style.backgroundColor = 'blue';
                button_txt.style.color = 'white'; // 设置字体颜色为白色
                button_txt.style.fontSize = '14px';
                button_txt.textContent = '下载文本';
                button_txt.onclick = function (e) {
                    e.stopPropagation();
                    e.preventDefault(); // 阻止默认行为
                    downloadRes(sid, filename, '2');
                }

                var button_srt = document.createElement('button');
                button_srt.style.backgroundColor = 'red';
                button_srt.style.color = 'white'; // 设置字体颜色为白色
                button_srt.style.fontSize = '14px';
                button_srt.textContent = '下载字幕';
                button_srt.onclick = function (e) {
                    e.stopPropagation();
                    e.preventDefault(); // 阻止默认行为
                    downloadRes(sid, filename, '3');
                }

                newDiv.appendChild(button_txt);
                newDiv.appendChild(button_srt);

                var penultimateChild = children[children.length - 2];
                // 在倒数第二个子元素之前插入新div
                parentDiv.insertBefore(newDiv, penultimateChild.nextSibling);
            }
        };

        return;
    }

    let sid = location.href.split('minutes/')[1];
    console.log(`sid:${sid}`);

    // Create a floating button
    var button_txt = document.createElement('button');
    button_txt.style.position = 'fixed';
    button_txt.style.top = '78px';
    button_txt.style.right = '20px';
    button_txt.style.backgroundColor = 'blue';
    button_txt.style.color = 'white'; // 设置字体颜色为白色
    button_txt.style.fontSize = '14px';
    button_txt.textContent = '下载文本';
    document.body.appendChild(button_txt);

    // Add click event listener to the button
    button_txt.addEventListener('click', function () {
        let filename = document.querySelector("div.larkw-web-header-caption-head-title-edit-text.larkw-web-header-caption-head-title-edit-text-allow-edit > span").innerText;
        downloadRes(sid, filename, '2');
    });

    var button_srt = document.createElement('button');
    button_srt.style.position = 'fixed';
    button_srt.style.top = '100px';
    button_srt.style.right = '20px';
    button_srt.style.backgroundColor = 'red';
    button_srt.style.color = 'white'; // 设置字体颜色为白色
    button_srt.style.fontSize = '14px';
    button_srt.textContent = '下载字幕';
    document.body.appendChild(button_srt);

    // Add click event listener to the button
    button_srt.addEventListener('click', function () {
        let filename = document.querySelector("div.larkw-web-header-caption-head-title-edit-text.larkw-web-header-caption-head-title-edit-text-allow-edit > span").innerText;
        downloadRes(sid, filename, '3');
    });

})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址