Skip to content

deepilla/kibner

Repository files navigation

Kibner

Build Status Go Report Card

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.

Install

go install github.com/deepilla/kibner

Usage

Everyday usage requires just a few commands:

  • add to subscribe to feeds
  • sync to check for new feed items
  • list to display, play and download items

Type kibner with no arguments to see all available commands.

Subscribe to a feed

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.

Unsubscribe from a 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.

Synchronise feeds

kibner sync [feed]

Check feeds for new items and update your subscriptions. Synchronise an individual feed by specifying a feed name.

List/Play items

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.

List feeds

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.

Other tasks

The following commands are less commonly used.

Import feeds

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.

Export feeds

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.

Open a feed URL

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.

Update feed details

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.

Nuke your data

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!

Version number

kibner version

TODO

Features

  • 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.

Code

  • Come up with an SQLite vacuum strategy.
  • Handle interrupt signals (e.g. Ctrl-C).
  • Increase test coverage.
  • Refactor command/flag/config code (use Viper?).

Licensing

Kibner is provided under an MIT License. See the LICENSE file for details.

About

A command-line podcast client. Written in Go.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages