YouTubeをブラウザで開かずに、メニューバーから集中用BGMをぱっと流すためのmacOSアプリです。
動画は表示せず、mpvで音声だけを再生します。
コンセプトはミニマル、省メモリです。 Chromeのタブを開きっぱなしにせず、5〜10曲未満の小さな候補から1曲を選び、作業を邪魔しないように軽くループできることを目的にしています。
- 常時表示は小さくする。メニューバーには再生中かどうかと、ざっくりした進捗だけを出す
- 詳細はクリックした時だけ見せる。曲名、経過時間、総再生時間、停止などはメニュー内に置く
- ブラウザを開かない。YouTube画面、関連動画、広告表示に作業を引っ張られないようにする
- 音声だけを軽く流す。動画表示はせず、
mpvで低めの音声形式を選ぶ - 個人のURLリストは公開しない。
data/bgm-list.jsonはGit管理外にする - 機能を増やしすぎない。プレイリストを楽しむより、集中用の1曲ループに絞る
- YouTubeを開かないので、作業用BGMを探しているうちに別の動画へ脱線しにくい
- ブラウザのタブや動画プレイヤーを常駐させず、メニューバーだけで操作できる
- 動画表示なし、音声のみなので軽い
- ChromeをBGM再生用に開きっぱなしにしなくてよい
- YouTubeの画面UIや広告表示に作業を邪魔されにくい
brew install jq mpv yt-dlpビルド:
./macos/BGMManager/build.sh生成されたdist/BGM Manager.appを/Applicationsへコピーして起動します。
Dockに置いておく場合は、起動後にDock上のアイコンを右クリックしてオプション > Dockに追加を選びます。
- YouTube URLをコピーします。
- メニューバーの
♫をクリックします。 URLを追加...を選びます。- クリップボードにURLがあれば入力欄へ自動で入ります。
追加を押すと曲リストに保存されます。おまかせループで1曲を自動選択するか、曲を選ぶから曲を選ぶと再生します。
追加した曲はすぐに曲を選ぶへ反映されます。
曲を管理から、曲の表示名変更と削除ができます。
デフォルトでは、3時間タイマーで選んだ曲をループ再生します。
通常再生でも、タイマー再生でも、再生中は♫ ◔や♫ ◕のように、ざっくりした進捗だけをメニューバーに表示します。
メニュー内では、進捗: 01:23 / 05:00 28%のように総再生時間を含む詳細、一時停止、停止を操作できます。
おまかせループを選ぶと、曲リストから1曲だけランダムに選び、その曲をループ再生します。
再生時間で1時間、2時間、3時間を選ぶと、タイマー終了までリピート再生します。
再生中に再生時間を変えると、開始からの合計時間としてタイマーを延長できます。
例えば1時間経過後に3時間を選ぶと、合計3時間まで再生します。
すでに経過した時間より短い設定は、即停止を避けるため適用しません。
自動(曲の長さ)に戻すと、タイマーなしの通常再生に戻ります。
タイマーを選んで曲を選んだ場合は、タイマーが終わるまでその曲を繰り返します。
おまかせループでも次の曲には進まず、選ばれた1曲だけを繰り返します。
一時停止は同じ曲の同じ位置から戻る操作です。一時停止中は、タイマー再生の進捗と残り時間も止まります。
停止は再生を終了して、現在位置も捨てる操作です。
BGM Managerを終了を選ぶとメニューバーから消えます。
もう一度使う場合は、Launchpad、Finderの/Applications/BGM Manager.app、または次のコマンドから起動します。
open "/Applications/BGM Manager.app"曲リストはdata/bgm-list.jsonです。このファイルは個人用URLを含むためGit管理外です。
初回起動時に自動作成されます。サンプルはdata/bgm-list.example.jsonです。
再生はmpvの軽いストリーミングバッファを使います。
再生が止まる時の切り分け用に、アプリ版は~/Library/Logs/BGMManager/mpv.logへ最後の再生ログを残します。
./scripts/bgm-manager.sh manage
./scripts/bgm-manager.sh play
./scripts/bgm-manager.sh play 1 1h
./scripts/bgm-manager.sh play --url 'https://www.youtube.com/watch?v=...' --time 30m