📚
Powershell で NowPlaying する
NowPlaying とは
Windows の iTunes で再生中の曲を #NowPlaying
ハッシュタグをつけてツイートするやつです。
なうぷれ というツールがあり、私も長い間使っていましたが、もはや現代では動作しません。作者の方お疲れ様でした。
PowerShell で実装
NowPlaying を PowerShell で実装している方がいたので ( Windows版iTunesで再生中の楽曲を#NowPlayingをつけてツイートするページを開く cmd版,WSH(JScript)版,Powershell版 ) アートワークも取得するようにしてみました。
$track = (New-Object -C "iTunes.Application").CurrentTrack
$artwork = $track.Artwork.Item(1)
$ext = switch ($artwork.Format)
{
1 { "jpg" }
2 { "png" }
3 { "bmp" }
}
$artwork.SaveArtworkToFile( -join([System.Environment]::GetFolderPath("Desktop"), "\\artwork.", $ext) )
$track | % { start ("https://twitter.com/intent/tweet?text=" + [System.Uri]::EscapeDataString("$($_.Name) - $($_.Artist) (Album: $($_.Album)) #NowPlaying")) }
Twitter API の Web Intents を使っていますが Web Intents には画像をツイートする機能はありません。 アートワークの画像ファイルがデスクトップに保存されるので、それをツイート画面にドラッグドロップしてくだち。 (まじめに(?) Twitter API だけで画像もツイートさせると token などが必要なので大変です)
PSSecurityException 対策
Windows のポリシーによっては以下のように PowerShell の実行を制限している可能性があります。
C:\Users\rin>PowerShell C:\Users\rin\Desktop\nowplaying.ps1
C:\Users\rin\Desktop\nowplaying.ps1 : このシステムではスクリプトの実行が無効になっているため、ファイル C:\Users\rin\Des
ktop\nowplaying.ps1 を読み込むことができません。詳細については、「about_Execution_Policies」(https://go.microsoft.com/f
wlink/?LinkID=135170) を参照してください。
発生場所 行:1 文字:1
+ C:\Users\rin\Desktop\nowplaying.ps1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : セキュリティ エラー: (: ) []、PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
C:\Users\rin>
たとえばショートカットを作成し、実行できるようにするとよいと思います。
- デスクトップで右クリック - 新規作成 - ショートカット
- 「リンク先」に
powershell.exe -ExecutionPolicy RemoteSigned C:\Users\rin\Desktop\nowplaying.ps1
などと入力 - OK
参考
- Windows版iTunesで再生中の楽曲を#NowPlayingをつけてツイートするページを開く cmd版,WSH(JScript)版,Powershell版
- itunesからアートワークを取得する - tizen.moe
- Exploring iTunes Using PowerShell: Part 1 | Learn Powershell | Achieve More CurrentTrack のほかにも様々なプロパティやらメソッドやらがあります。
- iTunes method SaveArtworkToFile failed, called from AutoHotkey COM object - Stack Overflow SaveArtworkToFile には絶対 PATH を渡さないといけません
- PowerShell のスクリプトが実行できない場合の対処方法 #Windows - Qiita
Discussion