32个版本
0.1.39 | 2024年5月21日 |
---|---|
0.1.37 | 2024年4月23日 |
#91 in 音频
54每月下载次数
105KB
2.5K SLoC
TaleCast
TaleCast是一个简单而强大的命令行播客管理器,它使您能够轻松地从终端搜索、添加和管理您最喜欢的播客。
特性
- 从终端直接搜索和添加播客
- 可配置的下载选项
- 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辅助工具安装它,例如paru
或yay
。
要使用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做出贡献,请按照以下步骤操作
- 分支仓库
- 为你的功能或错误修复创建一个新分支
- 进行更改,并使用描述性的提交信息提交它们
- 将你的更改推送到你分支的仓库
- 向主仓库提交拉取请求
许可证
TaleCast在MIT许可证下发布。
依赖项
~16–30MB
~449K SLoC