小K 发表于 7 天前

谷歌浏览器网页M3U8视频链接插件v1.1

https://www.xkwo.com/data/attachment/forum/202511/07/234810vkrorjkkc6cj2rk2.jpg


功能介绍
简单快速提取当前页面或全部页面的M3U8链接
支持显示抓取结果,格式为:标题,链接
支持复制所有结果,格式为:标题,链接,可用于m3u8批量下载软件的模板

关键代码:
    // 抓取当前页面M3U8链接
    currentPageBtn.addEventListener('click', async () => {
      setStatus('正在抓取当前页面链接...', true);

      try {
            // 获取当前活动标签页
            const = await chrome.tabs.query({ active: true, currentWindow: true });

            // 注入内容脚本并执行抓取
            const results = await chrome.scripting.executeScript({
                target: { tabId: tab.id },
                function: findM3U8Links
            });

                        // 结果 显示时去重
                        const m3u8Links = results.result;
                        ...

// 在页面中查找M3U8链接的函数
function findM3U8Links() {
    const m3u8Links = new Set();

    // 查找所有可能的M3U8链接来源
    const sources = [
      // 1. 查找<script>标签中的M3U8链接
      ...Array.from(document.scripts).map(script => script.innerHTML),

      // 2. 查找JSON数据
      ...Array.from(document.querySelectorAll('*')).map(el => el.innerHTML),

      // 3. 查找视频标签
      ...Array.from(document.querySelectorAll('video source')).map(source => source.src),

      // 4. 查找所有链接
      ...Array.from(document.querySelectorAll('a')).map(a => a.href)
    ];

    // M3U8链接正则表达式
    const m3u8Regex = /https?:\/\/[^\s"']+\.m3u8(?:\?[^\s"']*)?/gi;

    // 在所有来源中搜索M3U8链接
    sources.forEach(source => {
      if (typeof source === 'string') {
            const matches = source.match(m3u8Regex);
            if (matches) {
                matches.forEach(match => m3u8Links.add(match));
            }
      }
    });
      ...
复制代码附件下载
https://xiaok.lanzoum.com/iQeYf3ae66af
页: [1]
查看完整版本: 谷歌浏览器网页M3U8视频链接插件v1.1