jeff-hughes / shellcaster

Terminal-based podcast manager built in Rust
GNU General Public License v3.0
199 stars 12 forks source link

Make lib separate and make a command line interface. #34

Open sern opened 3 years ago

sern commented 3 years ago

Thank you for making shellcaster! It is doing exactly what I need i.e. parse an xml feed and download episodes. However, it would be nice to have a command that downloads all episodes (not only syncing) and possibly a more powerful command line interface. Being able to automatically download all episodes with a single command is especially important for me because I want to use a cronjob to automate it. It would also be nice to make the feed parser an independent library. I can see many uses of such a library. For example, I'm making a Discord bot that allow members to listen podcasts together, and I need a library just being able to get a list of episodes with metadata e.g. name, description, url, without actually downloading them.

jeff-hughes commented 3 years ago

I had given that idea some consideration early in development, having both a TUI and a command-line interface. I eventually decided against it because there are already a number of command-line podcast managers out there and I wanted to focus on "doing one thing well". I'm willing to revisit that decision, though -- have you tried other command-line applications, and if so, what were they not doing that you wanted to do with them?

With a quick search, I came across: castget, podfox, greg, podget, and puckfetcher. I have not tried any of these, but I'm curious whether one of them suits your needs, and if not, what they're lacking.

On a side note, I will say that adding downloads to the shellcaster sync subcommand is already on my list of things to do. It will be set up so that if your config file is set to "always" download, or if you use the --download flag, it will download the new episodes when syncing. So that will get added, at least.