kylehakala 972828ceb3
Misc minor fixes for integrations (#37489)
* fix typos in islamic_prayer_times

* Update/format gstreamer OS names

* Improve wording in html5 requirements

* fix typo in light.mqtt

* fix typo in hue docs

* fix typo in InfluxDB
2025-02-17 05:26:47 +01:00

2.7 KiB

title description ha_category ha_release ha_iot_class ha_domain ha_platforms ha_integration_type related ha_quality_scale
GStreamer Instructions on how to integrate GStreamer into Home Assistant.
Media player
0.39 Local Push gstreamer
media_player
integration
docs title
/docs/configuration/ Configuration file
legacy

The gstreamer {% term integration %} allows you to play audio via a gstreamer pipeline. Practically, this means you can play audio directly on the computer running Home Assistant. It is particularly suited for playing TTS. Advanced users can specify a pipeline to transform the audio stream and/or redirect it elsewhere.

To add a gstreamer media player to your installation, add the following to your {% term "configuration.yaml" %} file. {% include integrations/restart_ha_after_config_inclusion.md %}

# Example configuration.yaml entry
media_player:
  - platform: gstreamer

{% configuration %} name: description: Name of the media player. required: false type: string pipeline: description: A gst pipeline description. required: false type: string {% endconfiguration %}

Only the music media type is supported.

Setup

And then install the following system dependencies:

Debian/Ubuntu/Raspberry Pi OS (formerly Raspbian):

sudo apt-get install python3-gst-1.0 \
    gir1.2-gstreamer-1.0 gir1.2-gst-plugins-base-1.0 \
    gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly \
    gstreamer1.0-tools

Red Hat/CentOS/Fedora:

sudo yum install -y python-gstreamer1 gstreamer1-plugins-good \
    gstreamer1-plugins-ugly

For Fedora replace yum with dnf.

If you're running Home Assistant in a virtual environment, you'll need to symlink the system Python's gi module into your virtual environment:

ln -s /path/to/your/installation/of/gi /path/to/your/venv/lib/python3.4/site-packages

On a Raspberry Pi, you may need to add the Home Assistant user to the audio group:

sudo usermod -a -G audio <ha_user>

Example usage

Using with TTS

To play TTS on your local computer (for example, if you have speakers attached to your Raspberry Pi:

media_player:
  - platform: gstreamer

script:
  tts:
    sequence:
      - action: tts.google_say # or amazon_polly, voicerss, etc
        target:
          entity_id: media_player.gstreamer
        data:
          message: "example text-to-speech message"

Using with Snapcast

To play to a named pipe for consumption by Snapcast:

media_player:
  - platform: gstreamer
    pipeline: "audioresample ! audioconvert ! audio/x-raw,rate=48000,channels=2,format=S16LE ! wavenc ! filesink location=/tmp/snapcast_gstreamer"