6 个版本 (3 个重大更改)
0.5.1 | 2022 年 1 月 11 日 |
---|---|
0.5.0 | 2022 年 1 月 11 日 |
0.4.0 |
|
0.3.0 | 2021 年 1 月 6 日 |
0.1.0 | 2020 年 10 月 28 日 |
#2320 in 命令行工具
28KB
592 行
Podchamp
是什么
一个用于抓取播客的无装饰工具。
开发中,但我已经连续六个月一直在使用它,没有出现任何重大问题。
为什么
我发现很少有几个播客工具不是要么非常臃肿(我不想我的下载器也是一个半吊子的媒体播放器),要么是尚可但脆弱的(shell 脚本;试图理解那些彻底损坏的源),或者不够灵活(坚持自己执行下载;想要知道文件名模式和目录)。
我已经使用了多年的 greg,但这个项目已经基本上死了,我不喜欢它的某些设计选择,所以这是一个替代品。
谁
这是为我准备的。这个工具不会有播放或标记等额外功能;不要 @ 我。
如何
Podchamp 在一个小型数据库中记录了源和之前下载的剧集。当检查新剧集时,podchamp 会下载源 xml,解析它,并为它之前未下载的任何剧集启动下载。
您可以添加源如下
$ podchamp add mbmbam 'https://feeds.simplecast.com/wjQvYtdl'
然后按照这种方式抓取新剧集
$ podchamp fetch
Fetching mbmbam
如果有 MBMBaM 的新剧集,podchamp 会使用下载链接作为参数启动 PODCHAMP_DOWNLOADER
。默认情况下这只是 wget,这不是非常有用;它旨在您编写自己的脚本来执行您认为合适的操作。例如,这是我的简化版
#!/usr/bin/fish
set dir "$HOME/podcasts/$PODCHAMP_FEED"
mkdir -p "$dir"
cd "$dir"
wget -q "$PODCAST_URI" -O - | \
nice ffmpeg -y \
-i pipe:0 -c:a libopus -b:a 64k \
-metadata title="$PODCHAMP_DATE - $PODCHAMP_TITLE" \
-metadata artist="$PODCHAMP_FEED" \
"$PODCHAMP_DATE - $PODCHAMP_TITLE.opus"
通常,当您添加一个新的源时,它有一个 历史记录 为 1。这意味着第一次抓取时,它只会下载最新的剧集,以及随后的任何新剧集。如果您想下载更多,可以设置更大的历史记录
$ podchamp add -n 10 streetfight 'http://feeds.feedburner.com/streetfightradio'
或者,如果您已经添加了它(或重置了源),您可以更改历史记录
$ podchamp mod streetfight backlog 10
这将使您第一次抓取时下载 10 个最新剧集,以及随后的任何比这些中最老剧集更新的剧集。
目前尚无下载特定剧集的方法,但我会最终实现它。
如果您决定不喜欢某个播客,并希望 podchamp 停止抓取它,您可以删除其源
# to hell with bean dad
$ podchamp rm roderickontheline
如果您想重新下载播客的以前 episodes(例如,您丢失了文件,或者想重新编码),您可以重置源。
$ podchamp reset guaranteedaudio
当
当我对它满意时,这将被视为完成(即 1.0)。
在哪里
在 Linux 上,绝对是。在 Windows 或其他平台上,可能如此,但您自己负责;请不要寻求支持。
待办事项
是
- 配置文件 - 相当简单,可能。
- 更多元数据 - 只有一些源和剧集元数据可供下载脚本使用,并且可以轻松导出更多。
- 测试 - 当然。
- 更好的文档 - 上述内容不完整;我需要解释环境变量、命令行选项以及
fetch-since
日期。
可能
- 自我下载 - 这可以轻松添加,但真的超出了范围。
- 更健壮的排序和剧集跟踪 - 目前,Podchamp 忽略了任何没有
pubDate
或guid
的源项目;这可能在无需额外工作的前提下得到改善。 - 列在文本文件中的源 - 每次想到这个,它似乎本质上是脆弱且易出错的;一个“导入”功能可能很有用。
不是
- 回放 - 这是媒体播放器的用途。
- 标记 - 一个绝对复杂的泥潭;可以通过现有工具更可靠地完成。
- 支持损坏的源 - 我们可能不得不面对 RSS 的灾难,但我对让 Podchamp 尝试解决完全损坏的源没有兴趣。
从哪里来
去哪里
这里的所有代码都是 MIT 许可的。
依赖关系
~38–54MB
~1M SLoC