使用 Dev Tool Console 中的 JavaScript 片段从 HTML 获取 YouTube 播放列表标题和频道名称

Getting YouTube Playlist Titles and Channel Names from HTML using a JavaScript snippet in Dev Tool Console

我想要 YouTube 播放列表的标题和频道名称以供备份。我在网上找到了这个片段,它完成了一半的工作,使用 Dev Tools 中的 JavaScript 从播放列表页面的 HTML 中提取信息。

console.log(Array.from(document.querySelectorAll('.ytd-playlist-video-list-renderer #video-title')).map((el) => {return el.textContent.trim()}).sort().join("\n"))

这会过滤掉所有视频的标题,我可以将其复制到文本文件中。问题是我希望频道名称也包含在每个条目中,但我不知道该怎么做。

目前看起来是这样的:

[视频标题 1]

[视频标题 2]

...

我希望它看起来像这样:

[频道名称 1] 的[视频标题 1]

[频道名称 2] 的[视频标题 2]

...

有谁知道如何修改代码片段来实现这一点?

这里有一个包含 16 个视频的样本播放列表来测试:https://www.youtube.com/playlist?list=PLTHOlLMWEwVy2ZNmdrwRlRlVfZ8fiR_ms

我不熟悉您发布的 javascript 代码的结构,但是,如果您有兴趣,可以试试下面的代码:

// Videos in playlist: 
vidsInPlaylist = document.querySelectorAll(".style-scope ytd-playlist-video-renderer");

// Loop videos in playlist: 
for (var i = 0; i < vidsInPlaylist.length; i++) {
   // Print video title and channel name: 
   console.log(vidsInPlaylist[i].__templateInfo.nodeList[6].innerText + " by " + vidsInPlaylist[i].__templateInfo.nodeList[7].innerText)
}

以您的 YouTube 播放列表为例,结果如下:

SNOWBOARDING WITH THE NYPD by CaseyNeistat
Make It Count by CaseyNeistat
DO WHAT YOU CAN'T by CaseyNeistat
Bike Lanes by Casey Neistat by CaseyNeistat
what would you do with ,000? by CaseyNeistat
the surprise in South Africa by Casey Neistat by CaseyNeistat
Bike Thief 2012 by CaseyNeistat
Travel With Style - Casey Neistat for J.Crew by CaseyNeistat
Crazy German Water Park by CaseyNeistat
The Dark Side of the iPhone 5S Lines by CaseyNeistat
A Love Story 8 Years in the Making by CaseyNeistat
Black Market Takes Over the iPhone 6 Lines by CaseyNeistat
Life Explained in 27 Seconds by CaseyNeistat
The Devil's Pool by CaseyNeistat
Draw My Life - Casey Neistat by CaseyNeistat
Snowboarding New York City by CaseyNeistat