LIBPIPEWIRE-MODULE-METADATA(7)
π libpipew...-metadata(7) β Miscellaneous Information Manual π
okay bestie, sit down, we're doing metadata today π
this is the page for libpipewire-module-metadata, straight outta the Miscellaneous Information Manual, and it's genuinely not that deep, I promise. iykyk.
β¨ NAME β¨
libpipewire-module-metadata β Metadata. literally what it says on the tin π
π¦ DESCRIPTION π¦
so basically? this module lets clients export a metadata store to the PipeWire server. that's the whole vibe. π«Ά
the way that BOTH the client AND the server need to load this module for the metadata to actually get exported. like, both of you. no skipping. π
this module creates a new factory and a new export type for the PW_TYPE_INTERFACE_Metadata interface. iconic behavior honestly.
a client will first create an implementation of the PW_TYPE_INTERFACE_Metadata interface with pw_context_create_metadata(), for example. then, with pw_core_export(), this module will create a server side resource to expose that metadata implementation to other clients. and girl β modifications done by the client on the local metadata interface will be visible to all PipeWire clients. all of them. the whole group chat. πβ¨
it's also possible to use the factory to create metadata in the current processes using a config file fragment. flexible queen π
and as an argument to the create_object call, a set of properties will control the name of the metadata and some initial values. we love a configurable moment.
πΈ MODULE NAME πΈ
libpipewire-module-metadata
π MODULE OPTIONS π
this module has no options.
...that's it. nothing. zero. not a single flag. she's low maintenance, she's unbothered, she serves π
π PROPERTIES FOR THE CREATE_OBJECT CALL π
these are the keys you can pass, bestie:
metadata.nameβ the name of the new metadata object. if you don't give it one, the metadata object name will bedefault. no name? automatic default. generous fr fr.metadata.valuesβ a JSON array of objects with initial values for the metadata object. your starter pack, essentially π
the metadata.values key has the following layout:
metadata.values = [
{ id = <int> key = <key> type = <type> value = <object> }
....
]
and inside each of those objects:
idβ an optional object id for the metadata, default0keyβ a string, the metadata keytypeβ an optional metadata value typevalueβ a JSON item, the metadata value.
π EXAMPLE CONFIGURATION π
the module is usually added to the config file of the main PipeWire daemon and the clients. (again with the both-of-you thing. she's consistent.)
context.modules = [
{ name = libpipewire-module-metadata }
]
π CONFIG OBJECTS π
okay so if you wanna create an object from the factory, you can use the pw_core_create_object() method, or you can make an object in the context.objects section like in the main PipeWire daemon config file. two paths, same destination, main character energy either way β¨
context.objects = [
{ factory = metadata
args = {
metadata.name = default
metadata.values = [
{ key = default.audio.sink value = { name = somesink } }
{ key = default.audio.source value = { name = somesource } }
]
}
}
this creates a new default metadata store with 2 key/values. two!! look at her go π₯Ή
π₯ SEE ALSO π₯
pw-metadata: a tool to manage metadata
okay that's the whole page, you ate it, you understood it, periodt π β¨
this was libpipewire-module-metadata(7) from PipeWire 1.6.11 β go forth and export your metadata, bestie, you got this π«Άππ¦
π¦ where this page comes from
- fedora 44: pipewire-libs 1.6.11-1.fc44 Β· MIT AND GPL-2.0-or-later AND BSD-2-Clause AND LGPL-2.0-or-later
- fedora 44: pipewire-libs 1.6.11-1.fc44 Β· MIT AND GPL-2.0-or-later AND BSD-2-Clause AND LGPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms