数年前から、録画PCのログをTwitterの自分のアカウント上に投稿するように設定していましたが、これが原因でTwitter側から「機械的な投稿をするアカウント」と認識されてしまい、Twitter検索等にツイートが引っかからなくなってしまっていました。自分のツイートをTwitterで検索する際には問題ないのですが、他のアカウントからツイートが検索結果に出ないのはアプリの宣伝などにおいてちょっと不利かなと思ったのでログをTwitterではなくクローズドな自分専用のDiscordサーバーに移すことにしました。ログ出力BOTの仕組み従来のログBOT以前までは、Javaで自作したプログラム(advancedbear/TvRock-Log-Tweet2)を用いて、tvrockのコマンド機能からツイートを投稿していました。tvrockに限らずとも、昨今の高機能録画ソフトウェア(EDCBやChinachuなど)であればコマンド実行機能は備わっていると思うので、そういったソフトを利用していても同様の仕組みで実行できるはずです。Webhook」を利用してみました。今回はプログラムをNode.jsで書いてみました。Webhookとは?簡単に言うと、「HTTP経由でAPIを叩くと実行されるBOT」です。PC版Discordクライアントを立ち上げ、管理者権限を持っているサーバーのテキストチャンネルを右クリックし「チャンネルの編集」を選択します。左メニューのWebhooksを選択肢、右上の「Webhookを作成」をクリックします。BOTの名前と、投稿先のチャンネルを指定します。1つのBOTアカウントは1つのチャンネルにしか投稿はできません。URL」欄のアドレスが、BOT実行に必要なURLとなります。Webhookの各APIはhttps://discordapp.com/developers/docs/resources/webhookから見ることが出来ます。基本的には「テキストチャットへの投稿」しか行えず、サーバーのユーザー操作等は出来ませんし、Discord上でのイベントをキーにBOTを動作させるような場合にはWebhookは利用できません。BOTプログラム前述の通り、Node.jsで書きました。最初は出来るだけ外部モジュールを使いたくなかったので、requestを使ってやり過ごそうとしたのですが、ファイル送信が上手くできなかったのでdiscord.jsを使っています。録画ファイルにドロップがある場合、ドロップした時間周辺の1秒を画像として投稿を用意しました。実際のtvrock用のNodeプログラムのソースは以下になります。実際に動かしてみた上記のコードは、ドキュメントフォルダ下のtvrockフォルダに配置した上で、ffmpeg.exeとtscheck.exeを同一ディレクトリ内に置く必要が有ります。iconv-liteを実行する必要があります。[%5]"を設定するだけです。あとは各イベント発生時にtvrockが勝手にBOTを実行し、Discord上に通知を飛ばしてくれます。受信強度(Sig値)が極端に低い(11.0dB未満)場合には自分宛てにメンションを飛ばすことにより「アンテナおかしくない?」の確認ができるようにしました。チューナーが起動直後で電波を受信し始める前だったりすることはあるので必ずアンテナがおかしいとは限らないです。録画終了時その他のログもそうですが、このBOTが表示している各パラメーターはtvrockが出力するログ(tvrock.log2)からスクレイピングして表示しています。実際の録画ファイルには録画されないDrop値やScrambling値が含まれることが有ります。BS11は毎回Scramblingが毎秒1ずつ増えるのですが、これは録画されたtsファイルには記録されないPIDのものなので問題がない場合になります。ドロップ発生時ドロップ発生時は、tscheckに録画済みtsファイルを受け渡し、その結果を投稿します。ドロップしたPIDを一覧表示し、Total値が一番大きいもの(≒映像PID)のドロップ秒数をffmpegへ渡し、画像として出力します。出力された画像は、どのようなシーンがドロップしたかがひと目で分かるので意外と便利です。ショックを受けることも多いですが・・・。(CM中などならともかく、この画像のように本編中だとかなりショックです)今後の課題コードが汚いどうしてもファイル操作が入るので、出来れば非同期実行したいところなのですが、複数プロセスで同時にtscheckやffmpegを走らせるとPC側への負荷が大きいためやむを得ず同期実行しています。そのせいで、見るも無残なコールバック地獄に陥ってしまっています。最初はPromise辺りを使って綺麗に書くこともチャレンジしていたのですが、結局面倒くさくなりコールバック地獄と化しました。メンテナンス性が最悪なのでどうにかしたいところですが、このまま放置もありそうです。利用について上記のコードは自由に使ってもらって構いません。tvrock以外の録画ツールで実行する際にはログファイルの辺りを全部書き直さないとダメだと思うので、イチから書き直したほうが楽かもしれません。アイデアは自由に使ってもらって結構です。PX-W3PEリンクを取得FacebookTwitterPinterestメール他のアプリコメントコメントを投稿TwitterでフォローTwitterをやっています。フォローして頂けると喜びます。絡むときはお気軽にどうぞ。2014年の9月に録画サーバーの構築を行い(http://advancedbear.blogspot.jp/2014/09/PX-W3PE-setup.html)、2016年の2月に組み換えを行った(http://advancedbear.blogspot.jp/2016/02/rebuild-tvrecord-pc.html)録画サーバーですが、この3月に函館から東京へと引越しを行った際にセットアップのし直しを行いました。Homeへとアップグレードしたのですが、様々なソフトウェアの残滓が影響してか不安定な状況が続いていたためOSの再インストールをしなければなと考えていたタイミングでした。そのタイミングで、引越しに伴う停止期間が発生したのでついでとばかりに録画サーバーのリビルドを行うことにしました。App」をリリースしました。Talker」アプリの後継ソフトウェアとなり、機能拡充版となります。Bloggeradvancedbear。