{/ Эта страница автоматически создается из навыков SKILL.md с помощью сайта/scripts/generate-skill-docs.py. Редактируйте исходный SKILL.md, а не эту страницу. /}

Спотифай

Spotify: подключение, поиск, поворот, управление плейлистами и устройствами.

Метаданные навыки

Источник Встроенный (устанавливается по умолчанию)
Путь навыки/медиа/Spotify
Версия 1.0.0
Автор Агент Гермес
Лицензия Массачусетский технологический институт
Платформы Linux, MacOS, Windows
Теги spotify, музыка, воспроизведение, плейлисты, медиа
Связанные навыки gif-search

Справочник: полный SKILL.md:::информация

Ниже приведено полное описание навыка, который Hermes загружает при активации этого навыка. Это то, что агент видит в качестве инструкций, когда навыки активны.

Спотифай

Управление учётной записью пользователя Spotify через набор инструментов Hermes Spotify (7 инструментов). Руководство по настройке: https://hermes-agent.nousresearch.com/docs/user-guide/features/spotify

Когда использовать этот навык

Пользователь говорит что-то вроде "включи X", "пауза", "пропусти", "поставь в очередь X", "что играет", "найди X", "добавь в мой плейлист X", "создай плейлист", "сохрани это в моем механизме" и т.д.

7 инструментов

Действия, изменяющие приложения, требуют Spotify Premium; операции поиска/библиотеки/плейлистов работают бесплатно.

Канонические шаблоны (инструменты минимизации вызовов)

"Включи <исполнителя/трек/альбом>"

Один поиск, а затем обработка URI. НЕ перебирайте результаты поиска, описывая их, если только пользователь не задал варианты.

spotify_search({"query": "miles davis kind of blue", "types": ["album"], "limit": 1})
 получен URI альбома spotify:album:1weenld61qoidwYuZ1GESA
spotify_playback({"action": "play", "context_uri": "spotify:album:1weenld61qoidwYuZ1GESA"})

Для «включения какого-нибудь <исполнителя>» (без конкретной песни) предпочитайте types: ["artist"] и воспроизведите контекстный URI исполнителя — Spotify сам включает умное перемешивание. Если пользователь говорит «песню» или «этот трек», найдите types: ["track"] и передайте uris: [track_uri] для отслеживания.

"Что играет?" / "Что я слушаю?"

Один вызов — не цепляйте get_state после get_currently_playing.

spotify_playback({"action": "get_currently_playing"})

Если возвращается 204/пусто (is_playing: false), дополнительный сигнал, что ничего не играет. Не повторяйте.

"Пауза" / "Пропустить" / "Громкость 50"

Прямое действие, предварительная проверка не требуется.

spotify_playback({"action": "pause"})
spotify_playback({"action": "next"})
spotify_playback({"action": "set_volume", "volume_percent": 50})

"Добавь в мой плейлист <название плейлиста>"

  1. spotify_playlists list, чтобы найти идентификатор плейлиста по названию.
  2. Получить URI-трек (из текущего запроса или поиска)
  3. spotify_playlists add_items с playlist_id и URI
spotify_playlists({"action": "list"})
→ найден "Late Night Jazz" = 37i9dQZF1DX4wta20PHgwo
spotify_playback({"action": "get_currently_playing"})
→ URI текущего трека = spotify:track:0DiWol3AO6WpXZgp0goxAV
spotify_playlists({"action": "add_items",
                   "playlist_id": "37i9dQZF1DX4wta20PHgwo",
                   "uris": ["spotify:track:0DiWol3AO6WpXZgp0goxAV"]})

"Создай плейлист под названием X и добавь последние 3 песни, которые я сыграл"

spotify_playback({"action": "recently_played", "limit": 3})
spotify_playlists({"action": "create", "name": "Focus 2026"})
→ получен playlist_id в ответе
spotify_playlists({"action": "add_items", "playlist_id": <id>, "uris": [<3 uri>]})

"Сохранить / удалить / это сохранено?"

Используйте Spotify_library с соответствующим типом.

spotify_library({"kind": "tracks", "action": "save", "uris": ["spotify:track:..."]})
spotify_library({"kind": "albums", "action": "list", "limit": 50})

"Перенести звук на моё <устройство>"

spotify_devices({"action": "list"})
→ выберите device_id по имени/типу
spotify_devices({"action": "transfer", "device_id": "<id>", "play": true})

Критические сценарии сбоев

403 Forbidden — Активное устройство не найдено при любом действии протокола означает, что Spotify нигде не запущен. Сообщите пользователю: «Сначала въезд Spotify на телефоне/компьютере/веб-плеере, любой трек на секунду, затем повторите». Не повторяйте вызов инструмента вслепую — он завершится так же. Вы можете вызвать spotify_devices list для подтверждения; пустой список отсутствия активного устройства.

403 Forbidden — требуется премиум означает, что пользователь использует бесплатную версию и пытается изменить методы. Не повторяйте; сообщает, что это действие требует Премии. Чтение всё ещё работает (поиск, плейлисты, библиотека, get_state).

204 No Content в get_currently_playing НЕ является ошибкой — это означает, что ничего не играет. Инструмент возвращает is_playing: false. Просто сообщите об этом пользователю.

429 Too Many Requests = ограничение скорости. Подождите и повторите один раз. Если продолжить движение, вы зациклитесь — остановитесь.

401 Unauthorized после повтора — токен обновления отозван. Сообщите пользователю необходимость восстановления hermes auth Spotify еще раз.

Форматы URI и ID

Spotify использует три взаимозаменяемых идентификатора формы. Инструменты включают в себя все три и нормализуют:

Если сомневаетесь, воспользуйтесь полными URI. Результаты поиска возвращают URI в поле uri — передают их напрямую.

Типы сущностей: трек, альбом, исполнитель, плейлист, шоу, эпизод. Используйте правильный тип для действия — spotify_playback.play с context_uri ожидает альбом/плейлист/исполнителя; uris ожидает массив треков URI.

Чего НЕ делать