Skip to main content

Консольный плеер Яндекс Музыки

Project description

ymtui

Консольный плеер Яндекс Музыки.

PyPI Python License: MIT

Скриншот ymtui

ymtui — это терминальный плеер для Яндекс Музыки на Textual

Возможности

  • 🌊 Моя волна — бесконечное персональное радио с подгрузкой и подстройкой, а также волны под занятие / настроение / жанр / эпоху (Бег, Просыпаюсь, Грустное…) — выберите «Моя волна» и загляните в нижний блок
  • ❤️ Любимое, 🏆 Чарт, 🕘 История прослушивания
  • Плейлисты дня (Дежавю, Премьера, Плейлист дня…) из персональной ленты
  • Новые плейлисты и 💿 Новинки (альбомы)
  • 🎼 Жанры / Настроения / Занятия / Эпохи — навигация по подборкам
  • 📂 Мои плейлисты
  • 🔎 Поиск треков
  • ⏯ Воспроизведение, перемотка (клавишами и кликом по полосе), 🔀 шафл, 🔁 повтор, лайки
  • 💾 Сохранение сессии: при следующем запуске откроется тот же раздел/плейлист, а последний трек подгрузится на сохранённой позиции
  • 🎨 Темы и 🌐 языки интерфейса (русский / английский), всё сохраняется
  • 🖼 Обложка альбома в плеере (опционально, включается в Ctrl+P)
  • 🎛 MPRIS: управление мультимедиа-клавишами и через playerctl (с обложкой)

Установка

1. Системные зависимости

Для воспроизведения нужен libmpv:

# Debian / Ubuntu
sudo apt install libmpv2        # на старых релизах: libmpv1

# Fedora
sudo dnf install mpv-libs

# Arch
sudo pacman -S mpv

2. Установка ymtui

Рекомендуемый способ — pipx (изолированно) или uv:

pipx install ymtui
# или
uv tool install ymtui
# или
pip install --user ymtui

3. (Опционально) Медиа-клавиши и playerctl

Поддержка MPRIS вынесена в отдельную зависимость, т.к. требует системных библиотек GObject. Если нужны мультимедиа-клавиши / playerctl:

# Debian / Ubuntu — заголовки для сборки PyGObject
sudo apt install libgirepository-2.0-dev gir1.2-glib-2.0 gcc pkg-config python3-dev

pipx install "ymtui[mpris]"     # или uv tool install "ymtui[mpris]"

Без этого приложение работает полностью — просто без медиа-клавиш.

4. (Опционально) Обложка альбома

Показ обложки в плеере (включается в Ctrl+P). Лучше всего смотрится в терминалах с графикой (kitty, WezTerm, iTerm2, foot), в остальных — фолбэк:

pipx install "ymtui[cover]"     # можно совмещать: ymtui[mpris,cover]

Первый запуск

ymtui

При первом запуске пройдёт авторизация через OAuth Device Flow: в терминале появится ссылка и код — откройте ссылку, введите код, и токен сохранится в ~/.config/ymtui/config.ini. Повторно авторизовываться не нужно. Если получение токена для вашего аккаунта не работает — смотрите альтернативные способы.

Уже есть токен? Можно вписать его вручную:

[ymtui]
token = y0_AgAEA...

Управление

Клавиша Действие
space играть / пауза
enter играть выбранный трек
n / p следующий / предыдущий
< / > (или , / .) перемотка −5с / +5с
клик по полосе перемотка на позицию
l лайк / снять лайк
s перемешать
r повтор
+ / - громче / тише
tab / shift+tab переключение панелей
/ движение по списку
/ поиск
? справка
ctrl+p настройки (тема, язык, скриншот…)
q выход

Темы и язык

Нажмите Ctrl+P (настройки) → можно сменить тему оформления и язык интерфейса (русский / английский). Выбор сохраняется и применяется сразу, без перезапуска.

Медиа-клавиши (MPRIS / playerctl)

С установленным extra [mpris] плеер виден как ymtui:

playerctl -p ymtui play-pause
playerctl -p ymtui next
playerctl -p ymtui metadata --format '{{artist}} — {{title}}'

Можно запускать несколько копий: первая занимает имя ymtui, остальные — ymtui.instance<PID>.

Конфигурация и данные

Всё хранится в ~/.config/ymtui/:

  • config.ini — токен авторизации;
  • state.json — последняя сессия (раздел, трек, позиция, тема, язык).

Разработка

git clone https://github.com/pomeo/ymtui
cd ymtui
uv sync                 # или: pip install -e ".[mpris]"
python main.py

Лицензия

MIT © Sergey Ovechkin


Проект не является официальным продуктом Яндекса. Используйте с собственным аккаунтом Яндекс Музыки.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ymtui-0.1.6.tar.gz (32.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ymtui-0.1.6-py3-none-any.whl (38.3 kB view details)

Uploaded Python 3

File details

Details for the file ymtui-0.1.6.tar.gz.

File metadata

  • Download URL: ymtui-0.1.6.tar.gz
  • Upload date:
  • Size: 32.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ymtui-0.1.6.tar.gz
Algorithm Hash digest
SHA256 46fd60149afe2e46d4f300fe16dfeea7218c210debb0a90921c06fdc88380381
MD5 288fe056790dcd3c4b10055e1deff152
BLAKE2b-256 bf53e7fc7172fb0712f514a6da7afec5ad95151ba506b11f526beb1bd03fa611

See more details on using hashes here.

Provenance

The following attestation bundles were made for ymtui-0.1.6.tar.gz:

Publisher: publish.yml on pomeo/ymtui

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ymtui-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: ymtui-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 38.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ymtui-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 ad37cd43407a455aa9c97cb8187242b21cecf9f776c86e718c413c7ebfa8651d
MD5 e10c962572a3fe1e66d7b490af831dce
BLAKE2b-256 0cca0bbf0b7db564238c7daaf6227bc4c2d2fd208feaed72ed9e21a9e4116e12

See more details on using hashes here.

Provenance

The following attestation bundles were made for ymtui-0.1.6-py3-none-any.whl:

Publisher: publish.yml on pomeo/ymtui

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page