从 Youtube 在线频道获取所有视频标题和链接 (URL)【20260702亲测有效】
最近想要汇总某个油管博主的视频标题和链接到表格中,但是找了一圈都没有可用的
但是在下面的文章找到了,但是已失效,所以自己直接借用教程内容,然后用ai按照自己的要求写一份,于是有了本文。
注意:采集类的代码都有时效性,使用时注意甄别,当前测试有效时间为2026-07-02 12:07
虽然没有内置工具可以从 YouTube 频道下载视频链接、标题和观看次数的完整列表,但您可以通过浏览器控制台使用一些解决方法。方法如下:
重要提示:此方法最适合较小的通道。包含数千个视频的频道加载速度可能会很慢。

指示
- 前往 YouTube 频道:导航至所需的 YouTube 频道页面,如:https://www.youtube.com/@你喜欢的博主ID/videos。
- 打开视频选项卡:单击“视频”选项卡可加载频道的视频列表。
- 检查元素:右键单击页面上的任意位置,然后选择“检查”或“检查元素”(选项可能会根据您的浏览器而有所不同)。这将打开开发人员工具。您也可以按 F12 按钮。
- 控制台选项卡:切换到开发人员工具中的“控制台”选项卡。
- 滚动代码(粘贴并执行):将以下代码粘贴到控制台并按 Enter:

var scroll = setInterval(function(){ window.scrollBy(0, 1000)}, 1000);
注意:您可能会收到以下错误:
警告:请勿将您不理解或未亲自检查的代码粘贴到 DevTools 控制台中。这可能会让攻击者窃取您的身份或控制您的计算机。请在下面输入“允许粘贴”并按 Enter 键以允许粘贴。

如果你明白了,按照说明进行操作以允许粘贴。
此代码将使页面自动向下滚动,显示更多视频。
计算机硬件

- 停止滚动:所有视频加载后,粘贴下一个代码并按 Enter 键:
window.clearInterval(scroll); console.clear();
- 自动采集并复制到粘贴板:控制台将显示视频标题列表、其链接。复制到粘贴板,并且已经适配excel。
(async () => { // 1. 获取所有指定类名的元素 const elements = Array.from(document.querySelectorAll('.ytLockupMetadataViewModelTitle')); if (elements.length === 0) { console.log('⚠️ 未找到符合条件的元素'); return; } // 2. 获取每个元素的视觉坐标信息 const itemsWithCoords = elements.map(el => { const rect = el.getBoundingClientRect(); return { element: el, top: rect.top, left: rect.left, // 用于排序的复合键:先按行(top),再按列(left) // 考虑到可能的微小误差,可以引入一个行高阈值,但通常直接比较 top 即可 }; }); // 3. 按照“从上到下,从左到右”排序 // 首先比较 top 坐标(行),如果 top 非常接近(视为同一行),则比较 left 坐标(列) const rowThreshold = 10; // 像素阈值,认为在此范围内的元素属于同一行 itemsWithCoords.sort((a, b) => { // 如果垂直距离小于阈值,视为同一行,按水平位置排序 if (Math.abs(a.top - b.top) < rowThreshold) { return a.left - b.left; } // 否则按垂直位置排序 return a.top - b.top; }); // 4. 提取数据并格式化 const rows = itemsWithCoords.map(item => { const el = item.element; // 确保是链接 if (el.tagName !== 'A') return null; // 获取标题 let title = (el.innerText || el.getAttribute('aria-label') || '').trim(); // 清理换行符,防止破坏 Excel 行结构 title = title.replace(/[\r\n]+/g, ' ').replace(/\s+/g, ' '); const url = el.href; if (!title) title = '无标题'; return `${title}\t${url}`; }).filter(row => row !== null); // 过滤掉非链接元素 const count = rows.length; const excelContent = rows.join('\n'); if (count === 0) { console.log('⚠️ 未找到有效的超链接'); return; } // 5. 复制到剪贴板 try { await navigator.clipboard.writeText(excelContent); console.log(`✅ 已按视觉顺序复制 ${count} 条数据到剪贴板。`); console.log('📊 统计数量:' + count); console.log('💡 提示:数据已按“从上到下、从左到右”排序,可直接粘贴至 Excel。'); } catch (err) { // 降级处理 const textarea = document.createElement('textarea'); textarea.value = excelContent; document.body.appendChild(textarea); textarea.select(); try { document.execCommand('copy'); console.log(`✅ (兼容模式) 已复制 ${count} 条数据。`); console.log('📊 统计数量:' + count); } catch (e) { console.error('❌ 复制失败'); console.log(excelContent); console.log('📊 统计数量:' + count); } document.body.removeChild(textarea); } })();
- 粘贴到电子表格中:将结果粘贴到 Excel 或 Google Sheets 等电子表格程序中,以便于排序和查看。
表示例
复制的数据可以排列在表格中以便更好地分析:
| 标题 | 网址 |
| 视频标题 1 | https://www.youtube.com/watch?v=…… |
| 视频标题 2 | https://www.youtube.com/watch?v=…… |
| …… | …… |
版权声明:
作者:John
链接:https://vps.la/2026/07/02/%e4%bb%8e-youtube-%e5%9c%a8%e7%ba%bf%e9%a2%91%e9%81%93%e8%8e%b7%e5%8f%96%e6%89%80%e6%9c%89%e8%a7%86%e9%a2%91%e6%a0%87%e9%a2%98%e5%92%8c%e9%93%be%e6%8e%a5-url%e3%80%9020260702%e4%ba%b2%e6%b5%8b/
文章版权归作者所有,未经允许请勿转载。
THE END





