Your option is designed for specific video content. But it would be much more interesting when the search for content on request is launched. How, for example, to launch a youtube channel search for a query on a topic of interest?
For understanding, I will give examples of how the search strings on youtube look like
This is what the youtube search bar looks like
https://www.youtube.com/results?search_query=
This is how the youtube search bar looks with an indication of the search topic, for example, “documentaries about space”
www.youtube.com/results?search_query=documentaries+about+space
This is how the youtube search bar looks using variables, so that when a trigger is triggered, this search is launched
https://www.youtube.com/results?search_query={{ trigger.event.data.book|replace(" ", "+") }}
Now let’s get to the point
We have a smart speaker with a voice assistant Alice, an analogue of your Alexa, when I ask you to find something, for example: “Alice, find documentaries about space,” then an event appears in the Home Assistant that looks like this
{
"event_type": "yandex_intent",
"data": {
"text": "Alice find documentaries about space",
"command": "Alice find documentaries about space",
"intent": "YANDEX.BOOK.SEARCH",
"book": "documentaries about space"
},
"origin": "LOCAL",
"time_fired": "2021-10-14T14:20:02.517357+00:00",
"context": {
"id": "e802961a0196af60036511eb117d398f",
"parent_id": null,
"user_id": null
}
}
Then, thanks to these events, you can create automation, where the trigger is an event
platform: event
event_type: yandex_intent
event_data:
intent: YANDEX.BOOK.SEARCH
and in action it is used
{{ trigger.event.data.book|replace(" ", “+”) }}
As a result, we can combine and run a search on the topic of interest to us. There are two options below, but only one option works. This, as I understand it, is due to the feature of webos integration
This option is working, but it opens in the browser and does not work in the youtube app
service: webostv.command
data:
entity_id: media_player.tv_bedroom
command: system.launcher/open
payload:
target: >-
https://www.youtube.com/results?search_query={{ trigger.event.data.book|replace(" ", "+") }}
This option is not working, it gives the error “This video is not available”
service: webostv.command
data:
command: system.launcher/launch
entity_id: media_player.tv_bedroom
payload:
id: youtube.leanback.v4
contentId: https://www.youtube.com/results?search_query={{ searsh | replace(" ", "+") }}
Текст на русском (Text in Russian)
Ваш вариант рассчитан для конкретного видеоконтента. Но намного интереснее было бы, когда запускается поиск контента по запросу. Как к примеру запустить на youtube поиск каналов по запросу на интересующую тематику?
Для понимания приведу примеры как выглядят строки поиска на youtube
Так выглядит поисковая строка youtube
https://www.youtube.com/results?search_query=
Так выглядит поисковая строка youtube с указанием темы поиска, например “документальные фильмы про космос”
www.youtube.com/results?search_query=documentaries+about+space
Так выглядит поисковая строка youtube с использованием переменных, чтобы при срабатывании триггера этот поиск запускался
https://www.youtube.com/results?search_query={{ trigger.event.data.book|replace(" ", "+") }}
Теперь перейдем к сути
У нас есть умная колонка с голосовым помощником Алиса, аналог вашей Алексы, когда я прошу найти что-то, например: “Алиса, найди документальные фильмы про космос”, то в Home Assistant появляется событие, которое выглядит вот таким образом
{
"event_type": "yandex_intent",
"data": {
"text": "алиса найди документальные фильмы про космос",
"command": "алиса найди документальные фильмы про космос",
"intent": "YANDEX.BOOK.SEARCH",
"book": "документальные фильмы про космос"
},
"origin": "LOCAL",
"time_fired": "2021-10-14T14:20:02.517357+00:00",
"context": {
"id": "e802961a0196af60036511eb117d398f",
"parent_id": null,
"user_id": null
}
}
То благодаря этим событиям можно создать автоматизацию, где триггером выступает событие
platform: event
event_type: yandex_intent
event_data:
intent: YANDEX.BOOK.SEARCH
а в действии используется
{{ trigger.event.data.book|replace(" ", “+”) }}
В итоге можем объединить и запускать поиск по интересующейся нас тематики. Ниже представлены два варианта, но работает только один вариант. Это, как я понял, что связано с особенностью интеграции webos
Этот вариант рабочий, но он открывается в браузере и не работает в приложении youtube
service: webostv.command
data:
entity_id: media_player.tv_bedroom
command: system.launcher/open
payload:
target: >-
https://www.youtube.com/results?search_query={{ trigger.event.data.book|replace(" ", "+") }}
Этот вариант не рабочий, выдает ошибку “Это видео не доступно”
service: webostv.command
data:
command: system.launcher/launch
entity_id: media_player.tv_bedroom
payload:
id: youtube.leanback.v4
contentId: https://www.youtube.com/results?search_query={{ searsh | replace(" ", "+") }}