<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[In today's session of #IMadeAThing: #Songhive]]></title><description><![CDATA[<p dir="auto">In today's session of #IMadeAThing: #Songhive</p>
<p dir="auto">This is a project that has taken me quite some work in the past months and it's finally ready to be announced.</p>
<p dir="auto">Imagine a fully federated (compatible with #ActivityPub and #Webmentions) social network built on top of your music collection.</p>
<p dir="auto">Not something like #Funkwhale, which only allows individual tracks, albums or playlists to be federated, but a real social network where you have a real profile that can comment, like, boost and quote tracks and anything and follow anyone on any server.</p>
<p dir="auto">Besides that:</p>
<ul>
<li><img src="https://citiverse.it/assets/plugins/nodebb-plugin-emoji/emoji/android/1f534.png?v=3bf51269064" class="not-responsive emoji emoji-android emoji--red_circle" style="height:1.4em;width:auto;vertical-align:middle" title="🔴" alt="🔴" /> Custom <strong>user-managed audio streams</strong> on top of it, with support also for #Icecast and #Snapcast, so you can play your radio with your favourite songs in loop and share an .mp3 link with your friends.</li>
<li><img src="https://citiverse.it/assets/plugins/nodebb-plugin-emoji/emoji/android/1f5c3.png?v=3bf51269064" class="not-responsive emoji emoji-android emoji--card_file_box" style="height:1.4em;width:auto;vertical-align:middle" title="🗃" alt="🗃" />️ <strong>Flexible storage</strong>, so you can hook an S3 bucket, a Google Drive, a Dropbox account, a Nextcloud folder, and your music from that storage will be immediately available to be streamed and shared through your server.</li>
<li><img src="https://citiverse.it/assets/plugins/nodebb-plugin-emoji/emoji/android/2601.png?v=3bf51269064" class="not-responsive emoji emoji-android emoji--cloud" style="height:1.4em;width:auto;vertical-align:middle" title="☁" alt="☁" />️ <strong>External music services</strong>, so you can hook your Jellyfin server or TIDAL account and get your collection all in one place.</li>
<li><img src="https://citiverse.it/assets/plugins/nodebb-plugin-emoji/emoji/android/1f399.png?v=3bf51269064" class="not-responsive emoji emoji-android emoji--studio_microphone" style="height:1.4em;width:auto;vertical-align:middle" title="🎙" alt="🎙" />️ Add support for <strong>podcasts</strong> synchronized over gPodder because why not.</li>
<li>၊၊||၊ Add support for the <strong>#Subsonic API</strong> so you can stream your music from your server from Substreamer or any compatible Android/iOS app, and a #mopidy extension to allow you to plug Songhive into your existing music server.</li>
<li><img src="https://citiverse.it/assets/plugins/nodebb-plugin-emoji/emoji/android/1f4b6.png?v=3bf51269064" class="not-responsive emoji emoji-android emoji--euro" style="height:1.4em;width:auto;vertical-align:middle" title="💶" alt="💶" /> And, most importantly, add support for <strong>payments</strong>. On two sides:
<ul>
<li><strong>For sysadmins</strong>: hosting a media server isn't free, and often it's not even cheap. Many open-source solutions lack integration with Stripe or crypto and handling of subscriptions. This doesn't give many incentives to someone to run a small media server for their friends or their band. Songhive provides a <code>paid</code> mode for <code>registration_mode</code>. Admin can set how much they want to charge their users to upload content on their server and how often (weekly, monthly, yearly...)</li>
<li><strong>For musicians</strong>: Songhive supports Stripe Connect integration with the ability to wire any number of payout accounts to the main account on the server. It means that musicians can connect their Stripe account, and set any songs or albums they want for sale for any price they want. Call it the federated #Bandcamp killer if you wish</li>
</ul>
</li>
</ul>
<p dir="auto"><strong>Links</strong>:</p>
<ul>
<li>My personal instance: <a href="https://manganiello.music" target="_blank" rel="noopener noreferrer nofollow ugc">https://manganiello.music</a></li>
<li>My federated Songhive profile: <a class="plugin-mentions-user plugin-mentions-a" href="/user/fabio%40manganiello.music" aria-label="Profile: fabio@manganiello.music">@<bdi>fabio@manganiello.music</bdi></a></li>
<li>Source code: <a href="https://git.fabiomanganiello.com/songhive" target="_blank" rel="noopener noreferrer nofollow ugc">https://git.fabiomanganiello.com/songhive</a></li>
</ul>
]]></description><link>https://citiverse.it/topic/55986dc0-32be-4fad-bf88-940dd34a2d6e/in-today-s-session-of-imadeathing-songhive</link><generator>RSS for Node</generator><lastBuildDate>Mon, 05 Oct 2026 13:46:57 GMT</lastBuildDate><atom:link href="https://citiverse.it/topic/55986dc0-32be-4fad-bf88-940dd34a2d6e.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 30 Sep 2026 12:30:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to In today's session of #IMadeAThing: #Songhive on Wed, 30 Sep 2026 15:00:47 GMT]]></title><description><![CDATA[<p dir="auto">Oh, and if you wonder why links to my manganiello.music Songhive instance are not rendered on Mastodon posts: <a href="https://github.com/mastodon/mastodon/issues/36081" target="_blank" rel="noopener noreferrer nofollow ugc">https://github.com/mastodon/mastodon/issues/36081</a></p>
<p dir="auto">It's not me, it's them.</p>
<p dir="auto">The .music TLD was registered in 2023, and the list of TLDs used by Mastodon to match valid URLs is 7 years old.</p>
]]></description><link>https://citiverse.it/post/https://manganiello.eu/objects/71477224-c3d4-4a71-99b7-875c76c8ef4a</link><guid isPermaLink="true">https://citiverse.it/post/https://manganiello.eu/objects/71477224-c3d4-4a71-99b7-875c76c8ef4a</guid><dc:creator><![CDATA[fabio@manganiello.eu]]></dc:creator><pubDate>Wed, 30 Sep 2026 15:00:47 GMT</pubDate></item><item><title><![CDATA[Reply to In today's session of #IMadeAThing: #Songhive on Wed, 30 Sep 2026 14:49:43 GMT]]></title><description><![CDATA[<p><span><a href="/user/fabio%40manganiello.eu">@<span>fabio@manganiello.eu</span></a></span> <span><a href="https://manganiello.music/users/fabio">@<span>fabio@manganiello.music</span></a></span> </p><p>This looks amazing!</p><p><a href="https://ohai.social/tags/NowListening" rel="tag">#<span>NowListening</span></a> </p><p>Fabio Manganiello - Laneez<br />https://manganiello.music/albums/e3c0b850-d8b7-4f53-95b1-de70f130ff91</p><p><a href="https://ohai.social/tags/Fediverse" rel="tag">#<span>Fediverse</span></a> <a href="https://ohai.social/tags/ActivityPub" rel="tag">#<span>ActivityPub</span></a> <a href="https://ohai.social/tags/Music" rel="tag">#<span>Music</span></a> <a href="https://ohai.social/tags/Songhive" rel="tag">#<span>Songhive</span></a></p>]]></description><link>https://citiverse.it/post/https://ohai.social/users/klu9/statuses/117360543864736280</link><guid isPermaLink="true">https://citiverse.it/post/https://ohai.social/users/klu9/statuses/117360543864736280</guid><dc:creator><![CDATA[klu9@ohai.social]]></dc:creator><pubDate>Wed, 30 Sep 2026 14:49:43 GMT</pubDate></item><item><title><![CDATA[Reply to In today's session of #IMadeAThing: #Songhive on Wed, 30 Sep 2026 14:51:52 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/kyisaiah47%40mastodon.social" aria-label="Profile: kyisaiah47@mastodon.social">@<bdi>kyisaiah47@mastodon.social</bdi></a> if you mount the remote Dropbox folder in Songhive and the token dies then any remote backing resources also die (there's no caching of remote mounts).</p>
<p dir="auto">In that case any federated audio objects also die in e.g. Akkoma, because it doesn't cache media files and it does a remote request to the instance.</p>
<p dir="auto">But it shouldn't die on Mastodon (already tested) because in most of the cases the instance caches its own copy of audio/media attachments when it gets on the inbox.</p>
<p dir="auto">Or, at least, it won't die until orphan media activities are purged.</p>
]]></description><link>https://citiverse.it/post/https://manganiello.eu/objects/c339da8c-d159-455a-8e04-9ad79298e300</link><guid isPermaLink="true">https://citiverse.it/post/https://manganiello.eu/objects/c339da8c-d159-455a-8e04-9ad79298e300</guid><dc:creator><![CDATA[fabio@manganiello.eu]]></dc:creator><pubDate>Wed, 30 Sep 2026 14:51:52 GMT</pubDate></item><item><title><![CDATA[Reply to In today's session of #IMadeAThing: #Songhive on Wed, 30 Sep 2026 14:19:02 GMT]]></title><description><![CDATA[<p><span><a href="/user/fabio%40manganiello.eu">@<span>fabio</span></a></span> I'd want a revoked Dropbox token to remove tracks from the federated view without breaking old posts.</p>]]></description><link>https://citiverse.it/post/https://mastodon.social/ap/users/116737298307885281/statuses/117360423208281506</link><guid isPermaLink="true">https://citiverse.it/post/https://mastodon.social/ap/users/116737298307885281/statuses/117360423208281506</guid><dc:creator><![CDATA[kyisaiah47@mastodon.social]]></dc:creator><pubDate>Wed, 30 Sep 2026 14:19:02 GMT</pubDate></item><item><title><![CDATA[Reply to In today's session of #IMadeAThing: #Songhive on Wed, 30 Sep 2026 14:15:12 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/rmdes%40indieweb.social" aria-label="Profile: rmdes@indieweb.social">@<bdi>rmdes@indieweb.social</bdi></a> <a class="plugin-mentions-user plugin-mentions-a" href="/user/fabio%40manganiello.music" aria-label="Profile: fabio@manganiello.music">@<bdi>fabio@manganiello.music</bdi></a> that's a good question - I migrated my tracks manually from my old Funkwhale instance, but I only had 3 songs of mine to migrate <img src="https://citiverse.it/assets/plugins/nodebb-plugin-emoji/emoji/android/1f606.png?v=3bf51269064" class="not-responsive emoji emoji-android emoji--laughing" style="height:1.4em;width:auto;vertical-align:middle" title="😆" alt="😆" /></p>
<p dir="auto">I can work on a proper database migration script for libraries and users from Funkwhale, it shouldn't be too much, but I'd need someone to test them because I no longer have a running Funkwhale instance.</p>
<p dir="auto">But worth noting that followers most likely can't be migrated - Funkwhale didn't implement federated account migration AFAIK and I haven't implemented it on Songhive either.</p>
]]></description><link>https://citiverse.it/post/https://manganiello.eu/objects/22d21de1-a609-42dd-b8f8-da874ccb3143</link><guid isPermaLink="true">https://citiverse.it/post/https://manganiello.eu/objects/22d21de1-a609-42dd-b8f8-da874ccb3143</guid><dc:creator><![CDATA[fabio@manganiello.eu]]></dc:creator><pubDate>Wed, 30 Sep 2026 14:15:12 GMT</pubDate></item><item><title><![CDATA[Reply to In today's session of #IMadeAThing: #Songhive on Wed, 30 Sep 2026 13:19:34 GMT]]></title><description><![CDATA[<p><span><a href="/user/fabio%40manganiello.eu">@<span>fabio@manganiello.eu</span></a></span> <span><a href="https://manganiello.music/users/fabio">@<span>fabio@manganiello.music</span></a></span> Hey Fabio very curious about this, do you have any experience migrating data from funkwhale to songhive ?</p>]]></description><link>https://citiverse.it/post/https://indieweb.social/users/rmdes/statuses/117360189409102927</link><guid isPermaLink="true">https://citiverse.it/post/https://indieweb.social/users/rmdes/statuses/117360189409102927</guid><dc:creator><![CDATA[rmdes@indieweb.social]]></dc:creator><pubDate>Wed, 30 Sep 2026 13:19:34 GMT</pubDate></item></channel></rss>