32个版本

0.1.39 2024年5月21日
0.1.37 2024年4月23日

#91 in 音频

Download history 2078/week @ 2024-04-14 775/week @ 2024-04-21 31/week @ 2024-04-28 1/week @ 2024-05-05 161/week @ 2024-05-19 4/week @ 2024-05-26 54/week @ 2024-07-28

54每月下载次数

MIT 许可证

105KB
2.5K SLoC

TaleCast

TaleCast是一个简单而强大的命令行播客管理器,它使您能够轻松地从终端搜索、添加和管理您最喜欢的播客。

Demo

特性

  • 从终端直接搜索和添加播客
  • 可配置的下载选项
  • MP3标签规范化
  • 针对每个播客的精细配置控制
  • 回放模式,让您以自己的节奏赶上旧剧集
  • 下载钩子用于下载后的处理
  • OPML导出和导入
  • Git友好的下载跟踪器(文本文件,其中1个剧集=1行)
  • 用于命名文件等的高级模式匹配
  • 支持自定义ID3v2标签
  • 并行下载
  • 支持部分下载
  • 能够将下载路径打印到stdout,以便轻松管道传输
  • 漂亮的图形界面
  • 使用正则表达式模式过滤剧集以同步或导出
  • 内置符号链接支持

安装

使用Cargo

要使用Cargo安装TaleCast,您需要安装Rust。如果您以前从未使用过Rust,请从官方网站运行shell命令:https://rust-lang.net.cn/learn/get-started

安装Rust后,您可以使用以下命令安装TaleCast

cargo install talecast

Arch Linux (AUR)

TaleCast可在针对Arch Linux用户的Arch用户仓库(AUR)中找到。您可以使用您首选的AUR辅助工具安装它,例如paruyay

要使用paru安装TaleCast,请运行以下命令

paru -S talecast-git

其他包管理器

如果您有为此处未列出的包管理器打包的经验,如果您能添加它并让我知道,我将非常感激!

用法

添加播客

有几种方法可以将播客添加到TaleCast中

  • 使用talecast --search $NAME搜索播客
  • 直接使用以下命令添加播客:talecast --add $PODCAST_URL $PODCAST_NAME
  • 直接编辑 podcasts.toml 文件(请参阅下面的“配置”部分)

为了找到播客的URL,我推荐使用 https://podcastindex.org/。在给定播客的页面,点击‘复制RSS’以获取您应使用的URL。

如果您从命令行添加播客,您可以将它与 catch-up 参数结合使用,以仅下载即将播出的剧集。例如:talecast -cs "this american life"

命令行选项

  -i, --import <FILE>      Import podcasts from an OPML file
  -e, --export <FILE>      Export your podcasts to an OPML file
  -p, --print              Print the downloaded paths to stdout
  -c, --catch-up           Configure to skip episodes published prior to current time. Can be combined with filter, add, and import
  -a, --add <URL> <NAME>   Add new podcast
  -f, --filter <FILTER>    Filter which podcasts to sync or export with a regex pattern
      --config <FILE>      Override the path to the config file
      --edit-config        Edit the config.toml file
      --edit-podcasts      Edit the podcasts.toml file
  -s, --search <QUERY>...  Search for podcasts to add
  -h, --help               Print help
  -V, --version            Print version

配置

要编辑全局配置,运行 talecast --edit-config。要编辑播客,运行 talecast --edit-podcasts

这些文件分别位于 ~/.config/talecast/config.toml~/.config/talecast/podcasts.toml,除非您的 XDG_CONFIG_HOME 环境变量设置为其他值。

配置的工作方式是,您可以在 config.toml 文件中设置一个适用于所有播客的“全局值”。然而,您可以通过在 podcasts.toml 文件中为给定播客指定相同的设置来覆盖这些设置。如果不需要值,您可以全局配置它,但使用 $SETTING = false 在特定播客上禁用它。

设置 描述 必需 每个播客 全局 默认
url 播客XML文件的URL 没有默认值,必须指定
download_path 剧集下载的路径 "{home}/talecast/{podname}"
name_pattern 决定剧集文件名称的模式 "{pubdate::%Y-%m-%d} {rss::episode::title}"
id_pattern 确定已下载剧集的剧集ID "{guid}"
download_hook 下载剧集后运行的脚本的路径
partial_path 部分下载的剧集存储的路径 download_path
tracker_path 跟踪下载剧集的文本文件的路径 download_path/.downloaded
max_days 大于此日期的剧集不会下载
max_episodes 仅下载此数量的过去剧集
earliest_date 在此日期之前发布的剧集不会下载
id3_tags 将注解到MP3文件上的自定义标签 []
symlink 下载文件将符号链接到的目录
backlog_start 回溯模式计算的开始日期
backlog_interval 回溯模式下每个新剧集之间经过的天数

模式系统

TaleCast提供了一个使用模式系统生成动态文本的方法。有两种类型的模式:不接受输入的单位模式和提供输入的数据模式。

单位模式

模式 评估为
guid 剧集的GUID
url 剧集封面的URL
podname 配置的播客名称
home 您家目录的路径

这些的一个好例子是默认的download_path设置值。

数据模式

模式 描述
rss::episode 表示单个节目的XML。它接受的是XML标签的名称。输出是该标签的内容。
rss::channel 表示播客的XML。它接受的是XML标签的名称。输出是该标签的内容。
pubdate 节目发布的时间。接受格式化字符串。

查看默认的name_pattern设置值,以了解如何使用它们。

请注意,并非所有模式都适用于每个设置。例如,download_path无法使用特定于节目的信息。

回放模式

回放模式是一种系统地遍历播客回放的方式,从第一集开始。对于旧节目和新节目都同样相关的播客来说,这是完美的,特别是如果你需要按时间顺序进行的话。

要使用回放模式,设置backlog_start日期,然后同步。TaleCast将下载播客的第一集。在backlog_interval天后,它将下载第二集,依此类推。

贡献

如果你遇到任何错误或功能请求,请使用GitHub问题页面。如果你在报告错误,请确保你有TaleCast的最新版本,以防它已经修复。

欢迎贡献!如果你想为TaleCast做出贡献,请按照以下步骤操作

  1. 分支仓库
  2. 为你的功能或错误修复创建一个新分支
  3. 进行更改,并使用描述性的提交信息提交它们
  4. 将你的更改推送到你分支的仓库
  5. 向主仓库提交拉取请求

许可证

TaleCast在MIT许可证下发布。

依赖项

~16–30MB
~449K SLoC