ipod syncing; updated readme; rust 2024; version bump
This commit is contained in:
51
README.md
51
README.md
@@ -4,22 +4,20 @@ I listen to a lot of podcasts, and I am also a bit of a data hoarder when it com
|
||||
|
||||
To avoid being at the whim of the podcast host, I created this downloading tool to bulk download podcast episodes and store show notes. When using this tool, if an episode is removed from a podcast feed the file will stay downloaded and the show notes will be preserved, with the episode simply marked as no longer being available in the current version of the feed. Episodes which are changed and the author has marked the episode as changed as per a change in the guid will be downloaded as separate episodes.
|
||||
|
||||
This is not a podcast player, it is a data hoarding tool.
|
||||
|
||||
> **Note**:
|
||||
> This program is in version `0.0.0` because it is the first version that I am testing for problems and issues. Once I have used it for a little while with lots of different feeds, I will stabilize the format for the way metadata is stored and prevent breaking changes.
|
||||
Over time, this then evolved as a way to manage podcasts for my [iPod](https://support.apple.com/en-lb/docs/ipod/131146) running [Rockbox](https://www.rockbox.org/), including generating playlist files, syncing played episodes from the iPod back to the master copy, and loading the latest episodes on to the iPod.
|
||||
|
||||
## Installation
|
||||
|
||||
```
|
||||
git clone https://git.aaronmanning.net/aaronmanning/podcast-hoarder.git
|
||||
cd podcast-hoarder
|
||||
cargo install --path .
|
||||
cargo install --git https://git.aaronmanning.net/aaronmanning/podcast-hoarder.git
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
Open an empty folder for storing all podcast episodes and metadata and create a file called `podcasts.toml`. Here is an example of this file containing a few podcasts
|
||||
### Feed Setup
|
||||
|
||||
Open an empty folder for storing all podcast episodes and metadata and create a file called `podcasts.toml`. Below is an example of this file containing a few podcasts.
|
||||
|
||||
```
|
||||
[podcasts]
|
||||
99-percent-invisible = "https://feeds.simplecast.com/BqbsxVfO"
|
||||
@@ -27,21 +25,40 @@ this-american-life = "https://www.thisamericanlife.org/podcast/rss.xml"
|
||||
hello-internet = "https://www.hellointernet.fm/podcast?format=rss"
|
||||
```
|
||||
|
||||
Each line is in the format
|
||||
Each line is in the following format.
|
||||
|
||||
```
|
||||
alias = "rss_feed"
|
||||
```
|
||||
|
||||
It is also possible to replace the right hand side with an object `{ source = "rss_feed", skip_download = true }` if you wish to ignore the feed when downloading but still include it in playlist generation. This is particularly useful when a feed no longer becomes available, and you don't want to hit the download error every time.
|
||||
|
||||
The alias for the podcast is the name given to the folder where they are stored and the identifier for the sake of this app. This is simply to make downloads resistent to name changes in the feed. Changing an alias will cause a redownload of the episodes.
|
||||
|
||||
Then simply run
|
||||
```
|
||||
podcast-hoarder
|
||||
```
|
||||
to bulk download all current episodes.
|
||||
|
||||
Subsequently running the program will check for updates and download any new episodes as required.
|
||||
|
||||
Note that RSS feeds which start with `http` are fetched from the web, anything else is treated as a file path which allows local RSS files to be used as well.
|
||||
|
||||
### Downloading
|
||||
|
||||
Once everything is set up, you can run the following line to download all the episodes.
|
||||
|
||||
```
|
||||
podcast-hoarder download
|
||||
```
|
||||
|
||||
Subsequently running the program will check for updates and download any new episodes as required.
|
||||
|
||||
### iPod Sync
|
||||
|
||||
To sync podcasts to a Rockbox iPod, simply run
|
||||
|
||||
```
|
||||
podcast-hoarder <ipod-root>
|
||||
```
|
||||
|
||||
replacing `<ipod-root>` with the root directory of the iPod. This will generate playlists for all podcasts, sync the playlists to the iPod, and sync the episodes to the iPod.
|
||||
|
||||
You can also include the `--download` flag to include downloading within this command.
|
||||
|
||||
All podcasts have the prefix `[PC]` attached to their name. To each podcast `<podcast>`, there are two playlists, `[PC] <podcast>` and `[PC] <podcast> (unlistened)`. There is also a playlist `[PC] [Master Feed]` which contains all podcast episodes ordered from most recent to oldest.
|
||||
|
||||
When syncing played episodes from the iPod to the local copy, this program looks for the playlist named `[PC] [Listened]`, and if the file doesn't exist, it will be created the first time round. As such, simply add episodes to this playlist when they are listened to in order to sync the played status back and have them no longer appear in the `(unlistened)` version of the playlist.
|
||||
|
Reference in New Issue
Block a user