Index of /www001/src/ports/multimedia/podcatcher/work/podcatcher

      Name                    Last modified       Size  Description

[DIR] Parent Directory 20-Jan-2008 09:25 - [DIR] 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]