Description from the developer:
Pinepods is a podcast server that’s self hosted. It aims to be a multi-client version of what you might already have on your phone that allows you to listen anywhere. Host pinepods and get a web client, mobile apps, desktop apps, even a CLI app. Your progress syncs between all these. It supports gpodder sync for use with your existing apps if you want (though I’ve put 100 plus hours into the mobile apps and really would appreciate people at least giving them a go) and it has tons of features. Think Notifications on release, smart playlists, multi user, sharing, chapter support, YouTube channel to podcast support. Loads of stuff, and loads more still to come.
With 0.8.0 the mobile apps are now on Google Play and the Apple app stores, and the api has been fully rewritten in rust. It’s a lean mean podcasting machine. And actually the real current version is 0.8.1.
Excerpts from the Changelog:
Introducing PinePods 0.8.0 – The absolute biggest Pinepods release to date. Pinepods mobile clients are officially released! Additionally the backend api has gotten a complete rewrite in rust!
📱 Official Native Mobile App
- Flutter-Based App – Brand new official mobile app built with Flutter for iOS and Android
- Cross-Platform Synchronization – Seamless sync between mobile, web, and other Pinepods clients (More to come on other very soon)
- Offline Support – Download episodes for offline listening with intelligent storage management
- Native Mobile Features – Background playback, lock screen controls, notification management, and mobile-optimized UI
- Professional Distribution – Will be available on both iOS App Store and Google Play Store along with open stores such as f-droid and izzyondroid
The android apk will be attached to the github release. As well as released to the Google Play Store, f-droid, and izzyondroid Shortly after the 0.8.0 release. I need to get this release out in order to get them on the android stores fully.
Links:
🦀 Complete Rust API Transformation
- Python Elimination – All Python dependencies have been completely removed from the container, resulting in a dramatically smaller and more efficient deployment
- Horust Process Management – Switched from supervisor to Horust for robust, lightweight process supervision and startup management. This is part of removing the python dependency and also utilizes more great rust based dependancies
- Internal Task Scheduler – Background processes now run directly within the Rust API service using
tokio-cron-scheduler
, eliminating the Celery dependency entirely- Enhanced Reliability – Background tasks are more reliable with better error handling, automatic retries, and integrated logging
- Streamlined Container – Significantly reduced container size and complexity with the removal of Python runtime and associated dependencies
🔧 Infrastructure & Reliability Improvements
- Horust Service Management – All services now managed by Horust with proper process supervision, automatic restarts, and clean shutdown handling
- Integrated Background Processing – Podcast refresh, nightly maintenance, and cleanup tasks now run as scheduled jobs within the main Rust API service
- Database Operation Reliability – Improved server backup and restore operations with better error handling and validation
- Timezone Configuration – Runtime timezone configuration without container rebuilds, properly affecting all time-sensitive operations
- Simplified Deployment – Reduced container complexity and startup time with streamlined process management
🏗️ Development & Performance
- Pure Rust API – Complete rewrite of the Python API in Rust for improved performance, memory efficiency, and type safety
- Eliminated Dependencies – Removed Python runtime, Celery worker system, and associated packages from the container
- Better Resource Usage – Significantly reduced memory footprint and CPU usage with native Rust performance
- Improved Error Handling – Better error messages, logging, and debugging capabilities throughout the system
- Type Safety – Enhanced reliability through Rust’s type system and memory safety guarantees
🐞 General App Fixes and Improvments
- Better Youtube Support – The youtube search api is now embeded in the standard Pinepods Search api. This makes searching Youtube much faster and more consistent.
- Multi-Select Episodes – On the page for any given podcast you can now select and take actions on any given number of episodes. This allows you to mark all episodes of a given podcast as complete in one fell swoop. Arrows also appear on the episodes allowing you to mark all episodes newer or older than a particular episode.
- Playlist Limits – System Playlists are now limited to a max of 1000 episodes. This will take the most relevant 1000 for the playlist.
- Playlist Fixes - Also fixed an issue with the Almost Complete playlist where the completed percentage wasn’t working correctly.
- Category Fixes - Categories throughout the app have been improved. Sometimes they would previously show as a strange looking vector. This will no longer occur.
- Premium Feeds - Premium feeds should now be fully functional everywhere.
- Backup/Restore Database - The Backup and Restore functionality has been 100% totally rebuilt. This should fix some issues that it previously had with actually restoring. There’s also an option to schedule backups now. So that they run on a regular basis. The restore option will automtically see these backups as options to restore from.
- Subscribed People Fixes - The functionality around subscribed people has gotten some major fixes as well. This should fix numerous bugs related to people subscription
- Match Podcast Index IDs - There’s a new option in settings to match a podcast to it’s podcast index counterpart. Having this ID correct will allow for more consistent host following.
- Auto Complete Options - There’s also been an option added to playback settings in the settings area to auto complete an episode if it gets to a certain amount of seconds to the end of it. For example, you can set it to 30 seconds and if an episode is within 30 seconds of the end it will automatically mark it complete.
- Authenciation options added to NTFY Notifications - The NTFY notification settings now support username and passwords or authentication tokens. These can be skipped entirely still if you have no auth.
- Additional OIDC Settings - Experimental name claim settings added to to OIDC setup area. Name, email, user, roles claim options. As well as admin and user roles have all been added.
🕸️ Website Rebuild
- The Pinepods Website has gotten a complete revamp! It’s looking much nicer!
- Many more docs have been written as well. There’s documentation for just about every option in Pinepods. If you find something missing please let me know!
Pinepods is a podcast server that’s self hosted. It aims to be a multi-client version of what you might already have on your phone that allows you to listen anywhere. Host pinepods and get a web client, mobile apps, desktop apps, even a CLI app. Your progress syncs between all these. It supports gpodder sync for use with your existing apps if you want (though I’ve put 100 plus hours into the mobile apps and really would appreciate people at least giving them a go) and it has tons of features. Think Notifications on release, smart playlists, multi user, sharing, chapter support, YouTube channel to podcast support. Loads of stuff, and loads more still to come.
With 0.8.0 the mobile apps are now on Google Play and the Apple app stores, and the api has been fully rewritten in rust. It’s a lean mean podcasting machine. And actually the real current version is 0.8.1.
Sounds good. How would this benefit someone running audiobookshelf for getting podcasts, and nextcloud gpodder sync for synchronization, plus AntennaPod as an Android app? I feel some difficulty getting new podcasts into the queue outside of AntennaPod…
In the addition to everything the other commenter said, I would ask that you glance at the documentation briefly on the official site. There’s just a mind numbing number if features that set Pinepods and Audiobookshelf apart and there’s docs for just about all of it. Absolutely no shade, Audiobookshelf it’s a phenomenal project. But Pinepods is podcasts, that’s it’s entire identity, and it shows
https://pinepods.online/
Fyi, there’s an Adguard blocklist for *.online urls :(
Edit:
Rule(s)
HaGeZi’s The World’s Most Abused TLDs
Can’t win em all :/ No matter what I do there’s always difficulty that comes from somewhere. Difficulty getting the app released in certain countries due to Apple’s strict rules, difficulty with people confusing pinepods with pine64s pinebuds and commenting on every post about it, difficulty with using .online domains now. I just picked the best available domain at the time. I really wish I had pinepods.com.
I’ll continue making the app the best it can be taking on one challenge at a time. There will always be blockers for some people for one reason or another.
I feel your pain, man. IIRC this is not a standard list. Just one I added afterwards. Keep at it. Seems like you are doing many things right. 👍🏼
deleted by creator
The biggest benefits are likely:
The first two may not apply to you in particular, but I’m sure if you have other users that use the services you support then I’m sure they would appreciate having to learn/use a single app/interface for podcasts instead of having to learn one for searching/downloading (if they care about that at all), one for listening on mobile, one for listening on web, and another for managing their download/play sync.
Hey thanks for selling it! 😀
Sounds good. Thanks. I was using music assistant with my Sonos speakers, but I found the direct Sonos integration in Hass to be more reliable. Is there any way of getting the podcasts to show up as in the media sourcew in home assistant?
Any other way of sending the audio to my Sonos speakers?
Stay tuned in the very near future. All that sharing, beaming functionality is very shorterm roadmap stuff.
Hey, I just got it running via docker compose. Gotta say it was a very smooth startup. I usually mess up my ports (I keep them incremental), but not even that. It was up and running in under a minute. I am currently importing my podcasts via opml. Themes are awesome. Hot dog stand threw me back a few years! 😄 👍🏼
I’m not too sure - I’m not too familiar with any of these services (including PinePods 😂). I know this type of feature is a common request for any audio related services though. I imagine that this is something that could be added at some point, but I’m not sure what the effort would be.
I don’t see anything about it on the roadmap for v1 or anywhere else on Pinepods’ issues. Perhaps the developer/maintainer @madeofpendletonwool@lemmy.world can chime in or an issue on Github can be created with more information about this feature request?