私も愛用しているHD予約録画マネージャ TvRockですが、TvRock 0.9t4から実装されているTwitter連携機能はBasic認証を用いた方法でAPIを利用しています。TwitterのBasic認証が2010年8月31日で廃止になることから、現在の最新バージョンではこの機能がごっそり削除されています。
とはいえ、この機能はとても便利なもの。Twitter連携機能を使いたいがために一つ前のバージョンに当たる「TvRock Ver 0.9t8a」を利用し続けている方も多いかと思います。私もそのユーザーの一人でした。
しかし、Basic認証を使っている以上、たとえ旧バージョンを利用し続けてもまもなくこの機能は使えなくなってしまいます。@twitterapi’s countdown to Basic Auth removalによれば、記事執筆時点でBasic認証が使えるのはあと3日となっています。
現在の最新バージョンである「TvRock Ver 0.9u2」はTvRock自身にTweetする機能がない為、今後も録画情報などをツイートしたい場合は、外部のツールに頼ることになります。本エントリーでは、3つの方法を紹介しますが、どれも一長一短があるので、お好みで選んでみてください。
なお、どの方法を利用する際も、「Ver 0.9u以降で追加されたコマンド発行」を利用しますので、「TvRock Ver 0.9t8a」以前のバージョンをお使いの方はどのみちTvRockのアップデートが必要です。
TvRock + TweetConsole
一つ目がTvRockとTweetConsoleを使う方法。TweetConsoleはコマンドラインからツイートするソフトです。OAuthにも対応しています。また、引数を与えてツイートすることができるため、TvRockから呼び出して使うことが出来ます。動作には.NET Framework 2.0以上が必要です。
メリット: 導入が楽ちん
ソフトをダウンロードしたら「twlcnsl.exe」をクリックします。OAuth認証を済ませた後、「twtcnsl.exe.config」と一緒にTvRockの設定フォルダにコピーします。
あとはTvRockの設定画面を開き、「プロセス」タブの「コマンドを実行」にチェックを入れた上で次の行を加えます。
WT: twlcnsl.exe 視聴中 %d
CR: twlcnsl.exe 録画予約 %i %j %k ~ %j %l %d
CS: twlcnsl.exe 録画開始 %d
CE: twlcnsl.exe 録画終了 %d
TJ: twlcnsl.exe 時間調整 %i %j %k ~ %l %d
これで「番組を視聴しているとき」・「予約したとき」・「録画開始」・「録画終了」・「時間調整」の時に自動的にツイートが行われます。現時点ではもっとも簡単な方法ではないかと思います。
メリット: ツイート内容がある程度カスタマイズできる
コマンドを見るとわかるとおり、「twlcnsl.exe」以降の文字列とパラメータがツイートされるため、TvRockに用意されているパラメータを加えることで、ある程度カスタマイズすることができます。Twitterのハッシュタグをつけたければ「%g」を加えればよいですし、「%h」でデバイスコードを付加するのもいいかもしれません。
デメリット: クライアント名に「TweetConsoleから」と表示される
OAuthの特性上この方法を用いてツイートしたものは全てTwitter上で「TweetConsoleから」と表示されます。これをデメリットととらえるかは人それぞれですが・・・。
TvRock + TwitRock
二つ目にご紹介する方法がTwitRockというソフトを利用する方法。@hageatama氏の製作です。ダウンロードはTwitRock -TvRockのTwitter通知支援ソフト-から。動作には.NET Framework 3.5が必要です。
TweetConsole同様、OAuth認証を行った後、TvRockの設定フォルダにコピーします。
あとはTvRockの設定画面を開き、「プロセス」タブの「コマンドを実行」にチェックを入れた上で次の行を加えます。
CS: "TwitRock.exe" "[%h]番組「%d」 録画開始" "%g"
CE: "TwitRock.exe" "[%h]番組「%d」 録画終了" "%g"
CR: "TwitRock.exe" "%d" "%i" "%j" "%k" "%l" "%g"
これで「予約したとき」・「録画開始」・「録画終了」の時に自動的にツイートが行われます。
メリット: ツイート内容が詳細
TwitRockでは『TvRockが吐いてるログを検索して録画時の該当行を成形してPOST』しているため、ログ同様、細かい録画情報がツイート可能です。具体的には「TvRock Ver 0.9t8a」のツイートでもあったBitrate値やDrop数、BcTimeDiff、TimeAdjなどなど。番組の録画の成否だけでなく、後のエンコードを考えたドロップ数のチェックまで行いたい方は、こちらの方法がおすすめです。
メリット: クライアント名に「TwitRockから」と表示される
TwitRockを使うと、クライアント名が「TwitRockから」と表示されます。TwitterとTvRockがいかにも連携しているような気分になれます。もちろん、これをメリットととらえるかは人それぞれですが・・・。
デメリット: ツイート内容が固定
これはTwitRockってOAuth認証対応クライアント的何かを作ってみた際のいろいろでも触れられていることですが、TwitRockを使ってツイートする内容はユーザーが自由にカスタマイズできるようになっていません。例えば「Sig値もツイートしたい」と思っても、現時点では出来ないようになっています。
とはいえ、TwitRockは録画の成否判断に必要十分な情報をツイートしてくれるため、私はこれで十分だと思っています。
TvRock + TweetConsole + ActivePerl
最後はドクタァムーグ氏のサイトで紹介されている方法。TvRockと、先のTweetConsoleに加えて、ActivePerlを利用します。
導入方法はActivePerlをインストール、環境変数を設定します。次に、twtcnsl.exe.configをメモ帳などで開き、60行目~65行目を次のように修正します。
<setting name="ConsumerKey" serializeAs="String">
<value>EZRZStZjab4jrlYi5RfR8w</value>
</setting>
<setting name="ConsumerSecret" serializeAs="String">
<value>92shi4Gj9vwUumCdTiPT12cGVzTTFF5O2cZcoYkHPI</value>
</setting>
太字が修正箇所です。あとはOAuth認証を行い、「twtcnsl.exe.config」と一緒にTvRockの設定フォルダにコピーします。
続いてTvRockの設定画面を開き、「プロセス」タブの「コマンドを実行」にチェックを入れた上で次の行を加えます。
# 録画開始
CS:tweet.bat "開始" "%h" "%8" "%9" "%c" "%g" "%5"
# 録画終了
CE:tweet.bat "終了" "%h" "%8" "%9" "%c" "%g" "%5"
その後、tweet.batファイルを同じ設定フォルダに作成し、中身を次のようにします。
@echo off
set subttl="%~4"
set genre="%~5"
if %subttl% == "notweet" goto :EOF
if %subttl% == "tweet" goto tweet
if %genre% == "ジャンル名" goto :EOF
:tweet
set /p =録画%~1 %~3 >"%temp%\%~2%~1tweet.tmp"0<nul
set tag=%~6
ping localhost -n 3 > nul
find "[%~2]番組「%~3」 録画%~1" tvrock.log | sort /r | perl -pe "s/^.*:[0-9][0-9] (.+?)\]:\[.+?Sig=(.+?), Bitrate=(.+?)Mbps, Drop=(.+?), Scrambling.+? BcTimeDiff=(.+?)sec, TimeAdj=(.+?)sec, CPU.*/\[Sg\2,Br\3,Dr\4,Td\5,Ta\6,TvRock V\1\ %tag:~0,-4% %~6]/g;" | find /v ".+?" >> "%temp%\%~2%~1tweet.tmp"
"twtcnsl.exe" /txt 1 "%temp%\%~2%~1tweet.tmp"
del "%temp%\%~2%~1tweet.tmp"
これ「録画開始」・「録画終了」の時に自動的にツイートが行われます。
メリット: TvRock Ver 0.9t8aと全く同じツイートが可能
ActivePerlの正規表現を用いてTvRockのログを置換しているため、見た目はBasic認証を使っているVer 0.9t8aと同じ内容をツイートすることができます。
メリット: クライアント名に「TvRockから」と表示される
先の画像を見ればわかるとおり、クライアント名が「TvRockから」と表示される為、いかにもTvRock自身がツイートしているように見せることが出来ます。もちろん、これをメリットと(以下略
デメリット: 導入がやや難解
他の方法に比べ、利用するソフトが1つ多い分、導入のハードルは高くなります。常日頃Perlに触れている人はすでにActivePerlをインストール済みかと思いますが、TvRockのためだけにインストールする価値があるかは微妙なところ。
以上、現時点でわかっているTvRock 0.9u以降を使ったツイート方法のご紹介でした。2010年8月31日以降もTvRock関係のツイートをしたい方はお試しあれ。
最後に。有益なツールを作って頂いたTweetConsoleのt_higashi氏、TwitRockのhageatama氏、方法の一つを考案していただいたドクタァムーグ氏に感謝。