Files
youtube-music/docs/readme/README-ru.md
Kovács Márk Márió 63c4a9cfa7 chore: Fixing the Content section in the README-ru.md file. (#2847)
* Fixing the Content section in the README-ru.md file.

EN: I have corrected the Содержание (Content) hyperlinks, so now it is possible to jump between the main headings with a single click. The issue was that the content hyperlinks corresponded to the original language headings in the README file, so clicking on them did not lead anywhere within the README file.

RU: Я исправил гиперссылки Содержание (Content), так что теперь можно переходить между основными заголовками одним кликом. Проблема заключалась в том, что гиперссылки содержания соответствовали заголовкам README на оригинальном языке, поэтому при нажатии на них переход внутри файла README не осуществлялся.

* Fixing the Content section in the README-ru.md file.

EN: In this version, I fixed the SVG file path so that it displays properly; previously, it did not appear.

RU: В этой версии я исправил путь к файлу SVG, чтобы он отображался правильно; ранее он не отображался.

EN: I have corrected the Содержание (Content) hyperlinks, so now it is possible to jump between the main headings with a single click. The issue was that the content hyperlinks corresponded to the original language headings in the README file, so clicking on them did not lead anywhere within the README file.

RU: Я исправил гиперссылки Содержание (Content), так что теперь можно переходить между основными заголовками одним кликом. Проблема заключалась в том, что гиперссылки содержания соответствовали заголовкам README на оригинальном языке, поэтому при нажатии на них переход внутри файла README не осуществлялся.
2025-01-08 20:07:46 +09:00

20 KiB
Raw Permalink Blame History

YouTube Music

GitHub release GitHub license eslint code style Build status GitHub All Releases AUR Known Vulnerabilities

Screenshot

Клиент для YouTube Music основанный на Electron с поддержкой:

  • Нативный вид приложения, нацелен на сохранение оригинального интерфейса
  • Фреймворк для пользовательских плагинов: изменяйте YouTube Music под ваши нужды (внешний вид, контент, возможности), включайте/выключайте плагины в один клик

Демо-изображение

Экран плеера (цветовая тема альбома & режим Ambient)
Screenshot1

Содержание

Возможности:

  • Авто-подтверждение при паузе (Всегда включено): отключает всплывающие уведомление "Продолжить просмотр?", которое приостанавливает воспроизведение через определённое время

  • И больше ...

Доступные плагины:

  • Блокировщик рекламы: Блокирует всю рекламу и трекеры

  • Действия с альбомом: Добавляет кнопки "Убрать дизлайк", "Дизлайк", "Лайк", "Убрать лайк" и применяет их действия ко всем трекам в плейлисте или альбоме

  • Цветовая тема альбома: Применяет динамическую тему и эффекты, основываясь на цветовой палитре альбома

  • Режим Ambient: Применяет световой эффект, проецируя нежные цвета из видео на задний фон вашего экрана

  • Нормализация аудио: Применяет нормализацию к аудио (уменьшает громкость громких частей трека и повышает громкость тихих частей трека)

  • Размытие панели навигации: Делает панель навигации прозрачной и размытой

  • Обход возрастных ограничений: Обходит проверку возраста YouTube

  • Выбор субтитров: Включить субтитры

  • Компактная боковая панель: Всегда показывать боковую панель компактно

  • Плавный переход: Плавный переход между треками

  • Отключить автопроигрыш: Каждый трек начинается в режиме паузы

  • Discord Rich Presence: Показывает вашим друзьям, что вы слушаете с помощью Rich Presence

  • Загрузчик: Загрузка MP3 напрямую из интерфейса (youtube-dl)

  • Расширенная громкость: Делает слайдер громкости расширенным облегчая выбор громкости

  • Меню в приложении: Придаёт панели меню красивый тёмный вид

    (посмотрите этот пост, если у вас есть проблемы с доступом к меню после включения этого плагина и опции "Скрыть меню")

  • Скробблер: Добавляет поддержку скробблинга Last.fm и ListenBrainz

  • Lumia Stream: Добавляет поддержку Lumia Stream

  • Тесты песен Genius: Добавляет поддержку текстов для большинства песен

  • Music Together: Делитесь плейлистом с другими. Когда ведущий воспроизводит трек, все остальные будут слушать этот же трек.

  • Навигация: Кнопки Назад/Вперед интегрированы в интерфейс, как в вашем любимом браузере

  • Без входа в систему Google: Убирает из интерфейса кнопки и ссылки для входа через Google

  • Уведомления: Показывает уведомление, когда трек начинает играть (интерактивные уведомления доступны только для Windows)

  • Картинка в картинке: Позволяет переключить приложение в режим "картинка в картинке"

  • Скорость воспроизведения: Слушайте быстрее, слушайте медленнее! Добавляет слайдер для контроля скорости трека

  • Точная громкость: Точечно управляйте громкостью с помощью колеса мыши/горячих клавиш, с кастомным интерфейсом и настраиваемыми шагами громкости

  • Ярлыки (и MPRIS): Позволяет настроить глобальные горячие клавиши управления воспроизведением (плей/пауза/следующий/предыдущий) + отключает отображение медиа на экране, переопределяя клавиши управления + включает Ctrl/CMD + F для поиска + включает поддержку linux mpris для клавиш управления медиа + настраиваемые сочетания клавиш для продвинутых пользователей

  • Пропускать непонравившиеся треки: Пропускает непонравившиеся треки

  • Пропуск тишины: Автоматически пропускает тихие моменты в песнях

  • SponsorBlock: Автоматически пропускает немузыкальные части, такие как интро/аутро музыкальных видео, где трек не играет

  • Управление воспроизведением из панели задач: Управляйте воспроизведением из панели задач Windows

  • TouchBar: Кастомная раскладка TouchBar для MacOS

  • Tuna OBS: Интеграция с OBS плагином Tuna

  • Изменение качества видео: Позволяет менять качество видео кнопкой на медиаплеере видео

  • Переключатель видео: Добавляет кнопку переключения режимов Трек/Видео. Также может удалять вкладку "Видео" полностью

  • Визуализатор: Различные визуализаторы музыки

  • Synced Lyrics: Предоставляет синхронизированные слова для песен из таких источников, как LRClib.

Перевод

Вы можете помочь с переводом на ваш язык на Hosted Weblate.

translation status translation status 2

Скачать

Вы можете посмотреть latest release, чтобы быстро найти новую версию.

Arch Linux

Установите пакет youtube-music-bin из AUR. Инструкции по установке из AUR можете найти на этой вики-странице.

macOS

Вы можете установить приложение с помощью Homebrew (сморите cask definition):

brew install th-ch/youtube-music/youtube-music

Если вы устанавливаете приложение вручную и получаете ошибку "is damaged and cant be opened.", запустите в терминале следующую команду:

/usr/bin/xattr -cr /Applications/YouTube\ Music.app

Windows

Вы можете использовать пакетный менеджер Scoop для установки пакета youtube-music из extras bucket.

scoop bucket add extras
scoop install extras/youtube-music

Также для установки вы можете использовать Winget, официальный пакетный менеджер командной строки Windows 11, для установки пакета th-ch.YouTubeMusic.

К сведению: SmartScreen защитника Windows может блокировать установку, так как она от "неизвестного издателя". Это также применимо к методу ручной установки, когда вы пытаетесь запустить исполняемый файл(.exe) после загрузки здесь, на GitHub (тот же файл).

winget install th-ch.YouTubeMusic

Установка без подключения к Интернету? (в Windows)

  • Скачайте файл *.nsis.7z из архетиктура вашего устройства на release page.
    • x64 для 64-bit Windows
    • ia32 для 32-bit Windows
    • arm64 для ARM64 Windows
  • Скачайте установщик в release page. (*-Setup.exe)
  • Поместите их в одной директории.
  • Запустите установщик.

Темы

Вы можете загрузить файл CSS для смены внешнего вида приложения (Настройки > Визуальные настройки > Тема).

Некоторые предустановленные темы доступны здесь: https://github.com/kerichdev/themes-for-ytmdesktop-player.

Для разработчиков

git clone https://github.com/th-ch/youtube-music
cd youtube-music
pnpm install --frozen-lockfile
pnpm dev

Создайте свои собственные плагины

Используя плагины вы можете:

  • Манипулировать приложением - BrowserWindow из electron проброшен обработчику плагинов
  • Изменять внешний вид, манипулируя HTML/CSS

Создание плагина

Создайте директорию в src/plugins/YOUR-PLUGIN-NAME:

  • index.ts: основной файл плагина
import style from './style.css?inline'; // import style as inline

import { createPlugin } from '@/utils';

export default createPlugin({
  name: 'Plugin Label',
  restartNeeded: true, // if value is true, ytmusic show restart dialog
  config: {
    enabled: false,
  }, // your custom config
  stylesheets: [style], // your custom style,
  menu: async ({ getConfig, setConfig }) => {
    // All *Config methods are wrapped Promise<T>
    const config = await getConfig();
    return [
      {
        label: 'menu',
        submenu: [1, 2, 3].map((value) => ({
          label: `value ${value}`,
          type: 'radio',
          checked: config.value === value,
          click() {
            setConfig({ value });
          },
        })),
      },
    ];
  },
  backend: {
    start({ window, ipc }) {
      window.maximize();

      // you can communicate with renderer plugin
      ipc.handle('some-event', () => {
        return 'hello';
      });
    },
    // it fired when config changed
    onConfigChange(newConfig) { /* ... */ },
    // it fired when plugin disabled
    stop(context) { /* ... */ },
  },
  renderer: {
    async start(context) {
      console.log(await context.ipc.invoke('some-event'));
    },
    // Only renderer available hook
    onPlayerApiReady(api: YoutubePlayer, context: RendererContext) {
      // set plugin config easily
      context.setConfig({ myConfig: api.getVolume() });
    },
    onConfigChange(newConfig) { /* ... */ },
    stop(_context) { /* ... */ },
  },
  preload: {
    async start({ getConfig }) {
      const config = await getConfig();
    },
    onConfigChange(newConfig) {},
    stop(_context) {},
  },
});

Примеры использования

  • Кастомный CSS: создайте файл style.css в той же директории, затем:
// index.ts
import style from './style.css?inline'; // import style as inline

import { createPlugin } from '@/utils';

export default createPlugin({
  name: 'Plugin Label',
  restartNeeded: true, // if value is true, ytmusic will show a restart dialog
  config: {
    enabled: false,
  }, // your custom config
  stylesheets: [style], // your custom style
  renderer() {} // define renderer hook
});
  • Если вы хотите изменить HTML:
import { createPlugin } from '@/utils';

export default createPlugin({
  name: 'Plugin Label',
  restartNeeded: true, // if value is true, ytmusic will show the restart dialog
  config: {
    enabled: false,
  }, // your custom config
  renderer() {
    // Remove the login button
    document.querySelector(".sign-in-link.ytmusic-nav-bar").remove();
  } // define renderer hook
});
  • обмен между фронтом и бэком может быть выполнен с помощью модуля ipcMain из electron. Смотрите файл index.ts и пример в плагине sponsorblock.

Сборка

  1. Склонируйте репозиторий
  2. Следуйте этой инструкции, чтобы установить pnpm
  3. Запустите pnpm install --frozen-lockfile для установки зависимостей
  4. Запустите pnpm build:OS
  • pnpm dist:win - Windows
  • pnpm dist:linux - Linux (amd64)
  • pnpm dist:linux:deb-arm64 - Linux (arm64 for Debian)
  • pnpm dist:linux:rpm-arm64 - Linux (arm64 for Fedora)
  • pnpm dist:mac - macOS (amd64)
  • pnpm dist:mac:arm64 - macOS (arm64)

Сборка приложения для macOS, Linux, и Windows, используя electron-builder.

Предварительный просмотр

pnpm start

Тестирование

pnpm test

Использует Playwright для тестирования приложения.

Лицензия

MIT © th-ch

Часто задаваемые вопросы

Почему меня приложения не отображается?

Если опция Скрыть меню включена - вы можете отобразить меню с помощью клавиши alt (или ` [обратный апостроф], если используете плагин "Меню в приложении")