org.bluez.Media(5)
β¨ org.bluez.Media β¨
okay so bestie, this is the BlueZ D-Bus Media API documentation β it's the org.bluez.Media page from the Linux System Administration section, and it's literally the blueprint for how media endpoints and media players get registered over D-Bus. buckle up π
π Interface
here's the whole vibe check for this interface, no cap:
- Service β
org.bluez - Interface β
org.bluez.Media1 - Object path β
[variable prefix]/{hci0,hci1,...} - Used by β
bluetoothctl-endpoint(1)
π¦ Methods
void RegisterEndpoint(object endpoint, dict properties)
Registers a local end point to the sender β and bestie, the sender can register as many end points as it wants. iconic behavior honestly π
β οΈ Note: if the sender disconnects, the end points get automatically unregistered. so don't ghost the bus, okay? π
possible properties:
string UUIDβ the UUID of the profile this endpoint is for. heads up: the UUID must be in the list ofSupportedUUIDs.byte Codecβ the assigned number of the codec that the endpoint implements. these values should match the profile specification that's indicated by theUUID.uint32_t Vendor[Optional] β the vendor-specific Company ID, Codec ID tuple that the endpoint implements. it shall be set to the appropriate value when Vendor Specific Codec (0xff) is used.array{byte} Capabilitiesβ the capabilities blob. it's used as-is, so the size and byte order must match.array{byte} Metadata[Optional] β the metadata blob. also used as-is, so again the size and byte order must match.
Possible Errors:
org.bluez.Error.InvalidArgumentsorg.bluez.Error.NotSupportedβ emitted when the interface for the end-point is disabled
Examples:
bluetoothctl
> endpoint.register <UUID> <codec[:company]> [capabilities...]
void UnregisterEndpoint(object endpoint)
Unregisters the sender's end point. bye bestie π
Examples:
bluetoothctl
> endpoint.unregister <UUID/object>
void RegisterPlayer(object player, dict properties)
Registers a media player object to the sender β and yeah, the sender can register as many objects as it likes, go off π
The object must implement at least org.mpris.MediaPlayer2.Player as defined in the MPRIS 2.2 spec:
http://specifications.freedesktop.org/mpris-spec/latest/
β οΈ Note: if the sender disconnects, its objects are automatically unregistered.
Possible Errors:
org.bluez.Error.InvalidArgumentsorg.bluez.Error.NotSupported
void UnregisterPlayer(object player)
Unregisters the sender's media player. simple as that π«Ά
void RegisterApplication(object root, dict options)
Registers endpoints and player objects within the root object, which must implement org.freedesktop.DBus.ObjectManager.
The application object path, together with the D-Bus system bus connection ID, define the identification of the application. iykyk π₯
Possible errors:
org.bluez.Error.InvalidArgumentsorg.bluez.Error.AlreadyExists
void UnregisterApplication(object application)
This unregisters the services that have been previously registered.
The object path parameter must match the same value that was used on registration β no switching it up on us π
Possible errors:
org.bluez.Error.InvalidArgumentsorg.bluez.Error.DoesNotExist
πΈ Properties
array{string} SupportedUUIDs [readonly]
A list of 128-bit UUIDs that represents the supported Endpoint registration. the whole guest list, basically π
array{string} SupportedFeatures [readonly]
A list of strings that represent supported special features.
Possible values:
"tx-timestamping"β Bluetooth TX timestamping in media stream sockets is supported by BlueZ and the kernel. Applications may check kernel support for specific timestamp types viaSIOCETHTOOL.
and that's the whole page, bestie, you ate that π
π BlueZ Β· April 2025 Β· org.bluez.Media(5) π β mwah, go slay some endpoints β¨π§ββοΈ
π¦ where this page comes from
- arch rolling: bluez-utils 5.87-2 Β· GPL-2.0-only
- nixpkgs unstable: bluez 5.87
- ubuntu stonking: bluez 5.87-4 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms