1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
# podcast
---
`podcast` is a command line podcast player.
[Linux x64 binary download](https://github.com/njaremko/podcast/releases/download/0.10.3/podcast-x86_64-linux)
SHA256 Checksum: ff245dc7fbe92c58d29af0894c9e301b8dd391e0fb78e7f1781db7105c9d97af
NOTE: Playback requires either mpv or vlc to be installed
It currently supports:
- [x] Subscribing to RSS feeds
- [x] Unsubscribing from RSS feeds
- [x] Streaming podcasts
- [x] Parallel downloading of multiple podcasts
- [x] Playing podcasts
- [x] Auto-download new episodes
- [x] Automatically check for updates
- [x] Shell Completions
- [x] zsh
- [x] bash
- [x] fish
- [x] powershell
- [x] elvish
- [ ] Searching for podcasts...(WIP)
By default, podcasts are downloaded to `$HOME/Podcasts`, but this folder can be set with the `$PODCAST` environmental variable.
How many latest episodes to download when first subscibing to new podcasts can be set in the `$PODCAST/.config.yaml` YAML file
Downloads can be done a variety of ways:
Individually: `podcast download $podcast_name 4`
Multiple: `podcast download $podcast_name 1,5,9-12,14`
All: `podcast download $podcast_name`
You can also use a portion of the name.
Podcast will pick the first podcast alphabetically that contains the given word (Case-Insensitive).
# Example Usage:
```sh
$ podcast subscribe "http://feeds.feedburner.com/mbmbam"
$ podcast ls
My Brother, My Brother And Me
$ podcast ls bro # List all the episodes of My Brother, My Brother, and Me
(447) MBMBaM 440: The Naming of 2019
(446) MBMBaM 439: Face 2 Face: Candlenights 2018
...
(2) My Brother, My Brother and Me: Episode 02
(1) My Brother, My Brother and Me: Episode 01
$ podcast play bro # Play the latest episode of mbmbam
$ podcast play "my brother" 446 # Play "MBMBaM 439: Face 2 Face: Candlenights 2018"
$ podcast download bro # Download all episodes of mbmbam
$ podcast download brother -e "The Naming" # Download the latest episode containing "The Naming"
Downloading: /home/njaremko/Podcasts/My Brother, My Brother And Me/MBMBaM 440: The Naming of 2019.mp3
$ podcast download bro 44 -e -a # Download all episodes containing "44"
File already exists: /home/njaremko/Podcasts/My Brother, My Brother And Me/MBMBaM 440: The Naming of 2019.mp3
Downloading: /home/njaremko/Podcasts/My Brother, My Brother And Me/MBMBaM 344: The Cream Beams to the Tower of Flavortown.mp3
Downloading: /home/njaremko/Podcasts/My Brother, My Brother And Me/MBMBaM 244: Slimefoot.mp3
Downloading: /home/njaremko/Podcasts/My Brother, My Brother And Me/MBMBaM 144: Kick it Forward.mp3
Downloading: /home/njaremko/Podcasts/My Brother, My Brother And Me/My Brother, My Brother and Me 44: Chunk Pump.mp3
```
# Generating completions:
```sh
# Generating completion for current shell:
$ podcast completion
... outputs stuff that needs to be loaded by your shell on startup ...
# Fish Shell Example
$ podcast completion fish > podcast.fish
$ sudo mv podcast.fish /usr/share/fish/completions
```
# Building
Building requires nightly rust
```sh
git clone git@github.com:njaremko/podcast.git
cd podcast
cargo install --path=.
```
|