Клиент для YouTube Music основанный на Electron с поддержкой:
- Нативный вид приложения, нацелен на сохранение оригинального интерфейса
- Фреймворк для пользовательских плагинов: изменяйте YouTube Music под ваши нужды (внешний вид, контент, возможности), включайте/выключайте плагины в один клик
Экран плеера (цветовая тема альбома & режим Ambient) |
---|
- Возможности
- Доступные плагины
- Перевод
- Скачать
- Темы
- Для разработчиков
- Создайте свои собственные плагины
- Сборка
- Предварительный просмотр
- Тестирование
- Лицензия
- Часто задаваемые вопросы
-
Авто-подтверждение при паузе (Всегда включено): отключает всплывающие уведомление "Продолжить просмотр?", которое приостанавливает воспроизведение через определённое время
-
И больше ...
-
Блокировщик рекламы: Блокирует всю рекламу и трекеры
-
Действия с альбомом: Добавляет кнопки "Убрать дизлайк", "Дизлайк", "Лайк", "Убрать лайк" и применяет их действия ко всем трекам в плейлисте или альбоме
-
Цветовая тема альбома: Применяет динамическую тему и эффекты, основываясь на цветовой палитре альбома
-
Режим 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
-
Изменение качества видео: Позволяет менять качество видео кнопкой на медиаплеере видео
-
Переключатель видео: Добавляет кнопку переключения режимов Трек/Видео. Также может удалять вкладку "Видео" полностью
-
Визуализатор: Различные визуализаторы музыки
-
Synced Lyrics: Предоставляет синхронизированные слова для песен из таких источников, как LRClib.
Вы можете помочь с переводом на ваш язык на Hosted Weblate.
Вы можете посмотреть latest release, чтобы быстро найти новую версию.
Установите пакет youtube-music-bin
из AUR. Инструкции по установке из AUR можете найти на этой вики-странице.
Вы можете установить приложение с помощью Homebrew (сморите cask definition):
brew install th-ch/youtube-music/youtube-music
Если вы устанавливаете приложение вручную и получаете ошибку "is damaged and can’t be opened.", запустите в терминале следующую команду:
/usr/bin/xattr -cr /Applications/YouTube\ Music.app
Вы можете использовать пакетный менеджер 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
- Скачайте файл
*.nsis.7z
из архетиктура вашего устройства на release page.x64
для 64-bit Windowsia32
для 32-bit Windowsarm64
для 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
.
- Склонируйте репозиторий
- Следуйте этой инструкции, чтобы установить
pnpm
- Запустите
pnpm install --frozen-lockfile
для установки зависимостей - Запустите
pnpm build:OS
pnpm dist:win
- Windowspnpm 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 (или ` [обратный апостроф], если используете плагин "Меню в приложении")