Provided by: podget_0.8.6-1_all bug

NAME

       Podget - Simple tool to automate downloading of podcasts.

SYNOPSIS

       podget <options> [command]
       podget -h | --help

DESCRIPTION

       Podget  is  a simple podcast aggregator/downloader optimized for scheduled background jobs
       (i.e. cron).

       It features support for:

       •  Downloading podcasts from RSS and ATOM XML feeds.

       •  For sorting the files into folders and categories.

       •  For importing URLs from iTunes PCAST files and OPML lists.

       •  Automatic M3U & ASX playlist creation.

       •  Cleanup of old files.

       •  Automatic UTF-16 conversion for feeds hosted on MS Windows Servers.

OPTIONS

       -c, --config <FILE>
              Name of configuration file.

       --create-config <FILE>
              Create configuration file and exit.

       -C, --cleanup
              Skip downloading and only run cleanup loop.

       --cleanup_days <NUMBER>
              Cleanup files older than <NUMBER> days.

       --cleanup_simulate
              Simulate cleanup loop to see what files would be deleted.

       -d, --dir_config <DIRECTORY>
              Directory that configuration files are stored in.

       --dir_session <DIRECTORY>
              Directory that session files are stored in.

       -f, --force
              Force download of items from each feed even if they've already been downloaded.

       --import_opml <FILE or URL>
              Import servers from OPML file or HTTP/FTP URL.

       --export_opml <FILE>
              Export serverlist to OPML file.

       --import_pcast <FILE or URL>
              Import server from iTunes PCAST file or HTTP/FTP URL.

       -l, --library <DIRECTORY>
              Directory to store downloaded files in.

       -n, --no-playlist
              Do not create M3U playlist of new items.

       -p, --playlist-asx
              In addition to M3U playlists, create ASX playlists.

       --playlist-per-podcast
              Create a playlist of new items for each podcast feed.

       -r, --recent <COUNT>
              Download only the <COUNT> newest items from each feed.

       --serverlist <FILE>
              Use <FILE> as serverlist instead of default.

       -s, --silent
              Run silently (for cron jobs).

       -v     Set verbosity to level 1.

       -vv    Set verbosity to level 2.

       -vvv   Set verbosity to level 3.

       -vvvv  Set verbosity to level 4.

       --verbosity <LEVEL>
              Set verbosity level (0-3).

       -V, --version
              Display version.

       -h, --help
              Display help.

EXAMPLE CRON JOB

       Once podget is running correctly, it's most useful if you run it from a cron job  so  that
       the  new  episodes are available to play or load onto a portable player and you don't have
       to wait for them to download.

       To edit your crontab, do:

         $ crontab -e

       Then insert one line (i for insert mode), like the following:

         15 04 * * * /usr/bin/podget -s

       This will run podget at 4:15 AM every day.

AUTOMATIC CLEANUP

       You  can  enable  automatic  cleanup  with  every  run   by   configuring   it   in   your
       $HOME/.podget/podgetrc file. Simply set the following options:

         # Autocleanup.
         # 0 == disabled
         # 1 == delete any old content
         cleanup=1

         # Number of days to keep files.   Cleanup will remove anything
         # older than this.
         cleanup_days=7

       However, some people prefer to run cleanup as a separate cron session. To do that, set the
       options in podgetrc to:

         # Autocleanup.
         # 0 == disabled
         # 1 == delete any old content
         cleanup=0

         # Number of days to keep files.   Cleanup will remove anything
         # older than this.
         cleanup_days=7

       And add a cron job to run cleanup, like one of these examples:

         # Once a week on Sunday at 04:15AM
         15 04 * * Sun /usr/bin/podget -C

SESSION CONTROL

       Podget checks for already running sessions when it starts and exits if any are found. Each
       session  requires its own core configuration file, so for multiple sessions simply provide
       a unique -c <configfile> option for each.

ENABLING DEBUG OUTPUT

       To enable debug output, you can do it two ways.

       The first way is by uncommenting the DEBUG option in your podgetrc and setting it to  '1'.
       However this way will not enable DEBUG until just over 1400 lines into the script when the
       podgetrc is read.  This is sufficient for most issues.

       The second way is from the command line and enables debug as early  as  possible.   Simply
       execute podget like so: DEBUG=1 podget -vvvv

       You  can  enable  other  options  as well if you need to but for debugging purposes, it is
       highly recommended that you enabled as much verbosity as possible.

EXAMPLE SERVER LIST

       By default, Podget uses $HOME/.podget/serverlist  for  the  default  list  of  servers  to
       contact.  However  you  can configure the name with the config_serverlist variable in your
       $HOME/.podget/podgetrc file.

               Default format with category and name:
                 <url> <category> <name>

               Alternate Formats:
                 1. With a category but no name.
                     <url> <category>
                 2. With a name but no category (2 ways).
                     <url> No_Category <name>
                     <url> . <name>
                 3. With neither a category or name.
                     <url>

               NOTES:
                  1. URL Rules:
                    A.  Any spaces in the URL need to be converted to %20
                  2. Category Rules:
                    A.  Must be one word without spaces.
                    B.  You may use underscores and dashes.
                    C.  You can insert date substitutions.
                        %YY%  ==  Year
                        %MM%  ==  Month
                        %DD%  ==  Day
                    D.  If you want to disable the use of a category for a feed that has a name, the
                        category must be either a single period (.) or 'No_Category'.  If the name is
                        blank, then the category can also be blank.
                  3. Name Rules:
                    A.  If you are creating ASX playlists, make sure the feed name does not
                        have any spaces in it and the filename cannot be blank.
                    B.  You can leave the feed name blank, and files will be saved in the
                        category directory.
                    C.  Names with spaces are only compatible with filesystems that allow for spaces
                        in filenames.  For example, spaces in feed names are OK for feeds saved to
                        Linux ext partitions but are not OK for those saved to Microsoft FAT partitions.
                    D.  Feed names can be disabled by leaving them blank.
                  4. Disable the downloading of any feed by commenting it out with a leading #.

               Examples:
                 http://www.lugradio.org/episodes.rss Linux LUG Radio

               Example with date substitution in the category and a blank feed name:
                 http://downloads.bbc.co.uk/rmhttp/downloadtrial/worldservice/summary/rss.xml News-%YY%-%MM%-%DD%

               Example of two ways to do a feed with authentication:
                 http://somesite.com/feed.rss CATEGORY Feed Name USER:username PASS:password
                 http://username:password@somesite.com/feed.rss CATEGORY Feed Name

                 NOTE:   The second method will fail if a colon (:) is part of the username or password.
                         Both methods will fail if a space is part of the username or password.

               Atom Feed Options:
                 The following options are available for advanced handling of Atom feeds.
                 ATOM_FILTER_SIMPLE          -  This option will enable filtering for just audio or video files from a feed.
                 ATOM_FILTER_TYPE="type"     -  This option allows more detailed filtering of the variety of types available.  This can
                                               limit the files downloaded to one type (example:  "audio/mpeg") or to a few types
                                               (example: "(audio|video)/.*" for all audio and video types, OR "audio/.*" for all audio
                                               types).
                 ATOM_FILTER_LANG="language" -  If an Atom feed supports multiple languages for enclosures, then you can use this
                                                option to filter to only those you desire.  You can limit to one language (example: "en"
                                                for just English) or combine several supported languages to get them all (example: "(en|es|fr)"
                                                to download files in English, Spanish and French.  How the languages are defined may vary
                                                from feed to feed.

                   Note:  If you do not enable ANY of the ATOM_FILTER options, when you run podget with "-vv" or higher, for every Atom feed
                          that supports multiple enclosures per item, Podget will tell you with the count per type or language to help you decide
                          if you should use the filters to reduce the quantity of your downloads.

                   Examples:
                     http://somesite.com/feed.rss CATEGORY Feed Name ATOM_FILTER_SIMPLE
                     http://somesite.com/feed.rss CATEGORY Feed Name ATOM_FILTER_TYPE="audio/mpeg"
                     http://somesite.com/feed.rss CATEGORY Feed Name ATOM_FILTER_TYPE="(audio|video)/.*"
                     http://somesite.com/feed.rss CATEGORY Feed Name ATOM_FILTER_LANG="en"
                     http://somesite.com/feed.rss CATEGORY Feed Name ATOM_FILTER_LANG="(en|es|fr)"
                     http://somesite.com/feed.rss CATEGORY Feed Name ATOM_FILTER_TYPE="audio/mpeg" ATOM_FILTER_LANG="en"

               Additional Options:
                 OPT_CONTENT_DISPOSITION     - Attempt to get filename from the Content-Disposition tag that is part of
                                               wget --server-response.
                 OPT_DISPOSITION_FAIL        - This option works in conjunction with OPT_CONTENT_DISPOSITION by removing
                                               any URLs that fail to receive a filename from the COMPLETED log.  This allows
                                               them to be automatically retried the next time a session runs.  If this option
                                               is added to a feed that has already been downloaded then the user will need to
                                               remove the URLs for the problematic files from the COMPLETED log manually. On
                                               one feed this allowed for the improvement of the number of filename problems from
                                               approximately 15% to under 2% over the course of 6 sessions.  Those sessions can
                                               occur sequentially on one day or as part of your established cron rotation.
                 OPT_FILENAME_LOCATION       - Some feeds do not have the detailed filename listed in the FEED but rather rename
                                               the file on redirection.  This option address that issue by attempting to grab the
                                               filename from the last 'Location:' tag in the output of 'wget --server-response'.
                 OPT_FILENAME_RENAME_MDATE   - For feeds that use a singular filename for each item that is identified by a long
                                               somewhat incomprehensible string in the URL.  These feeds were previously fixed
                                               with FILENAME_FORMATFIX4 which would append the string to the common filename to
                                               produce unique filenames for each item.  However this produced filenames that were
                                               not very easy to understand.  This option gives us another method for dealing with
                                               these common filenames.  This appends the date of the files last change (modification
                                               date) as a prefix to the filename in the format of YYYYMMDD_HHhMMm_<common-part>.  This
                                               makes the filenames sortable and gives the user something that makes a moderate amount
                                               of sense.  Does not work for all feeds, for some feeds the last modification time for
                                               each file is the time of download.  Which may be acceptable in some situations but can
                                               cause confusion when downloading more than one item at a time from a feed.
                 OPT_FEED_ORDER_ASCENDING   -  By default, Podget assumes that items in a feed will be listed from newest to oldest
                                               (descending order).  This option will modify Podget's handling of the feed for those
                                               that are listed from oldest to newest.  This option will not have any noticeable effect
                                               for feeds where you want to download every item.  It will have an effect for new feeds
                                               when combined with the --recent [COUNT] option.
                 OPT_FEED_PLAYLIST_NEWFIRST -  Most playlist options create lists of just the new items that are downloaded in the
                                               current session.  This option creates or updates a full playlist for all items available
                                               for a feed sorted from newest to oldest based on the modification date/time of the file.
                 OPT_FEED_PLAYLIST_OLDFIRST -  Same as OPT_FEED_PLAYLIST_NEWFIRST except playlist is ordered from oldest to newest.

                   Note: It is possible to use more than one option per feed, this will combine the effects of the options in order from
                             top to bottom as they are listed here.  Exception is the OPT_FEED_PLAYLIST options, they are mutually exclusive
                                 and cannot be combined with each other but can be combined with other options.

                   Examples:
                     http://somesite.com/feed.rss CATEGORY Feed Name OPT_CONTENT_DISPOSITION
                     http://somesite.com/feed.rss CATEGORY Feed Name OPT_CONTENT_DISPOSITION OPT_DISPOSITION_FAIL
                     http://somesite.com/feed.rss CATEGORY Feed Name OPT_FILENAME_LOCATION
                     http://somesite.com/feed.rss CATEGORY Feed Name OPT_FILENAME_RENAME_MDATE
                     http://somesite.com/feed.rss CATEGORY Feed Name OPT_FILENAME_LOCATION OPT_FILENAME_RENAME_MDATE
                     http://somesite.com/feed.rss CATEGORY Feed Name OPT_FEED_ORDER_ASCENDING
                     http://somesite.com/feed.rss CATEGORY Feed Name OPT_FEED_PLAYLIST_NEWFIRST
                     http://somesite.com/feed.rss CATEGORY Feed Name OPT_FEED_PLAYLIST_OLDFIRST

       HANDLING UTF-16 FEEDS

       Some servers provide their feeds in UTF-16 format rather than the more common UTF-8.

       To automatically convert these files, create a secondary serverlist at:

               $HOME/.podget/serverlist.utf16

       Remember to change the  name  of  the  serverlist  to  match  what  you  set  it  to  with
       config_serverlist if you changed it.

AUTHORS

       Dave Vehrs

                                           01 July 2019                                 podget(7)