#podcast #episode #downloaded #download #control #file #podcatcher

app cringecast

简单的命令行播客下载器

7个版本

0.1.6 2024年3月27日
0.1.5 2024年3月27日

#3 in #downloaded

每月下载 24次

MIT 许可证

23KB
498

CringeCast

简单的命令行播客下载器。

https://github.com/TBS1996/CringeCast/assets/56874491/ca3b08e0-b509-44a2-a214-5b7c20a0f609

为什么叫这个名字?

我遇到了一些问题,这让我决定编写这个程序。

  1. 文件名不合适。

我用syncthing将内容同步到我的手机上,然后在那里使用普通的音频播放器。文件名通常很难理解,所以我想要一个可以将文件名重命名为剧集标题的播客下载器。

  1. 更好地控制要下载的剧集。使用其他应用程序时,他们总是让我下载整个目录或一些任意数量的剧集。这很烦人。当我添加一个新的播客时,我通常只想下载过去的一些剧集,然后从那里开始跟进。所以在这个程序中,可以很容易地设置一个全局默认值,指定剧集可以有多老,并且可以针对每个播客进行覆盖。

  2. 避免数据库。我不喜欢在简单的终端程序中使用数据库。其他程序通常使用数据库来保存已经下载的剧集。我的方法是使用一个简单的文本文件 ".downloaded",该文件保存已下载剧集的GUID列表。这意味着如果你移动文件或删除它们,它们将不会被重新下载,除非你删除 ".downloaded" 文件或其中的一些行。

如何安装?

目前你需要安装rust。你可以执行 cargo install cringecast 或克隆仓库并运行它。

如何配置它?

全局配置位于: ~/.config/cringecast/config.toml

你将你的播客放入此文件: ~/.config/cringecast/podcasts.toml

示例 podcasts.toml

[freakonomics]
url="https://feeds.simplecast.com/Y8lFbOT4"

[aftenpodden]
url="https://podcast.stream.schibsted.media/ap/100168?podcast"

我该如何...

  • 设置默认的最大下载剧集数为20,但为特定播客禁用限制?

config.toml

max_episodes=20

podcasts.toml

[freakonomics] # since no max_episodes value is set, it will use the one in config.toml.
url="https://feeds.simplecast.com/Y8lFbOT4" 

[rest_is_history]
url="https://feeds.megaphone.fm/GLT4787413333"
max_episodes=false
  • 在下载之前,设置剧集的最长有效期?
[freakonomics] 
url="https://feeds.simplecast.com/Y8lFbOT4" 
max_days=30 # default value can be chosen in config.toml
  • 从开始处开始,每5天提供一次回溯剧集?
[rest_is_history]
url="https://feeds.megaphone.fm/GLT4787413333"
backlog_start="2024-03-27" # you put the current date in the backlog_start. 
backlog_interval=5
  • 只下载2023年11月5日之后发布的剧集?
[rest_is_history]
url="https://feeds.megaphone.fm/GLT4787413333"
earliest_date="2023-11-03"
  • 更改下载剧集的位置?

config.toml

path="/foo/bar/baz"
  • 重新下载已下载的剧集?

删除或修改下载剧集文件夹中的 .downloaded 文件。

为什么叫这个名字?

在挪威语中,“broadcast”意为“kringkasting”。我觉得“kasting”听起来像“podcast”中的“cast”,而“kring”部分听起来像“cringe”。因此,取名为“cringecast”。我知道这很傻。

依赖项

~13–25MB
~437K SLoC