Index of /www001/src/ports/multimedia/podcatcher/work/podcatcher
Name Last modified Size Description
Parent Directory 20-Jan-2008 09:25 -
demo/ 22-Dec-2006 11:14 -
podcatcher 13-Feb-2007 08:10 63k
ARMANGIL'S PODCATCHER
=====================
Armangil's podcatcher is a podcast client for the command line.
It can download any type of content enclosed in RSS or Atom files, such as
MP3 or other audio content, video and images.
It provides several download strategies, supports BitTorrent, offers cache
management, and generates playlists for media player applications.
As argument, it accepts feed documents (RSS or Atom) or subscription documents
(OPML or iTunes PCAST), in the form of filenames or URLs (HTTP or FTP).
Alternatively, it accepts one such document from the standard input.
Also included: a search function for subscribing to feeds.
BitTorrent is supported both internally (through the RubyTorrent library)
and externally (.torrent files are downloaded, but the user handles
them using a BitTorrent application). The latter is currently the most
reliable method, as RubyTorrent is still in alpha phase.
Concurrency is not handled: simultaneous executions of this program should
target different directories.
Visit http://podcatcher.rubyforge.org/ for more information.
Usage1: podcatcher [options] subscription-or-feed-url-or-filename+
Usage2: podcatcher [options] (subscription or feed from standard input)
Usage3: podcatcher --function search [options] query subscription-or-feed-url-or-filename+
Usage4: podcatcher --function search [options] query (subscription from standard input)
Options:
-d, --dir DIR Directory for caching content
and storing application state
(default value: current directory)
-s, --size SIZE Size of content cache in megabytes;
0 means unbounded; default value is 512
-S, --strategy S Strategy to use when downloading content:
* back_catalog: download any content that
has not been downloaded before; prefer
recent content to older content
* new: download the most recent content
of each feed, if it has not already been
downloaded
* one: download one content file (not
already downloaded) of each feed, with a
preference for recent content
* all: download all content, with a
preference for recent content; even
already downloaded content is downloaded
once again
* chron: download in chronological order
any content that has not been downloaded
before (useful for audio book podcasts etc)
* chron_one: download the oldest content of
each feed that has not already been
downloaded
* chron_all: download all content in
chronological order, even if the content
has already been downloaded
* cache: generate a playlist for content
already in cache
(default value: one)
-C, --content REGEXP A regular expression that matches the
types of content to be downloaded
(default value is '', which matches any
type of content)
-o, --order ORDER The order in which feeds are traversed
when downloading content:
* random: randomizes the feed order,
so that every feed has an equal chance
when content is downloaded, even if
the cache size is small and the number
of feeds is big
* alphabetical: orders feeds
alphabetically by using their titles
* sequential: preserves the argument
order (and the feed order in
subscription lists)
* reverse: reverses the feed order
(default value: random)
-t, --type TYPE Playlist type (m3u smil pls asx tox xspf )
(default value: m3u)
-r, --retries N Try downloading files (content, RSS, Atom,
OPML or PCAST) at most N times before
giving up (default value: 1)
-m, --memsize N Remember last N downloaded content,
and do not download them again;
0 means unbounded; default value is 1000
-F, --function FUNCTION Used function:
* download: downloads content from
specified feeds
* search: generates an OPML subscription
list of feeds matching the specified
query; the only options relevant for
search are -v, -r and -f
(default value: download)
-f, --feeds N Do not download more than N feeds
(when using the download function);
or return the first N relevant feeds
(when using the search function);
0 means unbounded (default value: 1000)
-T, --torrentdir DIR Copy torrent files to directory DIR;
handling torrents through an external
BitTorrent client is left to the user;
if this option is not used, torrents are
handled internally (if RubyTorrent is
installed), or else ignored
-U, --uploadrate N Maximum upload rate (kilobytes per second)
for the internal BitTorrent client
(default value: unbounded)
-i, --itemsize N If downloaded content is less than N MB in
size (where N is an integer), fetch other
content of that same feed until this size
is reached (default value: 0)
-p, --[no-]perfeed Create one subfolder per feed in cache
-c, --[no-]cache Generate a playlist for content
already in cache
DEPRECATED (use --strategy cache)
-e, --[no-]empty Delete all previously downloaded content
-a, --[no-]asif Do not download content
(useful for testing)
-v, --[no-]verbose Run verbosely
-V, --version Display current version and exit
-h, --help Display this message and exit
--[no-]checkforupdate Check once every 6 months if a newer
version is available and display an
informational message (enabled by default)
--[no-]vote Automatically vote for the downloaded
podcasts at podcatcherstats.com
(enabled by default)
-A, --arguments FILENAME_OR_URL Read arguments from specified file.
Rules:
* accepts one argument per line
* may be used several times in one command
-O, --options FILENAME_OR_URL Read options from specified file
(the options file uses the YAML format)
Usage examples:
podcatcher -d ~/podcasts http://podcastalley.com/PodcastAlleyTop50.opml > latest.m3u
podcatcher -d ~/podcasts rss.xml atom.xml *.pcast feeds.opml http://host/second.opml > latest.m3u
podcatcher -d ~/podcasts -S cache > cache.m3u
cat feeds.opml | podcatcher -d ~/podcasts > latest.m3u
podcatcher -vd ~/podcasts -s 500 -m 10_000 -t tox feeds.opml > latest.tox
podcatcher -vF search 'book health daily source code' 'http://www.ipodder.org/discuss/reader$4.opml' > results.opml
podcatcher -F search -f 12 mac http://www.podfeed.net/opml/directory.opml > results.opml
Requirements
------------
Ruby 1.8.2 or later.
Installation
------------
1. Install the most recent Ruby distribution. Ruby is available on many
operating systems such as Windows, MacOS and Linux. A good starting point
is http://www.ruby-lang.org/en/ , and for Linux it is worth taking a look
at an RPM repository such as http://www.rpmseek.com/ (package name ruby).
2. Extract to disk the podcatcher directory from the TGZ file.
3. (Optional, for internal BitTorrent support) Download the most recent
RubyTorrent release from http://rubyforge.org/projects/rubytorrent/ ,
add its installation directory to $RUBYLIB (for Linux).
4. (Optional, for Linux users) Add the podcatcher directory to $PATH
for easy access.
Support
-------
Please submit bug reports, feature or help requests to the forum
accessible from the Armangil's podcatcher site at
http://podcatcher.rubyforge.org/ . Also, please do not hesitate to help
other users who post there.
Alternatively, you can send me an email to the address listed below.
License
-------
Armangil's podcatcher is released under the GNU General Public Licence. Please see
http://opensource.org/licenses/gpl-license.php for more information.
Author
------
Doga Armangil, armangild@yahoo.com
[February 2007]