#microformats 2024-12-17
2024-12-17 UTC
[tw2113], Kupietz, gRegor, srijan, [jgarber], carrvo[d], peterkaminski, Tiffany, Guest6, [Joe_Crawford], barnaby, gRegorLove_, [snarfed], [manton], sebbu2 and [KevinMarks] joined the channel
# benpate Hello! I'm working bandwagon.fm -- on an open source server where indie bands can post and stream (and someday sell) their music online. The server currently reads some basic microformats, but I'd really like to go deeper with audio-specific microformats. My goal would be to open up interoperability (especially search) with people posting music via IndieWeb.
# IWDiscord <benpate>
# benpate I've looked through the old hAudio spec (http://microformats.org/wiki/haudio) for v1, and I'm wondering if there's any interest in updating this for v2?
# IWDiscord <benpate>
# benpate I'll try to get some thoughts together soon, for feedback. But if anyone wants to jump in with me early, I'd love to have your help!
# benpate [edit] Hello! I'm working bandwagon.fm -- on an open source server where indie bands can post and stream (and someday sell) their music online. The server currently reads some basic microformats, but I'd really like to go deeper with audio-specific microformats. My goal would be to open up interoperability (especially search) with people posting music via IndieWeb.
# IWDiscord <benpate>
# benpate I've looked through the old hAudio spec (http://microformats.org/wiki/haudio) for v1, and I'm wondering if there's any interest in updating this for v2?
# IWDiscord <benpate>
# benpate I'll try to get some thoughts together soon, for feedback. But if anyone wants to jump in with me early, I'd love to have your help!
[schmarty], barnaby and [fluffy] joined the channel
# [fluffy] Hello! As we were discussing in email, there’s a lot I don’t like about the hAudio specification as it exists right now. Starting with the name - “audio” covers a lot of ground, including podcasts, singles, albums, field recordings, samples, etc., and I’d rather see a much more focused name that’s specific to the class of what we’re trying to interop on.
# benpate Agreed. Interchangeable pieces are nice, but there comes a point when things are SO generalized that they aren’t useful anymore.
# IWDiscord <benpate>
# benpate How about something direct, like `h-album` and `h-track`
# [fluffy] Ah, I’ve been curious about http://libre.fm, although I’m usually pretty confused about how to actually do anything with it.
# [fluffy] The use case that @benpate and I have been discussing is specifically for syndicating information about albums as a whole for things like http://bandwagon.fm, bandcrash, http://TheIndieBeat.fm, RadioFreeFedi, etc.
# benpate I’m only on a phone right now, so I can’t view source. But I’ll agree I’d like to say explicitly “this is an album” and “this is a song” — it will make it much easier for me to know what I’m looking at, and to add it into an album list.
# [fluffy] @benpate you can use http://pin13.net to parse out the microformats to get the structured data, e.g. https://pin13.net/mf2/?url=https%3A%2F%2Flibre.fm%2Fuser%2Fmattl%2Fscrobble%2F1733940140
# benpate Thanks! Checking that out now.
# [fluffy] http://bandwagon.fm is basically indieweb/activitypub Bandcamp. bandcrash is my own encoding pipeline that makes it easy to produce your own self-hosted website with embedded/distributable music on it. TheIndieBeat and RadioFreeFedi are streaming radio for indie music which would be consuming the data in order to find artists and their music.
# benpate Yeah, think Federated, IndieWeb Bandcamp, and you’re 90% there
# [fluffy] The use case here is to try to make it easier for music discovery stuff to find stuff that’s hosted in any number of ways, including one’s own website (e.g. https://sockpuppet.band/).
# benpate Yes, and it’s a pretty good storefront, too. But people are worried that it’s getting (or going to get) enshitification by the new owner
# benpate Yes. I have ~130 bands on Bandwagon.
# [fluffy] Oh also http://mirlo.space is another player in this, uh, space.
# benpate And, that’s holding off other people launching their own servers, because it’s too new. In Jan/Feb, there will be many other Bandwagon sites people can use, or self-host their own.
# benpate Thanks for mentioning Mirlo. There are a couple others, too. I’m hoping this Microformat effort will help us to interop with a number of other siloed systems.
[slack_sp] joined the channel
# benpate Bandwagon is pretty easy to run. Theres a Docker image that.. just works. It’s built with Go and Mongo, and depends on FFmpeg for media transcoding.
# gRegor Aside, [fluffy], if you're streaming music in a browser you can use https://web-scrobbler.com/ to scrobble to libre.fm, similar to scrobbling to last.fm
# benpate Sites would likely be run by labels or coops. It’s possible to run your own, but probably unlikely.
# benpate That’s a larger issue. I want to work with BlueSky, too, but implementing ATP will be a ton of work. I think multi-protocol is definitely the future.
# benpate Do you work with Go? Wanna help me build ATP?
# [fluffy] gRegor I’ve been using a combination of PlexAmp and Apple http://Music.app to listen to my own locally-hosted music collection, and getting them to work with http://last.fm was super easy, barely an inconvenience. But I don’t do web-based music streaming.
# [mattl] benpate: I'm too busy with http://Libre.fm and other stuff.
# [tantek]2 btw last time discussions of audio and media were active, there was more movement towards using hMedia instead of hAudio
# [fluffy] Anyway my main interest is with the idea that I find a site that catalogs indie music and I can just point it to my music webpage and it can parse out the data in some form. I’m not super interested in worrying about things like push notifications or building a timeline or subscribing to a sea of updates from every musician on the planet.
# [tantek]2 we should probably mark hAudio as abandoned somehow
# [tantek]2 if there's interest in starting an h-media mf2 vocabulary based on hMedia, that's worth discussion
# [tantek]2 I would start with (re)documenting today's use-cases you are trying to solve with interop across different systems
# [fluffy] like http://last.fm is a pretty good target I think? (the site as a whole, not the scrobbling stuff, even though scrobbling seems to be all that anyone uses it for anymore)
# [fluffy] I guess http://musicbrainz.org would be a better example
# [tantek]2 a whole site is not really a use-case though
# [tantek]2 it's like what do you want to do as a human on site/service X to then have it do something else on site/service Y?
# [tantek]2 the full set of lastfm functionality is probably not it either
# [tantek]2 [fluffy]++ that posting music than have information about it be available is reasonable. question is, is there actual interest / intent from both parties (obviously yes on your publishing side)
# [tantek]2 but at this point, I would not hold my breath for the current owners of lastfm implementing anything
# benpate @tantek I'll have to dig into h-media, but yes: if that's the best starting point, then I'd love to discuss a mf2 vocabulary for that.
# [tantek]2 the other thing we have found is that if a use-case requires building of a new product or new product feature, that's also unlikely to happen just because someone proposed a standard somewhere
# [tantek]2 benpate are you building something to publish or consume such information or both?
# [tantek]2 that's encouraging [fluffy]!
# [tantek]2 right, and one thing we changed with mf2 vocab development is making sure there are consuming code implementers in the conversation
# [tantek]2 experience has shown that publish-only proposals / specs really don't go anywhere
# [tantek]2 what does the consuming code/service do today that's visible, and are they part of this conversation or is the code OSS so folks here can file PRs that would implementing consuming some new format?
# benpate [tantek]2: I think there is an interest, at least for me. I'm publishing this data over ActivityPub now, and looking to open this information up in other ways, too. My goal is to enable a network of band sites to all contribute album and song information into a shared database. I think MF2 could be perfect for this.
# [fluffy] (but if this is something http://brid.gy could eventually add, well that’d be super)
# [tantek]2 yup that part makes a lot of sense
# [tantek]2 benpate, when you say "there is an interest, at least for me", are you writing consuming code? or only publishing code?
# [tantek]2 this "into a shared database" — is that existing or would that need to be built?
# benpate Yes. Bandwagon will *be* a consumer of this data, too, as a search engine that scans many indie sites (like Faircamp and others) . ActivityPub is hard, MicroFormats are easy, so if all those DIY sites can present their data in MF2, then I can add them to the search index.
# [tantek]2 awesome
# benpate [tantek]2: I am building that now. It's a self-hosted music search engine anyone can run.
# [tantek]2 very cool! is there a prototype we can play with to search?
# benpate [fluffy]: Sorry. Not trying to hide anything. There are many layers to this initiative.
# benpate My code is all open source, on github.com/EmissarySocial/emissary. The search engine hasn't left my laptop, though. It's still very early.
# benpate Yeah, music discovery is a whole thing. I've posted this in the roadmap, if you're interested: https://bandwagon.fm/roadmap
# benpate @tantek - I've been skimming the h-media proposal. It looks fine for individual songs, and I like the ability to embed a player, too. I also need a way to *group* media elements into albums. Does the standard cover this, or would that be addressed in another section?
# benpate [fluffy]: Yeah, it's going to be really cool. I hope to have something demo-worthy by FediForum. The first step is to get "following" working on local data, then to build the web crawler that can pull in data from around the web.
[jamietanna] joined the channel
# [fluffy] One of the big open questions I keep having about this stuff is how to handle the relationship between albums and tracks that live on separate pages. Like, it’s pretty obvious that a page with an album (e.g. `https://sockpuppet.band/album/transitions`) can easily include the data for all of the individual tracks as well as having the links to the individual track pages. But seems a little wonky for each individual track (e.g.
# [fluffy] `https://sockpuppet.band/track/paper-cuts`) to include the full data of the album itself (including the other tracks), but should at least have a link of some sort to the collection that contains it.
# benpate Yeah, the SQL database engineer in my keeps wanting to normalize all the data. In this graph-database world, I think that would mean having a canonical URL for each record, with `rel` links up and down the hierarchy.
# benpate You've got individual pages for each album, and each song, so why not just lean into that with additional MF2 classes?
# [tantek]2 benpate I think playlists and albums are related and perhaps that could be solved with a combination of h-feed for the "set" and h-media for the individual items
# benpate Yes, playlists and albums are (pretty much) the same thing. I'll want to make sure we can get a little extra metadata into albums, such as release date, license, etc, but I think that's probably doable.
# benpate [fluffy]: Would this work? You could include a link to the album. `<a href="my.album.html" class="u-album">Album Name</a>
# benpate (or multiple links, if the song appears on many albums)
# benpate Yeah, if it was a database, we would just have a parentId, or something.
# gRegor Maybe some prior work on https://indieweb.org/collection, though not sure if with any specific microformats
# benpate And, looking at `h-entry` as an example, there's nothing that says "this entry is a member of this feed", so we'll need something like `u-feed`, `u-collection`, or `u-member-of`. ActivityPub has `part-of` when identifying CollectionPages in a Collection, but I don't think this is used to indicate an item, like a toot, is a part of a collection.
# benpate gRegor: True. Is there a difference between a "Collection" and a "Feed"? On the surface, I think I expect a feed to be updated in the future, but I'm not really sure how they'd be used differently in this context.
# benpate [fluffy]: Ew. Gross. 😛
# [fluffy] honestly most of what I do with mf2 is to do the minimum necessary to make http://brid.gy and webmention work 😛
# benpate IANA lists `rel=collection` - that's also a possibility.
# gRegor yeah, was just skimming through https://microformats.org/wiki/existing-rel-values
# benpate agreed. what about this, albums contain songs (or links to songs) but songs only contain a `u-collection` that points back to their container. An item shouldn't contain its container, but it *could* include a link to it.
# benpate And, I think Albums should probably be something generic, like `h-feed` as tantek recommended. But, then I'll still need some kind of metadata that says "this is an album" or "this is a playlist"
# benpate Okay. That works for me. We really just need a link, anyway. Chances are that an album page leaves out a lot of information about its individual songs, for example, song lyrics, etc.
# benpate Still, it looks pretty good.
# benpate We'd just need a way to say "this item is a song". An MP3 attachment would be nice, but there could be lots of reasons you have a song page without the actual song included. We'll still need to label it as a song, somehow.
# benpate (ditto for the album, ahem.. playlist, that contains it)
# benpate Gotta love MicroFormats + CSS 🙂
# benpate Looks good!