如何在YouTube上找到频道RSS供稿?


13

YouTube正式支持频道RSS供稿,但是在查找供稿时面临着严峻的困难。至少在Thunderbird中无法使用频道URL。Firefox当前似乎无法检测到提要(过去曾经可以使用,但有时不可靠,有时需要刷新页面),而Google Chrome浏览器据我所知没有本机RSS支持。

一种方法可以手动创建供稿,但它可能不再起作用(channel-external-id似乎并不存在于所有渠道的源中,channel_id而是存在的):

  1. 查看页面的源代码
  2. 查找以下文本: channel-external-id
  3. 获取该元素的值
  4. 将该值替换为以下URL:

https://www.youtube.com/feeds/videos.xml?channel_id=UCBcRF18a7Qf58cCRy5xuWwQ

示例频道:https//www.youtube.com/user/SesameStreet/videos

Answers:


10

实际上,您所建议的正是RSS提要地址,尽管它与问题描述的过程有所不同,但搜索的正确字符串是externalId

带脚本

以下脚本将提取提要URL,并将其输出到控制台:

for (var arrScripts = document.getElementsByTagName('script'), i = 0; i < arrScripts.length; i++) {
    if (arrScripts[i].textContent.indexOf('externalId') != -1) {
        var channelId = arrScripts[i].textContent.match(/\"externalId\"\s*\:\s*\"(.*?)\"/)[1];
        var channelRss = 'https://www.youtube.com/feeds/videos.xml?channel_id=' + channelId;
        var channelTitle = document.title.match(/\(?\d*\)?\s?(.*?)\s\-\sYouTube/)[1];
        console.log('The rss feed of the channel \'' + channelTitle + '\' is:\n' + channelRss);
        break;
    }
}

结果:

The rss feed of the channel 'Sesame Street' is:
https://www.youtube.com/feeds/videos.xml?channel_id=UCoookXUzPciGrEZEXmh4Jjg

哪里保存

  1. 您可以将其用作用户脚本(例如,使用GreasemonkeyTampermonkey)。
  2. 您可以将其用作Bookmarklet
  3. 复制代码并将其粘贴到开发人员控制台中。

注意:如果选择选项12-,则将console.log命令替换为alert以获取弹出窗口而不是向控制台发送消息会更方便。


手动地

  1. 打开所需的YouTube频道页面。
  2. 打开该view-source页面的(以下一项):
    • Ctrl+ U
    • 右键单击-> View page source
    • view-source:在地址栏中添加到网址的开头。
  3. 搜索词 externalId
  4. 在此之后,将出现以下形式的随机代码(频道ID): UCoookXUzPciGrEZEXmh4Jjg
  5. 将您发现的代码添加为后缀https://www.youtube.com/feeds/videos.xml?channel_id=,现在这是该频道的RSS feed。

rssUrl不幸的是,并非每个频道的源中都存在,例如view-source:https://www.youtube.com/channel/UC0YagOInbZxj10gaWwb1Nag/view-source:https://www.youtube.com/channel/UCEBTfxJ13zkpZVbZTF3aukg
user598527

1
我会检查一下,并改善答案,谢谢
arieljannai

我找到了问题,今天晚些时候我将更新我的答案!
arieljannai

@ user598527更新:)
arieljannai

感谢您的更新。我无法使用标准方法(将代码拖动到书签工具栏)来安装小书签。根据我的经验javascript:,以开头的小书签至少对浏览器安装过程有帮助。
user598527

1

您提到的方法当前有效,但是仅在某些情况下,要查找的确切文本是data-channel-external-id,例如,它在IE11中有效。进入<channel-id>频道URL 很容易,它是这样组成的

https://www.youtube.com/channel/<channel-id>

无论如何,存在一种支持时间更长的方法,这反映了YouTube喜欢您订阅要通过RSS feed链接的频道这一事实。

如果您订阅了要查找RSS feed的频道,则可以在“ 管理订阅”页面中找到该频道,然后可以一直向下滚动,直到找到“以RSS阅读器导出”按钮:单击该按钮将允许您下载包含所有已订阅频道的频道名称和RSS feed的XML文件。

如果YouTube的显示方式有所变化,这些RSS提要将始终更新。


1

使用打开控制台F12并执行

window["ytInitialData"].metadata.channelMetadataRenderer.rssUrl

我得到的TypeError: window.ytInitialData.metadata is undefined 错误在Firefox上运行时。该命令应该在频道的所有页面上工作吗?
user598527

嗯,似乎并非所有页面都有效
goweon
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.