主要观点:作者将 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
生成:使用jaq
从subscriptions.json
中生成配置文件,每行包含频道页面 URL 和输出文件名。generate-json-opml
脚本:通过awk
获取频道名称,用scraper
提取 HTML 中的og:url
和og: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,可设置重定向应用或浏览器插件。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。