Rabbitflower
Rabbitflower RabbitLover.

PCで自動で音楽を再生させる

PCで自動で音楽を再生させる

家で作業する日があるとその場所で同じ時間に曲をかけて作業したりしたいのですが、毎日同じ時間にかけて同じ時間に切ってというのが他の作業をしていたりすると意外と面倒でどうにかならないかなとタスクスケジューラで予定を組みました。
同じプレイリスト、繰り返しでいいものなら簡単にできたので備忘録です。

必要なもの

  • windowsPC
  • spotifyなどの音楽アプリ(無料アカウントでOK)

今回はspotifyを使用していますが、音楽アプリの再生やスキップなどの操作があるものなら大抵のものは大丈夫だと思います(保証はありませんが)

やり方

起動するプログラムを作る

  • メモ帳を新規で開いて、以下をコピーして貼り付けます
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# spotify-pause.ps1
Add-Type -TypeDefinition @"
using System;
using System.Runtime.InteropServices;
public class Keyboard {
    [DllImport("user32.dll", SetLastError = true)]
    public static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);
}
"@

# メディアキー「再生/一時停止」を送信
[Keyboard]::keybd_event(0xB3, 0, 0, 0)   # key down
Start-Sleep -Milliseconds 100
[Keyboard]::keybd_event(0xB3, 0, 2, 0)   # key up
  • メモ帳のファイル→名前をつけて保存をクリックし、名前に「spotify-pause.ps1」と入れて、任意の場所に保存する

確認

* 管理者権限でPowerShellを実行*

  • 「スタート」→「PowerShell」→右クリック「管理者として実行」
  • 以下をコピペして実行
    1
    
    powershell -ExecutionPolicy Bypass -File "C:\Users\あなたの名前\Documents\spotify-pause.ps1"
    
  • 「C:\Users\あなたの名前\Documents\spotify-pause.ps1」部分は上記で保存したファイルのパスを入れてください

PCのタスクスケジューラを起動

  • 左下のスタートから検索などでタスクスケジューラを起動
  • 右の「タスクの作成」をクリック

「全般」タブ

  • 名前「spotifyの再生(任意)」
  • 「ユーザーがログオンしている場合のみ実行する」と「最上位の特権で実行する」にチェック
  • 構成対象はwindows10 or windows11

「トリガー」タブ

  • 「新規」→停止したい時刻と繰り返しの頻度を設定
    (詳細は特に触らなくてOKだが一番下の有効にチェックが付いているかを確認)

「操作」タブ

  • 「新規」をクリック

  • 「プログラム/スクリプト」に以下を入力
    1
    
    powershell
    
  • 「引数の追加(オプション)」
    1
    
    -ExecutionPolicy Bypass -File "C:\Users\あなたの名前\Documents\spotify-pause.ps1"
    
  • 「C:\Users\あなたの名前\Documents\spotify-pause.ps1」部分は上記で保存したファイルのパスを入れてください

  • 「開始(オプション)」は 空欄でOK

「条件」タブ
・電源のチェックを外しておくとノートパソコンで電源コードを外していても動きます

「設定」タブ
・「スケジュールされた時刻にタスクを開始できなかった場合、すぐにタスクを実行する」にチェックをつける

  • OKを押す(パスワードが必要な場合あり)

テスト

・Spotifyで何か再生しておく
・タスクスケジューラで右クリック → 「実行」
・再生が止まればOK

チェック項目 状態
PowerShell実行で動く
タスクが「最上位の特権で実行する」になっている
「ユーザーがログオンしている場合のみ実行」にしている
powershell + -ExecutionPolicy Bypass -File "..." の形式
ファイル名・パスに日本語が含まれない ⚠️(含むと失敗しやすい)

注意

これは音楽を一時停止させる状態になるので、タスクスケジューラに再生用のタスクを1つ、停止用のもう1つを作っておくと時間で再生されたり止まったりします。
(一緒にして1つのタスクにすることもできますが、2つに分けていたほうが便利かなと思います)
簡易のものなので、音楽アプリを起動していないと動きません。