将 YouTube 订阅导出为 OPML 并通过 RSS 观看

主要观点:作者将 500 多个 YouTube 订阅导出为 OPML 文件以便导入 RSS 阅读器 Feedbin,详细介绍了生成 OPML 的过程及后续在不同设备上观看视频的设置等,还提到了未来工作如让 Feedbin 过滤 YouTube Shorts 及桌面使用的相关事宜。

关键信息:

  • 之前是 YouTube Premium 订阅者,后取消,在 Android 平板用 NewPipe 或真实电脑通过 Invidious 看视频。
  • 为在 NewPipe 导入订阅需使用 Google Takeout 中的subscriptions.csv文件,但新订阅在不同设备间不同步,遂想在 Feedbin 管理订阅。
  • 生成 OPML 过程:通过 JavaScript 生成订阅频道的 JSON 数组,再转换为subscriptions.json文件,然后生成subscriptions.curl配置文件用于curl下载每个频道页面的 HTML,接着用脚本generate-json-opml从 HTML 中提取频道 ID 和标题并生成 JSON 文件,最后用 Python 将所有 JSON 文件转为 OPML 文件。
  • 在 Android 平板上设置 FeedMe 应用与 NewPipe 集成,可通过 FeedMe 中的 NewPipe 按钮观看视频。
  • 未来工作包括让 Feedbin 过滤 YouTube Shorts,已通过media_duration搜索项实现,还可设置小的重定向应用或浏览器插件来在桌面打开 Invidious 上的视频。

重要细节:

  • subscriptions.json生成:通过查询页面获取所有频道链接 URL,去重后转为数组并过滤掉一些链接,最后转为漂亮打印的 JSON 并复制到剪贴板。
  • subscriptions.curl生成:使用jaqsubscriptions.json中生成配置文件,每行包含频道页面 URL 和输出文件名。
  • generate-json-opml脚本:通过awk获取频道名称,用scraper提取 HTML 中的og:urlog:title获取频道 ID 和标题,生成 JSON 文件并写入json目录。
  • Python 生成 OPML:使用 ElementTree 库生成 OPML 结构,为每个 JSON 文件生成outline条目,缩进并输出到 stdout。
  • FeedMe 集成设置:在 FeedMe 应用设置中启用 NewPipe 集成,点击可在 NewPipe 中打开视频。
  • Feedbin Shorts 过滤:通过media_duration搜索项设置过滤小于 90 秒的 YouTube 项目。
  • 桌面使用:在 Feedbin 网页应用中可通过自定义分享集成打开视频,需将 YouTube 视频 URL 重定向到 Invidious 实例 URL,可设置重定向应用或浏览器插件。
阅读 14
0 条评论