22 KiB
Прочитайте це іншими мовами: 🏴 Англійська, 🇰🇷 Корейська, 🇫🇷 Французька, 🇮🇸 Ісландська, 🇪🇸 Іспанська, 🇷🇺 Російська, 🇺🇦 Українська, 🇭🇺 Угорська, 🇧🇷 Португальська, 🇯🇵 Японська
Клієнт YouTube Music на основі Electron, що має:
- Нативний вигляд і функціонал, що має на меті зберегти оригінальний інтерфейс
- Фреймворк для користувацьких плагінів: змінюйте YouTube Music відповідно до ваших потреб (стиль, вміст, функції), вмикайте/вимикайте плагіни одним клацанням миші
Демонстраційне зображення
| Екран плеєра (колірна тема альбому та режим Ambient) |
|---|
Зміст
- Можливості
- Доступні плагіни
- Переклад
- Завантажити
- Теми
- Розробка
- Створіть власні плагіни
- Збірка
- Попередній перегляд для producción
- Тести
- Ліцензія
- Поширені запитання
Можливості:
-
Автоматичне підтвердження під час паузи (Завжди ввімкнено): вимикає спливаюче вікно "Продовжити перегляд?", яке призупиняє музику через певний час
-
Та багато іншого...
Доступні плагіни:
-
Блокувальник реклами: Блокує всю рекламу та відстеження «з коробки»
-
Дії з альбомом: Додає кнопки «Скасувати "Не подобається"», «Не подобається», «Подобається» та «Скасувати "Подобається"», щоб застосувати це до всіх пісень у списку відтворення або альбомі
-
Колірна тема альбому: Застосовує динамічну тему та візуальні ефекти на основі колірної палітри альбому
-
Режим Ambient: Застосовує ефект освітлення, проектуючи м'які кольори з відео на фон екрана
-
Аудіокомпресор: Застосовує компресію до аудіо (знижує гучність найгучніших частин сигналу та підвищує гучність найтихіших частин)
-
Розмиття панелі навігації: робить панель навігації прозорою та розмитою
-
Обхід вікових обмежень: обходить перевірку віку YouTube
-
Вибір субтитрів: Увімкнути субтитри
-
Компактна бічна панель: Завжди встановлювати бічну панель у компактному режимі
-
Плавний перехід: Плавний перехід між піснями
-
Вимкнути автопрогравання: Кожна пісня починається в режимі "пауза"
-
Discord Rich Presence: Покажіть друзям, що ви слухаєте, за допомогою Rich Presence
-
Завантажувач: завантажує MP3 безпосередньо з інтерфейсу (youtube-dl)
-
Експоненціальна гучність: Робить повзунок гучності експоненціальним, щоб було легше вибирати нижчу гучність
-
Меню в програмі: надає панелям модного, темного вигляду
(дивіться цей пост, якщо у вас виникли проблеми з доступом до меню після ввімкнення цього плагіна та опції приховування меню)
-
Скробблер: Додає підтримку скробблінгу для Last.fm та ListenBrainz
-
Lumia Stream: Додає підтримку Lumia Stream
-
Тексти пісень Genius: Додає підтримку текстів для більшості пісень
-
Музика разом: Поділіться списком відтворення з іншими. Коли хост відтворює пісню, всі інші чутимуть ту саму пісню
-
Навігація: Стрілки навігації «Вперед»/«Назад» безпосередньо інтегровані в інтерфейс, як у вашому улюбленому браузері
-
Без входу в Google: Видаляє кнопки та посилання для входу в Google з інтерфейсу
-
Сповіщення: Відображає сповіщення, коли починає грати пісня (інтерактивні сповіщення доступні у Windows)
-
Картинка в картинці: дозволяє перемикати програму в режим «картинка в картинці»
-
Швидкість відтворення: Слухайте швидко, слухайте повільно! Додає повзунок, який контролює швидкість пісні
-
Точна гучність: Точно керуйте гучністю за допомогою коліщатка миші/гарячих клавіш, з власним HUD та настроюваними кроками гучності
-
Гарячі клавіші (та MPRIS): Дозволяє встановлювати глобальні гарячі клавіші для відтворення (відтворення/пауза/наступна/попередня) + вимкнути екранне меню медіа шляхом перевизначення медіаклавіш + увімкнути Ctrl/CMD + F для пошуку + увімкнути підтримку mpris у Linux для медіаклавіш + власні гарячі клавіші для досвідчених користувачів
-
Пропускати пісні, що не сподобалися: Пропускає пісні, які вам не сподобалися
-
Пропускати тишу: Автоматично пропускати тихі фрагменти
-
SponsorBlock: Автоматично пропускає немузичні частини, такі як інтро/аутро, або частини музичних відео, де пісня не грає
-
Керування медіа на панелі завдань: Керуйте відтворенням з панелі завдань Windows
-
TouchBar: Власний макет TouchBar для macOS
-
Зміна якості відео: Дозволяє змінювати якість відео за допомогою кнопки на відеопрогравачі
-
Перемикач відео: Додає кнопку для перемикання між режимом відео/пісні. Також може опціонально видалити всю вкладку відео
-
Візуалізатор: Різні музичні візуалізатори
-
Синхронізовані тексти: Надає синхронізовані тексти пісень, використовуючи такі джерела, як LRClib.
Переклад
Ви можете допомогти з перекладом на Hosted Weblate.
Завантажити
Ви можете переглянути останній реліз, щоб швидко знайти найновішу версію.
Arch Linux
Встановіть пакет youtube-music-bin з AUR. Інструкції щодо встановлення з AUR можна знайти на цій сторінці вікі.
macOS
Ви можете встановити програму за допомогою Homebrew (дивіться визначення cask):
brew install th-ch/youtube-music/youtube-music
Якщо ви встановлюєте програму вручну та отримуєте помилку "is damaged and can’t 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.
Примітка: Microsoft Defender SmartScreen може блокувати встановлення, оскільки воно від "невідомого видавця". Це також стосується ручного встановлення під час спроби запустити виконуваний файл (.exe) після ручного завантаження тут, на GitHub (той самий файл).
winget install th-ch.YouTubeMusic
Як встановити без підключення до Інтернету? (у Windows)
- Завантажте файл
*.nsis.7zдля архітектури вашого пристрою зі сторінки релізів.x64для 64-розрядної Windowsia32для 32-розрядної Windowsarm64для ARM64 Windows
- Завантажте інсталятор зі сторінки релізів. (
*-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/НАЗВА_ВАШОГО_ПЛАГІНА:
index.ts: основний файл плагіна
import style from './style.css?inline'; // імпортувати стиль як вбудований
import { createPlugin } from '@/utils';
export default createPlugin({
name: 'Назва плагіна',
restartNeeded: true, // якщо значення true, ytmusic покаже діалогове вікно перезапуску
config: {
enabled: false,
}, // ваша власна конфігурація
stylesheets: [style], // ваш власний стиль,
menu: async ({ getConfig, setConfig }) => {
// Усі методи *Config є обгорнутими Promise<T>
const config = await getConfig();
return [
{
label: 'меню',
submenu: [1, 2, 3].map((value) => ({
label: `значення ${value}`,
type: 'radio',
checked: config.value === value,
click() {
setConfig({ value });
},
})),
},
];
},
backend: {
start({ window, ipc }) {
window.maximize();
// ви можете спілкуватися з плагіном рендерера
ipc.handle('some-event', () => {
return 'hello';
});
},
// викликається при зміні конфігурації
onConfigChange(newConfig) { /* ... */ },
// викликається при вимкненні плагіна
stop(context) { /* ... */ },
},
renderer: {
async start(context) {
console.log(await context.ipc.invoke('some-event'));
},
// Хук, доступний лише для рендерера
onPlayerApiReady(api: YoutubePlayer, context: RendererContext) {
// легко встановити конфігурацію плагіна
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 { createPlugin } from '@/utils';
export default createPlugin({
name: 'Назва плагіна',
restartNeeded: true, // якщо значення true, ytmusic покаже діалогове вікно перезапуску
config: {
enabled: false,
}, // ваша власна конфігурація
stylesheets: [style], // ваш власний стиль
renderer() {} // визначити хук рендерера
});
- Якщо ви хочете змінити HTML:
import { createPlugin } from '@/utils';
export default createPlugin({
name: 'Назва плагіна',
restartNeeded: true, // якщо значення true, ytmusic покаже діалогове вікно перезапуску
config: {
enabled: false,
}, // ваша власна конфігурація
renderer() {
// Видалити кнопку входу
document.querySelector(".sign-in-link.ytmusic-nav-bar").remove();
} // визначити хук рендерера
});
- зв'язок між фронтендом та бекендом: можна здійснити за допомогою модуля 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 для Debian)pnpm dist:linux:rpm-arm64- Linux (arm64 для Fedora)pnpm dist:mac- macOS (amd64)pnpm dist:mac:arm64- macOS (arm64)
Збирає програму для macOS, Linux та Windows, використовуючи electron-builder.
Попередній перегляд для production
pnpm start
Тести
pnpm test
Використовує Playwright для тестування програми.
Ліцензія
MIT © th-ch
Поширені запитання
Чому меню програми не відображається?
Якщо опція Приховати меню увімкнена - ви можете показати меню клавішею Alt (або ` [зворотний апостроф], якщо використовуєте плагін "Меню в програмі")
