Kibner is a command-line utility for managing podcasts.
Subscribe to podcasts, keep them in sync, and play episodes with a few simple commands. Kibner is designed to be minimal. It keeps track of your subscriptions but relies on other programs for media playback and downloads.
NOTE: This is a work in progress. Commands and flags are likely to change.
go install github.com/deepilla/kibner
Everyday usage requires just a few commands:
add
to subscribe to feedssync
to check for new feed itemslist
to display, play and download items
Type kibner
with no arguments to see all available commands.
kibner add [options] <url>
Add a feed to your subscriptions. The url can either be an RSS
feed or, for podcasts that don't provide a feed, an iTunes page.
To add multiple feeds, see the import
command.
Options:
--itunes
Indicate that url
is an iTunes page rather than an RSS feed.
kibner remove <feed>
Remove a feed from your subscriptions. If the provided feed name
matches more than one feed, you will be prompted to choose between
them. For example, kibner remove this
would match both This
American Life and Answer Me This and ask you to confirm which
you wanted to remove. To unsubscribe from all feeds, see the
reset
command.
kibner sync [feed]
Check feeds for new items and update your subscriptions. Synchronise an individual feed by specifying a feed name.
kibner list [options] [feed]
Display and interact with items from your subscribed feeds. Use the options to sort and filter the results, as well as play selected items. Playback is via the media player of your choice. You can also run arbitrary programs on items (such as curl for downloading).
Options:
-d, --show-desc
Show item descriptions.
-N, --top=number
Set the maximum number of items to display.
-u, --unplayed
Only show unplayed items.
-T, --since=date
Only show items published on or after the given date. Valid date
values are:
- today for the current date
- Nd for N days ago (0d is the current date)
- Nm for N months ago (0m is the start of the current month)
- Ny for N years ago (0y is the start of the current year)
- mon, tue, wed, thu, fri, sat or sun for a specific day of the week
- jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov or dec for a specific month
--with-title=title
Only show items with titles that match the given value.
--sortby=property
Sort items by the given property. The available properties are:
- pubdate to sort by publish date, most recent first
- title to sort alphabetically by title
- feed to sort alphabetically by feed title
- duration to sort by duration, longest first
- timestamp to sort by local creation time, most recent first
The default is pubdate.
--order=order
Display items in ascending (asc) or descending (desc) order.
The default is ascending if sorting by title or feed, otherwise
descending.
-p, --play
Play the selected items using the program specified by the --use
option. If playback successfully completes, the item is marked as
played (and therefore no longer appears in the output when the
--unplayed
flag is specified).
--mark
Mark selected items as played.
--unmark
Mark selected items as unplayed.
--run
Run the program specified by the --use
option on the selected
items. Unlike the --play
option, this does not mark the items
as played.
--use=program
Specify a program to use with the --play
or --run
options.
kibner feeds [options]
Display subscribed feeds. Use the options to sort and filter the results.
Options:
-d, --show-desc
Show feed descriptions.
-N, --top=number
Set the maximum number of feeds to display.
--with-title=title
Only show feeds with titles that match the given value.
--with-author=author
Only show feeds with authors that match the given value.
--sortby=property
Sort feeds by the given property. The available properties are:
- pubdate sorts by last published date, most recently updated first
- title sorts alphabetically by title
- items sorts by number of items, highest first
- unplayed sorts by number of unplayed items, highest first
- timestamp sorts by local creation time, most recent first
The default is pubdate.
--order=order
Display feeds in ascending (asc) or descending (desc) order.
The default is ascending if sorting by title, otherwise descending.
The following commands are less commonly used.
kibner import [options] <filename>
Import feeds from a file.
Options:
--format=format
Specify a file format. Valid values are:
- list for a plain text file with one feed URL per line
- opml for an OPML file
The default is list.
kibner export [options] <filename>
Export feeds to a file.
Options:
--format=format
Specify a file format. Valid values are:
- list for a plain text file with one feed URL per line
- opml for an OPML file
The default is list.
kibner open [options] <feed>
Open a URL associated with the given feed.
Options:
--target=type
Specify the type of URL to open. Valid values are:
- feed for the feed's RSS feed
- link for the website associated with the feed
- image for the feed's artwork
The default is feed. Note that link and image URLs are not guaranteed to exist.
--use=program
Specify a program to open the URL.
kibner update <options> <feed>
If for some reason you don't like a feed's values as specified in its RSS feed, you can change them for your local subscription.
Options:
--title=title
Set the feed title to the given value.
--author=author
Set the feed author to the given value.
--desc=desc
Set the feed description to the given value.
--link=link
Set the feed website to the given URL.
--image=image
Set the feed artwork to the given URL.
kibner reset
Wipe all of your existing data and start fresh with a clean database. It's probably a good idea to export your feeds to a file before doing this!
kibner version
- Specify command-line options via config file.
- Make sure everything works in Windows.
- Subscribe to BBC iPlayer audio.
- Allow user-defined templates for list/feed commands.
- Pause/Resume, Mute/Unmute feeds.
- Come up with an SQLite vacuum strategy.
- Handle interrupt signals (e.g. Ctrl-C).
- Increase test coverage.
- Refactor command/flag/config code (use Viper?).
Kibner is provided under an MIT License. See the LICENSE file for details.