Funkwhale, dev, podcasts, federation
Another milestone today: #funkwhale channels can now successfully federate with other Funkwhale pods
Here again, sounds like an obvious feature, but up until now, my efforts were focused on federation with other platforms like Mastodon or Friendica.
While federation with other non-Funkwhale software is pretty basic (typically, the Audio activity is converted to a Note with a link to the Funkwhale page), federation with other Funkwhale pods is much deeper!
More information is federated, like the track duration, size, bitrate, the album/podcast serie if any, the track license, etc.
Also, it's not limited to Funkwhale but this merge request also ensure deletion of tracks, albums and channels is broadcasted over the federation, and handled properly when received by Funkwhale.
Funkwhale, dev, podcasts
So, it's now possible to list and manage channel subscriptions 🎉
I know, it sounds obvious, but the UI for this wasn't implemented ;)
The #Funkwhale sidebar will now display the most recently updated subscriptions, and a link to a page where you can view and manage all your subscriptions.
Quick demo of the feature in the attached video, the code is at https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1060, and you can actually try it yourself at https://channels.tests.funkwhale.audio/ if you're interested (login is demo, password is demo)!
Funkwhale, dev, podcasts 🎉
So, another milestone in the podcast was reached this week
You may remember we wanted our channels to be compatible with the current audio ecosystem. The first step was to ensure each #funkwhale channel had a RSS feed, to allow subscription outside of Funkwhale, through existing apps such as AntennaPod.
But there also the other side: what about existing podcasts available through RSS feeds, outside of Funkwhale? Can we make this content accessible within the platform?
Well, the answer is yes, and it's now possible to subscribe to any existing podcast from Funkwhale, using its RSS feed, as shown in the demo video below.
We'll need further testing to ensure it works with the widest range of podcast feeds available out there, but it's already usable!
Funkwhale, dev, moderation
One of the 0.21 roadmap items is the ability to federate reports with other #funkwhale pods and ActivityPub projects.
I've got a working prototype in the video below, showing a report federating from Funkwhale to Mastodon, and from Mastodon to Funkwhale. Federation from Funkwhale to Funkwhale is implemented and works too (with support for our reports category, like "Invalid metadata" or "Takedown request").
Hopefully, it will make moderators job easier and help increase the safety of the platform.
If you're interested, the feature itself is rather small : https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1049/diffs (less than 500 added lines, which I consider small for a feature that involves federation :D)
So I've included a full example in the video, in which you see me:
1. Creating a channel on https://channels.tests.funkwhale.audio (the development server with the latest channels-related code, https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/1033)
2. Copy the channel username from the #Funkwhale UI
3. Paste the username in Mastodon.social's search bar
4. Browse the corresponding profile in #Mastodon (with the channel cover and description)
4. Follow the channel in Mastodon
5. Publish two tracks in the channel, in Funkwhale's UI
6. Observe the corresponding tracks being displayed in Mastodon, with proper title and hashtags
7. After a while (there's a small delay in Mastodon), you can see the embedded player to listen to the tracks directly in Mastodon
Levels of excitement are rising!
This RSS feed means listeners will be able to subscribe to the corresonding channel using podcasting apps, like AntennaPod or VLC, even if they don't have a Funkwhale account.
If you are a podcast listener, would you mind trying to subscribe to the test feed linked below below from you typical podcasting app and let me know what works and what doesn't?
(you can also see the corresponding Funkwhale UI at https://channels.tests.funkwhale.audio/channels/cb00a95d-81c9-485e-8302-0c4e0ba15ba6, still a WIP)
One important thing: only the latest episode will play actual sound (the previous ones just have 1s of blank sound), that's expected.
So, in case people are wondering if #Funkwhale can actually federate with other fedi software such as Mastodon, the answer is yes.
I've included a demo video below. Let me give you some context:
- I'm using an account on mastodon.social (to show you that it works with a current release of Mastodon)
- I'm using development version of Funkwhale runing on my local computer, hence the ngrok.io URL.
This is basic, but it's to show you we're no t lying when we're talking about federation with other fedi software.
Follows will work as well, I'll share a video as soon as it's ready.
I've stumbled upon this ebook today: https://spellbookpress.com/books/temple-of-django-database-performance/
I bought it on a whim, because I had to pinpoint a lot of database performance issue in #Funkwhale lately.
It's shorter than I expected, but I definitely learned some things.
If you're intertested in #Django and #database perf (write efficient queries with/without the ORM, analyze query plans, optimize with defer, only, select_related, prefetch_related, F, Q, subqueries, indexes, etc.) you should probably give it a try.
I can send you my copy if we know each other also :)
It's a full overhaul of the way we handle images (such as album covers) in #Funkwhale.
It doesn't change anything at all for end users, but internally, the data model has changed completely.
Once it's reviewed and merged, it will make it possible to easily update album covers, add new images fields (e.g to tracks or artists), reference remote files, etc.
If you want to try the navigation/player/queue redesign, that will land in the next #Funkwhale release, you can do it at http://funkwhale.pages.funkwhale.audio/-/funkwhale/-/jobs/33754/artifacts/front-review/index.html
I'd appreciate any constructive feedback you may have :)
(you can submit the feedback here or at https://governance.funkwhale.audio/d/m9LlGf4T/redesign-of-the-sidebar-navigation)
The branch is still a WIP, but #Funkwhale will get a navigation/sidebar redesign.
The idea is to reduce the sidebar width, remove some duplicates entry (and ditch the fixed top navigation completely), offer a dedicated "queue" view and provide an easy way to browse personal content/activity (via the new "My Library" section).
This last bit is important, because our users are regularly asking for a way to browse their own albums/artists/playlists without seing what's included in third-party libraries. It will now be possible!
There are lots of things to polish and fix before this is ready, but you can at least get an idea.
Also, you can try it yourself, by visiting https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/923, and clicking the "View app" link under the first post (see screenshot)
Funkwhale, small goodie to wait before podcasts are actually supported
Worked on this today: https://code.eliotberriot.com/eliotberriot/audio-mirror
In particular, the "sync-podcasts.py" script allows you to mirror one or more podcasts feeds.
Each podcast will get a dedicated library, podcast files will be uploaded on your pod, and you can even set up a cron job to automatically have new feed entries pushed to your pod!
This should work with any podcasts that has a RSS feed available
Bugs are still possible of course, but it worked rather well during my tests 🎉
It's been in my mind for months, and I finally had the energy this morning!
I've included some screenshots in this post, but you can alse review/test the proposal at
https://dev.funkwhale.audio/funkwhale/funkwhale.audio/merge_requests/12 (basically go to http://funkwhale.pages.funkwhale.audio/-/funkwhale.audio/-/jobs/31400/artifacts/review/index.html and click "Credits" in the footer)
By the way, if you have think some projects/links are missing, just tell me (my mind got blurry after 50 or so :p)
Funkwhale, landing and about page redesign
Sooo, after months of discussion at https://governance.funkwhale.audio/d/aDqFmMuT/customizable-landing-page-for-instances, and lots of small MRs to prepare for it, I've started to work on the actual redesign of #Funkwhale's landing page earlier this week.
And I'm now confident enough to open a merge request and ask for feedback!
I also had to redesign the about page ;)
If you follow this link, you'll find:
- A short video to demonstrate the new pages (landing and about)
- Some links to try out a live version
Can you please try it out and tell me how it works for you?
Excerpt from the release notes for this feature:
In this release, we've completely redesigned the landing and about page, by making it more useful and adapted to your pod
configuration. Among other things, the landing page will now include:
- your pod and an excerpt from your pod's description
- your pod banner image, if any
- your contact email, if any
- the login form
- the signup form (if registrations are open on your pod)
- some basic statistics about your pod
- a widget including recently uploaded albums, if anonymous access is enabled
The landing page will still include some information about Funkwhale, but in a less intrusive and proeminent way than before.
Additionally, the about page now includes:
- your pod name, description, rules and terms
- your pod banner image, if any
- your contact email, if any
- comprehensive statistics about your pod
- some info about your pod configuration, such as registration and federation status or the default upload quota for new users
With this redesign, we've added a handful of additional pod settings:
- Pod banner image
- Contact email
- Terms of service
Just handled my first actual #Funkwhale report \o/
Funkwhale, account deletion
yay, account deletion is now fully supported, and starting in #Funkwhale 0.20, users will be able to request deletion without admin intervention!
This is broadcasted over federation, and we also keep a local copy of the username to ensure new users cannot signup with this username.
She helped designing new features, spin up our collective, maintaining our blog, ensuring our community is welcoming and safe, and plenty other things.
If you value the work we're doing with Funkwhale, please, please, consider subscribing to her Patreon. Any amount helps!
Thank you ❤️
The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!