読者です 読者をやめる 読者になる 読者になる

Diary over Finite Fields

515ひかるが書き溜めたメモとコラムと雑記

Twitter に NowPlaying するコマンドを作った

こんな風に #NowPlaying するシェルコマンドをつくった. Tweet する方法はこちらのを(ほぼ)そのまま使わせていただいた.

qiita.com

PythonTwitter 認証に使うライブラリがなかったのでインストール.

 sudo pip install requests requests_oauthlib

上の記事のをそのまま使ったので Python だが, それ以外の理由はない. 認証を通せるなら他の言語でも構わない.

Rhythmbox

結構メジャー(らしい) Rhythmbox という Media Player がある.

Apps/Rhythmbox - GNOME Wiki!

これは実はシェルコマンドが用意されていて, コマンドからも操作ができる. たとえば,

 rhythmbox-client --pause # 再生中の音楽を一時停止
 rhythmbox-client --play # 再生
 rhythmbox-client --stop # 停止

などの操作ができる. そこで, 再生中の音楽の曲名やアルバムタイトルなどを表示するというオプションが用意されている. 詳細は man するか, このリンクを見る.

Ubuntu Manpage: rhythmbox-client - controls a running instance of rhythmbox

マニュアルを見ると, --print-playing-format をすると, 標準出力に情報を成形して出せることが分かる.

% rhythmbox-client --print-playing
椎名林檎 - 雨傘
% rhythmbox-client --print-playing-format="%tt by %ta from %at"
日和姫 by 椎名林檎 from 逆輸入 ~港湾局~

ならこの標準出力をそのまま Tweet すればいいなぁと思って書いたのはこちら(ほとんど Qiita 記事のものをそのまま使っているので, 一部のみ掲載).

# import
import subprocess

# コマンド
cmd = "rhythmbox-client\t--print-playing-format=#NowPlaying \"%tt\" by %ta from \"%at\""
# ツイート本文
## スペースはツイートの整形につかったので, \t でコマンドの区切りを表している
params = {"status": subprocess.check_output(cmd.split("\t"))} # 標準出力を返す

# 後略

これで paramspost するとなうぷれいんぐできる.

これでフォロワーがまた減るぞ~