他の言語で読む: 🏴 英語, 🇰🇷 韓国語, 🇫🇷 フランス語, 🇮🇸 アイスランド語, 🇪🇸 スペイン語, 🇷🇺 ロシア語
YouTube MusicのElectronラッパーには以下の機能があります:
- ネイティブの外観と操作感、元のインターフェースを維持することを目指しています
- カスタムプラグインのフレームワーク: スタイル、コンテンツ、機能など、YouTube Musicをニーズに合わせて変更し、ワンクリックでプラグインを有効/無効にできます
プレーヤースクリーン (アルバムカラーテーマ & アンビエントライト) |
---|
![]() |
-
一時停止時の自動確認 (常に有効): 一定時間後に音楽を一時停止する"視聴を続けますか?"ポップアップを無効にします
-
その他の機能...
-
広告ブロッカー: すべての広告とトラッキングをブロックします
-
アルバムアクション: プレイリストやアルバム内のすべての曲に「嫌いではない」「嫌い」「好き」「好きではない」ボタンを追加します
-
アルバムカラーテーマ: アルバムのカラーパレットに基づいて動的なテーマと視覚効果を適用します
-
アンビエントモード: 動画から柔らかい色を画面の背景に投影するライティング効果を適用します
-
���ーディオコンプレッサー: オーディオにコンプレッションを適用します(信号の最も大きな部分の音量を下げ、最も小さな部分の音量を上げます)
-
ナビゲーションバーのぼかし: ナビゲーションバーを透明でぼやけたものにします
-
年齢制限の回避: YouTubeの年齢確認を回避します
-
字幕選択: 字幕を有効にします
-
コンパクトサイドバー: サイドバーを常にコンパクトモードに設定します
-
クロスフェード: 曲間にクロスフェードを適用します
-
自動再生の無効化: すべての曲を「一時停止」モードで開始します
-
ダウンローダー: UIから直接MP3/ソースオーディオをダウンロードします
-
イコライザー: 特定の周波数範囲をブーストまたはカットするフィルターを追加します(例: ベースブースター)
-
指数音量: 音量スライダーを指数関数的にして、低い音量を選択しやすくします
-
アプリ内メニュー: メニューバーをおしゃれで暗い外観にします
(このプラグインとメニュー非表示オプションを有効にした後、メニューにアクセスする際に問題がある場合は、この投稿を参照してください)
-
スクロブラー: Last.fmやListenBrainzのスクロブリングサポートを追加します
-
Lumia Stream: Lumia Streamのサポートを追加します
-
Genius 歌詞: ほとんどの曲に歌詞サポートを追加します
-
Music Together: プレイリストを他の人と共有します。ホストが曲を再生すると、他の全員が同じ曲を聴くことができます
-
ナビゲーション: お気に入りのブラウザのように、UIに直接統合された次/前のナビゲーション矢印を追加します
-
Googleログインなし: インターフェースからGoogleログインボタンとリンクを削除します
-
通知: 曲の再生が開始されると通知を表示します(Windowsではインタラクティブ通知が利用可能です)
-
ピクチャーインピクチャー: アプリをピクチャーインピクチャーモードに切り替えることができます
-
再生速度: 速く聴いたり、遅く聴いたりできます!曲の速度を制御するスライダーを追加します
-
正確な音量: カスタムHUDとカスタマイズ可能な音量ステップを使用して、マウスホイール/ホットキーで音量を正確に制御します
-
ショートカット (& MPRIS): 再生用のグローバルホットキー(再生/一時停止/次/前)を設定し、メディアキーをオーバーライドしてメディアOSDを無効にし、Ctrl/CMD + Fで検索を有効にし、LinuxのMPRISサポートを有効にし、上級ユーザー向けのカスタムホットキーを追加します
-
嫌いな曲をスキップ: 嫌いな曲をスキップします
-
無音部分をスキップ: 無音部分を自動的にスキップします
-
SponsorBlock: イントロ/アウトロなどの音楽以外の部分や、曲が再生されていないミュージックビデオの部分を自動的にスキップします
-
同期歌詞: LRClibのようなプロバイダーを使用して、曲に同期した歌詞を提供します
-
タスクバーメディアコントロール: Windowsタスクバーから再生を制御します
-
TouchBar: macOS用のカスタムTouchBarレイアウト
-
ビデオ品質チェンジャー: ビデオオーバーレイのボタンを使用してビデオ品質を変更できます
-
ビデオ切り替え: ビデオ/ソングモードを切り替えるボタンを追加します。オプションでビデオタブ全体を削除することもできます
-
ビジュアライザー: プレイヤーにさまざまな音楽ビジュアライザーを追加します
Hosted Weblateで翻訳を手伝うことができます。
最新リリースを確認して、最新バージョンをすばやく見つけることができます。
AURからyoutube-music-bin
パッケージをインストールします。AURのインストール手順については、このwikiページを参照してください。
Homebrewを使用してアプリをインストールできます(cask定義を参照)。
brew install th-ch/youtube-music/youtube-music
アプリを手動でインストールし、アプリの起動時に「破損しているため開けません」というエラーが表示される場合は、ターミナルで次のコマンドを実行します。
/usr/bin/xattr -cr /Applications/YouTube\ Music.app
Scoopパッケージマネージャーを使用して、extras
バケットからyoutube-music
パッケージをインストールできます。
scoop bucket add extras
scoop install extras/youtube-music
または、Windows 11の公式CLIパッケージマネージャーであるWingetを使用して、th-ch.YouTubeMusic
パッケージをインストールできます。
注: 「不明な発行元」からのものであるため、Microsoft Defender SmartScreenがインストールをブロックする場合があります。これは、GitHubで手動でダウンロードした後に実行ファイル(.exe)を実行しようとする場合にも当てはまります。
winget install th-ch.YouTubeMusic
- リリースページで_デバイスのアーキテクチャ_に対応する
*.nsis.7z
ファイルをダウンロードします。x64
は64ビットWindows用ia32
は32ビットWindows用arm64
は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
プラグインを使用すると、次のことができます。
- アプリを操作する - Electronの
BrowserWindow
がプラグインハンドラーに渡されます - HTML/CSSを操作してフロントエンドを変更する
src/plugins/YOUR-PLUGIN-NAME
にフォルダーを作成します。
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();
} // レンダラーフックを定義
});
- フロントエンドとバックエンドの通信: ElectronのipcMainモジュールを使用して行うことができます。
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 (Debian用arm64)pnpm dist:linux:rpm-arm64
- Linux (Fedora用arm64)pnpm dist:mac
- macOS (amd64)pnpm dist:mac:arm64
- macOS (arm64)
electron-builderを使用して、macOS、Linux、およびWindows用のアプリをビルドします。
pnpm start
pnpm test
Playwrightを使用してアプリをテストします。
MIT © th-ch
メニューを非表示
オプションがオンの場合 - altキー(またはアプリ内メニュープラグインを使用している場合は` [バックティック]キー)でメニューを表示できます