title: 一次搞定 Podsync date: 2021-07-07 21:22:34 thumbnail: description: categories: tags:
前提条件
因为懂的都懂,我只覆盖获取 Youtube API、Podsync 的方法。
- 能连接 YouTube 的网络环境
- YouTube API
- 下载 Podsync 软件
创建 YouTube API
-
你需要准备一个 Google 账户用来访问 Google API Console 和申请 API 密钥。
-
登入 Google Cloud Platform,创建项目。
-
输入自定义项目名称,下文沿用
podsync-nozomi
为项目名称。地点选择默认「无组织」即可。 -
稍等十来秒,会收到项目创建完成的通知。刷新页面,左侧会出现新项目
podsync-nozomi
。 -
我们现在要为新创建的项目启用 YouTube 的 API。先点左上角汉堡菜单、API 与服务、信息中心
-
确认当前项目名称是刚刚新建的那个项目(e.g.
podsync-nozomi
)。然后,启用 API 与服务。 -
选择
YouTube Data API v3
,启用 API。 -
创建凭据
-
如图选择
YouTube Data API v3
、Public Data
(公开数据)。 -
复制密钥到电脑的备忘录,待会儿会用到。
创建 YouTube API 密钥完成。
下载 Podsync 软件包
从 GitHub/podsync 库,按照自己的系统和 CPU 架构 下载 最新版 releases 和 checksum.txt
。
利用命令行验证校验和,确认对上 checksum.txt
里对应的 SHA256 码(最后几位对得上即可),以此保证文件没有遭到篡改或遗漏。
macOS:shasum -a 256 /下载的/Podsync压缩包/路径
Windows:certutil -hashfile \\下载的\Podsync\压缩包\路径 SHA256
解压下载包到你希望的路径(例如我自己解压到了 /Downloads
路径)。
配置文件
Podsync 有个核心文件就是用户配置,由用户去撰写,根据自己的需求填写相应的选项。这份配置建议放在和下载包解压后的文件夹中。
里面包含了几个必要的信息:
- 服务器 IP 和端口
- YouTube API 密钥
- 需要抓取的目标频道
下图是一份配置文件样例,粉色框里的需要按照自己的需求修改他们。
[server]
data_dir
填写后希望放置下载音频的路径。我自己填的是 /Users/用户名/Downloads/Podsync_2.4.0_Darwin_x86_64
,与 Podsync 软件放在同一个文件夹中。
hostname
后填写 "http://IP:端口"
。这处填写的 IP 会直接影响到指向音频文件的 URL。
-
如果你只是需要在与服务器相同的局域网内聆听播客,可以填写局域网 IP
"http://192.168.xx.xx:8080"
,保持port
参数和hostname
里的端口一致。[server] port = 8080 hostname = "192.168.0.11:8080" -
要通过外网连接服务器,则需要填写公共 IP 和端口。你可以使用动态域名解决公共 IP 经常变更的问题。另外,还需在路由器上配置端口转发。
-
如果有反向代理和域名,则可以填写
http://域名:反代端口
,反代端口
和port
不必要保持一致。使用反向代理后,服务器实际上通过http://localhost:8080
访问,可是播客资源却是指向https://podcast.haysc.tech:4443
。[server] port = 8080 hostname = "https://podcast.haysc.tech:4443"
[tokens]
填写早前复制下来的 YouTube 密钥。
[feeds]
填写订阅源和播客信息。每一个频道信息以 [feeds.ID名]
作为开头 , ID名
可以自定为任何数字、英语组成的名字。为了方便记忆,最好和频道的名字相关。
以我最喜欢的 up 主贪玩歌姬「小宁子」为例子。up 主叫「小宁子」,可以取名 [feeds.ning]
。url 填写她的 YouTube 频道链接,update_period = "2h"
每两个小时抓取一次。custom
里填写播客在播客名称、描述、封面图。更多选项请看官网文档自行研究【这里要加链接】。
[feeds]
[feeds.ning]
url = "https://www.youtube.com/channel/UCvUJ6BwgUGWBHuUd0cv546g"
page_size = 50
update_period = "2h"
quality = "high"
format = "audio"
custom = { title = "小宁子", description = "贪玩歌姬小宁子 唱歌/游戏/Vlog", cover_art = "https://yt3.ggpht.com/ytc/AKedOLQLoOyjEkQSCND4ZOWkqo4uKrCsNfJsNdRx9jetUw=s176-c-k-c0x00ffffff-no-rj", cover_art_quality = "high"]}
opml = true
clean = { keep_last = 25 }
服务端
完成配置 config.toml
后,就能开始运行软件。
教程覆盖了三个平台。我顺带标注了我进行测试时所使用的系统版本。
- Windows 10 ( 21H1 下通过测试)【未完成】
- macOS Big Sur ( 11.0.1 下通过测试)【完成了☑️】
- Docker 【还没写】
Windows 10
【这里要写 Windows 的安装依赖的方法,应该是 choco 或者 winget???】
根据你服务器的系统,只需看相应的部分即可。可以参考我的 【链接】
macOS
Podsync 依赖 youtube-dl
和 ffmpeg
。用 brew 安装最简单(如果没有 brew,请按照 教程 安装)。
brew install youtube-dl ffmpeg
前往 Podsync 解压后的文件夹。
cd /填写/你的/podsync路径
在 Podsync 文件夹内,运行 ./podsync
软件。
./podsync --config config.toml
Docker
初步完成
这时,在浏览器打开你在 配置文件.config
- server
- hostname
填写的 IP 和端口。例如 http://192.168.0.11:8080
。
图中,XML 文件就是你需在播客 app 中填写 RSS 订阅链接文件。复制链接(e.g. http://192.168.0.11:8080/ning.xml
),打开你的播客软件,添加 RSS。
还有点小瑕疵——仅当播客收听终端与 podsync 服务器在同一局域网内,才能获得播客更新和下载。这是因为当时填写的是内网 IP(192.168.xx.xx / 10.x.x.x)。当你出门了,便无法在线流媒体收听了。曲线救国的方法是设置自动下载,大多播客 app 都有这功能。每天回到家才连接服务器更新播客、下载,早上出门则离线收听。坏处则是有大半天的延误,早上有 up 主更新了视频,晚上回到家才更新发现。
我认识有些朋友,对他们来说,这已经足够好用,不需要。那么这篇教程看到这里就已经足够了。
除此以外,一劳永逸的方法便是设立公网服务器,只要有互联网,便能随时收听。这方法则需要更多的网络知识和操作门槛。
公网访问
在设置之前,你需要有:
- 公网 IP