115 lines
4.4 KiB
Markdown
115 lines
4.4 KiB
Markdown
# Podweasel - podcatching for the terminal.
|
|
|
|
Podweasel is a program for managing & catching podcasts from the terminal.
|
|
|
|
Podweasel is a fork of [podfox by brtmr](https://github.com/brtmr/podfox)
|
|
|
|
## Configuration
|
|
|
|
Podweasels main configuration file is called `.podweasel.json` and should be located in your home directory.
|
|
|
|
```
|
|
{
|
|
"podcast_directory" : "/home/<USER>/podcasts",
|
|
"maxnum" : 5,
|
|
"cover_image" : true,
|
|
"cover_image_name" : "folder",
|
|
"rename_episodes" : true,
|
|
"date_format" : "%Y-%m-%d",
|
|
"connection_timeout" : 10,
|
|
"conncetion_retries" : 3
|
|
}
|
|
```
|
|
|
|
- `podcast-directory` is your main directory to store podcast data. This directory should be empty before you begin adding feeds.
|
|
- `maxnum` _(optional)_ download the newest of noted amount of episodes from podcast. When a new episodes comes out the oldest will be ignore if deleted (default is no limit)
|
|
- `cover-image` _(optional)_ boolean value to enable downloading of podcast image (default is `false`)
|
|
- `cover-image-name` _(optional)_ custom name for the image (default is `folder`)
|
|
- `rename-episodes` _(optional)_ boolean value to enable renaming of podcast episodes (default is `false`)
|
|
- `date-format` _(optional)_ formatting for the date when renaming episodes (default is `%Y-%m-%d`)
|
|
- `connection-timeout` _(optional)_ int in seconds for how long to wait before timeout (default is `10`)
|
|
- `connection-retries` _(optional)_ int for how many retries per podcast episode before moving on to next episode if there is connection problems (default is `3`)
|
|
|
|
## Directory Structure
|
|
|
|
In podweasel, every podcast is identified with its own `shortname`, which is restricted to lowercase-letters, numbers, and dashes. If the `shortname` is not specifically given during import, it will be derived from the title of the feed. The following shows a directory tree for such a setup, including two podcasts, each with its own feed.json file for bookkeeping.
|
|
|
|
```
|
|
+ podcast-directory
|
|
|
|
|
+-----------+ python-for-rockstars
|
|
| |
|
|
| + feed.json
|
|
| + episode1.ogg
|
|
| + episode2.ogg
|
|
|
|
|
+-----------+ cobol-today
|
|
|
|
|
+ feed.json
|
|
+ episode289.ogg
|
|
+ episode288.ogg
|
|
```
|
|
|
|
## Usage:
|
|
|
|
```
|
|
podweasel import <feed-url> [<shortname>]
|
|
podweasel update [<shortname>]
|
|
podweasel feeds
|
|
podweasel episodes <shortname>
|
|
podweasel download [<shortname> --how-many=<n>]
|
|
```
|
|
|
|
### Import
|
|
|
|
To import a new feed use:
|
|
`podweasel import <feed-url> [<shortname>]`
|
|
For example, to import the haskell cast feed:
|
|
|
|
`podweasel import http://www.haskellcast.com/feed.xml`
|
|
To import the techsnap podcast, and to store the episodes to a specific folder `ts`, use
|
|
|
|
`podweasel import http://feeds.feedburner.com/techsnapmp3 ts`
|
|
|
|
### Update
|
|
|
|
`podweasel update` will update all feeds (This does not include downloading any new episodes)
|
|
|
|
`podweasel update <shortname>` will only update the feed associated with the given `shortname`
|
|
|
|
### Feeds
|
|
|
|
`podweasel feeds` will give an overview over the imported pocasts, and their `shortname`s.
|
|
In the example:
|
|
|
|
```
|
|
$ podweasel feeds
|
|
title | shortname
|
|
================================================================
|
|
TechSNAP MP3 | ts
|
|
The Haskell Cast | the-haskell-cast
|
|
```
|
|
|
|
### Episodes
|
|
|
|
`podweasel episodes <shortname>` will produce a list of episodes available for this podcast, and wether they have been downloaded yet.
|
|
|
|
```
|
|
$ podweasel episodes ts
|
|
A Rip in NTP | TechSNAP 237 | Not Downloaded
|
|
National Security Breaking Agency | Tech | Not Downloaded
|
|
Catching the Angler | TechSNAP 235 | Not Downloaded
|
|
Key Flaw With GPL | TechSNAP 234 | Not Downloaded
|
|
Dukes of Cyber Hazard | TechSNAP 233 | Not Downloaded
|
|
Hardware Insecurity Module | TechSNAP 23 | Not Downloaded
|
|
Leaky RSA Keys | TechSNAP 231 | Not Downloaded
|
|
Trojan Family Ties | TechSNAP 230 | Not Downloaded
|
|
Extortion Startups | TechSNAP 229 | Not Downloaded
|
|
[...]
|
|
```
|
|
|
|
### Downloading
|
|
|
|
`podweasel download` will download `maxnum` not yet downloaded episodes for every feed (if possible.)
|
|
|
|
`podweasel download ts --how-many=3` will download the 3 newest techsnap podcasts that have not yet been downloaded. (Skipping newer, but already downloaded ones). If the `--how-many` parameter is omitted, the `maxnum` parameter from the configuration file is used instead.
|