Inspiration

I've tried many different podcast players on the linux desktop, but all of them either:

  1. Are webapps, which I don't like because I prefer native apps.
  2. Don't keep track of where I stopped when I was listening to the podcast last.
  3. Don't fit with my desktop theme.

What it does

YAPP is a terminal-based podcast player made to solve these issues.

How I built it

YAPP is built in C++ and cmake, with mpv as a backend for audio and git as version control. It's built around parsing podcast XML files and downloading + playing the episodes within.

Challenges I ran into

I'm all alone, so keeping up with the time restraint was hard, especially in a language like C++. Stuff that might be simple in a language like python, such as writing a GUI or playing audio, ended up taking hours in C++. If I had someone else helping me create the GUI, there may have been one ready by the end of Technica! Unfortunately, right now, there's just a temporary text interface.

Also, Object Persistence was something I didn't even have a chance to touch, which means YAPP is really a one-and-done application.

Accomplishments that I'm proud of

Fitting the mpv backend into YAPP was TIGHT. Just barely worked, and heck, I still barely have any idea what I coded. Also, my backend work on parsing XML and getting episodes is really clean! Love that.

What I learned

Tip: Don't use a C++ for project with a time-constraint when you don't have any teammates.

I mean, I still had a lot of fun! I love coding in C++. But jeeeeeeze. At the very least, I should've aimed for something a bit smaller.

What's next for YAPP

First things first, get mpv to seek the spot I was last playing the podcast at. From there, get object persistence working. Finally, a proper GUI! And by proper, I mean using ncurses, but, you know. Better than "input a number."

Who I Am

I'm Skye Jonke (she/her). I've been working with computers for most of my life, but this is my first hackathon! I'm a freshman at UMD.

Built With

Share this project:

Updates