5 Dec 2006

castget: a CLI podcast downloader

某人说:优秀的程序员不喜欢写,喜欢偷。我虽然远不是优秀的程序员,不过我比较懒,也喜欢偷 :-)

这几天一直在寻找一个 podcast downloader 软件,要求如下:

* Open Source;
* 字符界面(Command Line Interface, CLI);
* 支持音频下载;不要求视频,尽管以后可能添加;
* 最好是 C 语言。

用过一段时间的 podget,很好用,可惜用 shell script 写的,限制了功能的发展。

展开 Google 大法,发现如下相关软件:

* Democracy Player: 网络电视,可以播放基于 RSS 的视频,具有 bt 客户端,内置 VLC media player,不是用 C 写的,不是 CLI 的
* Golden Pod: Perl 写的
* PodNova :  Juice 不出 Linux 版之后的推荐,Python 写的
* Armangil's Podcatcher: Ruby 的
* Podracer: Bash & Python
* BashPodder4iPods: bash 的,用 GNUPod 和 iPod 同步
* mp3splt:分割 mp3, ogg 文件
* Peapod: Python 的,声称用了 Mark Pilgrim's feed parser library(这个 parser lib 很牛吗?我没用过……)
* gPodder: Python
* amaroK: KDE 下的 media player,支持 podcast
* Rythmbox: GNOME 下的 media player,支持 Podcast
* libgpod: 操作 iPod 的 C 库,许多软件用这个和 iPod 同步,从 gtkpod 中分离出来的。

上面没有用 C 的,准备曲线一下,找了个 C 的 RSS Reader 玩── snownews,用着很舒服,貌似支持中文。以后自己如果有了 notebook 就用这个 RSS Client 了。

已经放弃了寻找后,在学习 rss parse 的时候发现了 castget,一切似乎瞬间完美起来:

* 用 C 编写,Opensource,CLI
* libxml2, libcurl, id3lib:这些也是我打算使用的工具

恰好 castget 招募 co-maintainer,我报名了。然后开始玩 code,浏览了各大模块之后,小小修改了 spool directory 的行为,还有许多需求呢,慢慢来吧 :-)

* glib2 不是必须的,不过用起来确实很方便,有许多常用的库,但如果 porting 到 embedded linux,需要去掉这个 lib;
* 没发现发生 error 后的 log,需要添加;
* 默认下载 podcast feed 里所有的文件,应该可以设置下载最新的 xx 个;
* 下载的文件占用空间多了,如何 cleanup?
* 应该可以设置占用空间大小;
* charset! 让我头痛的中文 GBK 支持,这次一定在 C 里面解决掉!(wxMusik 是 C++ 的,不熟悉,还牵涉到 wxGTK,搞了半天也没搞定。)或者直接写个转化 id3 的小程序。
* 如何下载网络视频,flv 之类?

相关:

castget Homepage:
http://www.nongnu.org/castget/

podget Homepage
http://podget.sf.net/

--
"生活就是个缓慢受锤的过程,人一天天老下去,奢望也一天天消失,最后变得像挨了锤的牛一样。"

2 comments:

  1. 内容偶看不懂。呵
    发现改了一下签名?哈哈,至少简洁一些了。

    ReplyDelete
  2. 这个我自己也觉的写的乱,权当记录吧 :-)

    签名是按步骤简化的。一开始就推出这个简化版理解难度会比较大 :-)

    ReplyDelete