this post was submitted on 23 Dec 2024
245 points (98.8% liked)

Selfhosted

40746 readers
710 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS
 

Hey all,

For quite a long time now I've been working Pinepods. It’s a Rust based podcast management system that manages podcasts with multi-user support and relies on a central database with clients to connect to it. It’s complete with a browser based client where your podcasts and settings follow you from device to device due to everything being stored on your server. There's installable clients on just about every platform - now including a beta build of an Android client! (Also a flatpak, aur, Mac, windows, deb, appimage, and rpm client as well)

Over time this project has really grown into something great, and many quality of life features have been baked in. The experience of using Pinepods at this point is getting close to some of the larger self-hosted projects such as Immich, and as feature complete as a client such as AntenaPods. I can't believe that a project hasn't previously heavily focused on becoming a fully feature complete Self-hosted Podcast platform because of how rooted in the spirit of open source the podcast ecosystem is built to be.

So many nice to haves have been added at this point:

  • chapter support
  • sorting/filtering/searching throughout
  • RSS feed hosting for other apps to use
  • Great mobile support everywhere (PWA, beta android client)
  • Nextcloud/Gpodder sync support -Postgres or MariaDB
  • simple API's for things like Homepage Widgets!

And lately I've even been working on a feature that allows you to subscribe to hosts! This will let you follow them from show to show. I've built a side project called PodPeopleDB for that: https://www.pinepods.online/blog/2024/12/08/podpeople-db

Chances are, if there's a feature in a podcast app that's a must have for you, it's already built in, and if it isn't, I want to know about it so I can add it!

If you’re on the fence you can try it out without installing the server too! Check the website for more info!

Now is the perfect time to check it out and enjoy continued feature updates! Feel free to open issues or PRs if you experience any problems. Or drop a line on the discord. I’m happy to help!

GitHub: https://github.com/madeofpendletonwool/Pinepods

Official site: https://pinepods.online/

In case you're unware. What is podcasting 2.0?

top 35 comments
sorted by: hot top controversial new old
[–] fmstrat@lemmy.nowsci.com 37 points 4 days ago (2 children)

Looks cool, but fair warning, if and when Pine64 releases ear phones, your SEO results are probably in for a shock.

[–] madeofpendletonwool@lemmy.world 28 points 4 days ago

I get that comment often. I'll change the name if I have to. But it's a small open source project. My SEO results are already non-existent.

[–] bitwolf@sh.itjust.works 13 points 4 days ago (1 children)

Pine64 calls them pinebuds, so I think they're good for now.

[–] toynbee@lemmy.world 19 points 3 days ago

Would have been more fun, if less accurate, to call them pinecones.

[–] ExperiencedWinter@lemmy.world 20 points 4 days ago (1 children)

You might want to explain to your potential users what podcast 2.0 features are... I'm sure you've been living inside podcasts while working on this, but normal people have no idea what that term means

[–] madeofpendletonwool@lemmy.world 13 points 4 days ago (1 children)

Excellent point, I will include communication around Podcast 2.0 and all it's features in the future.

[–] ExperiencedWinter@lemmy.world 1 points 4 days ago

Why wait for the future? You could have just pitched some of those features....

[–] rutrum@lm.paradisus.day 12 points 4 days ago (1 children)

Cursed tech stack and image. Project looks cool. Can you elaborate more on why you used rust for front end and python for backend? I would assume rust would have been more applicable for back end work. Then again, Im not familiar with fastAPI.

[–] madeofpendletonwool@lemmy.world 16 points 4 days ago* (last edited 4 days ago) (2 children)

It's a carryover from the original project. I did a complete rebuild of the frontend at one point to wasm due to rust having good frontend support with Yew. I plan to rebuild the backend too. All in due time.

I'm likely to rebuild the backend in Go, and while there will be a speed difference to a degree, the api isn't sending complicated data. The bottleneck in response times usually isn't what you'd make up for using a lower level language. Usually it's more likely query times and Frontend processing. The Frontend rebuild MASSIVELY sped things up. Which is why I started there.

And yeah, doc site needs a refresh. I spend too much of my Pinepods time programming.

[–] rutrum@lm.paradisus.day 6 points 4 days ago (1 children)

And how do you like yew? Long ago I used seed.rs, which was more like ELM than react. But I think that project has since gone unmaintained. I also tried yew when I think they were in the middle of a huge API transition. Do you think its easier to write in yew than it would be in react/vue/svelte?

I like it a lot. It's not particularly difficult to write and once you get a feel for building components it's pretty simple to conceptualize just about anything you'd need to build. I'd probably say difficulty is about the same to write react/svelte etc.. Primary difference is that I don't need to deal with webpack/npm dependencies. Absolute worst. web_sys support is great in rust and does absolutely everything you'd need to interact with a browser.

[–] d_k_bo@feddit.org 2 points 4 days ago (1 children)

I'm likely to rebuild the backend in Go

Why bother with another language? Rust offers multiple great backend options. Using the same language for both ends might allow reusing some parts.

Go is simpler to write and is great for apis. Also has strong library support for interacting with databases. That's the primary reason. They both create compiled binaries which means no library dependencies taking up space on the container. That's the primary issue with python currently. I have no problem using actix in rust and that might be a good direction to go honestly, the primary concern is removing the compile at runtime language.

[–] Sibbo@sopuli.xyz 8 points 4 days ago (1 children)

That sounds awesome!

I'm currently using antennapod. Do you think I can switch already? Can I import my antennapod history?

[–] madeofpendletonwool@lemmy.world 7 points 4 days ago (1 children)

With the android App in Beta I'd continue using AntennaPods along with it. With Nextcloud/Gpodder sync or RSS feed exporting Pinepods is built to be great along with your current favorite apps. Not completely replace them. The goal is that it it could replace apps, but it doesn't have to. You should be able to listen however you want to.

[–] Sibbo@sopuli.xyz 3 points 4 days ago

Cool, so I can use pinepods to sync antennapod across devices? That's awesome!

[–] slug@lemmy.world 3 points 4 days ago (1 children)

does this support filtering incoming episodes based on text in title? like exlcuding podcasts with "Preview" in the title for trunctated premium episodes in normal feeds? i'm amazed every piece of podcast software doesn't include functionality like that.

[–] madeofpendletonwool@lemmy.world 8 points 4 days ago (1 children)

Exclusion filtering! What a great idea! You can quickly filter by keyword for episodes currently but you can't exclude certain words. I will get exclusion filtering added. The code is already in place for it!

[–] hersh@literature.cafe 2 points 4 days ago

Related feature on my wish list: I'd love a way to basically fork a feed based on regex pattern matching. This would be useful for some premium feeds that lump multiple podcasts together. For example, one of my Patreon feeds includes three shows: the ad-free main feed, the first-tier weekly premium feed, and the second-tier monthly premium feed.

I don't want to filter them out because I DO want to listen to all of them, but for organizational purposes I don't want them lumped together. I'd prefer to display these as two or three separate podcasts in my display.

Another example is the Maximum Fun premium BoCo feed. They include the bonus content for ALL their shows (which is...a lot) in a single feed. I only listen to about half a dozen, and even that is a bit of a mess in one feed!

[–] TheLongPrice@lemmy.one 3 points 4 days ago (1 children)

Is there any kind of offline syncing feature for the mobile app if you are disconnected from the server?

There's an offline mode on the clients to listen to downloaded episodes locally. That does not work on android just yet. That's part of what makes the android client beta. All the clients (including android) are built with Tauri, so they all build from the same code. It does however introduce some challenges when finding libraries that will compile to both desktop and mobile.

[–] Ulrich@feddit.org 3 points 4 days ago (2 children)

I can't believe that a project hasn't previously heavily focused on becoming a fully feature complete Self-hosted Podcast platform

...y tho? What's the point?

[–] madeofpendletonwool@lemmy.world 12 points 4 days ago (1 children)

Same reasons for any Self hosted projects. Own your data, Archive the content, I like Self-hosting. Pick your favorite reason. Podcasting is built to be an open platform. It deserves open and Self Managable clients.

[–] Ulrich@feddit.org 3 points 4 days ago* (last edited 4 days ago) (1 children)

But you can do all of that with an app on your local device.

[–] madeofpendletonwool@lemmy.world 12 points 4 days ago (1 children)

You can, on your local device. Pinepods syncs progress between devices instantly. I like to switch between laptop and phones. If you only listen on your phone and the app works for you that sounds like a great solution already.

[–] Ulrich@feddit.org 1 points 4 days ago
[–] atzanteol@sh.itjust.works 3 points 4 days ago (1 children)

I'm at a bit of a loss as well... The official site talks more about Python, rust and open source than just explaining what the project's point is.

Pinepods is a complete podcast management system and allows you to play, download, and keep track of podcasts you (or any of your users) enjoy.

So does my podcast client - which is on my phone where I listen to podcasts.

[–] madeofpendletonwool@lemmy.world 9 points 4 days ago (1 children)

Absolutely true. And if you only listen to podcasts on your phone that's a great solution. I like to switch between phone and laptop, and Pinepods syncs progress of everything on any client nearly instantaneously.

[–] atzanteol@sh.itjust.works 1 points 3 days ago (1 children)

Like how though? Even a single use-case would be really helpful in understanding what this does.

How would I use antennapod and have it sync with a desktop client?

[–] oldfart@lemm.ee 2 points 3 days ago (1 children)

Dude just explained to you that his program can sync progress on phone and desktop. How is that not a valid use case?

[–] atzanteol@sh.itjust.works 1 points 3 days ago (1 children)

So then - How would I use antennapod and have it sync with a desktop client?

[–] y0kai@lemmy.dbzer0.com 2 points 3 days ago (1 children)

I feel like you don't and that's the reason for pinepods existence. You use pinepods and not antennapod.

Unless I'm misunderstanding?

[–] atzanteol@sh.itjust.works 1 points 2 days ago

Ah, I think I got confused about that from the mention of antenna pod in the description. Seems this is basically just a podcast webapp.

[–] ComradeMiao@lemmy.dbzer0.com 2 points 4 days ago (1 children)

How does this compare to podgrab and audiobookwhatever

Significantly upgraded just about everywhere. More features, supports modern podcasting 2.0 support, works great on mobile devices, sync support. The list goes on.