Androidのメモとか

ポキオの日記です。今日も遅延してない。

Node−REDで「Sonos x Twitter」連携をやってみた

最強とは。

ポキオ Sonos Twitter Node-RED

前回はNode-RED向けSonos用ノードを作りました

「さいきょう」とか言ってると、結構胡散臭いですよね。分かってます。

relativelayout.hatenablog.com

flows.nodered.org

地味に御ダウンロード頂いており、大変恐縮です。Sonosデバイスを持ってて、まだ使ったことがない人がいたらぜひ使ってくださいね。

Sonos連携は簡単になったけど

作成したSonosノードは設定不要で使えるので、たとえば聞いている楽曲情報をTwitterで共有したいときは、SonosノードとTwitterノードをつなぐだけ(Twitterで投稿したい文面を変化させたいときは、別途ノードが必要)ですが、色々と問題があります。

  • 気づいたらTwitterのライムラインが聞いた曲で埋め尽くされてる
  • 曲をスキップした分だけTweetされてしまう
  • Spotifyの無料プランで流れる広告も曲としてTweetされてしまう

Sonos x Twitter連携のフローとは

このあたりをまるっとサクッと解決したのがこのフローです。

ポキオ Sonos Twitter Node-RED

ポイントは以下の通り。

  • 年のために、Sonosデバイスの監視を行っているRaspberry Piを定期的に再起動
  • Functionノードで、以下のように広告を弾きながらTweet分を作成する
if('advertisement' === msg.payload.title.toLowerCase()){
    return;
}

if('spotify' === msg.payload.artist.toLowerCase()){
    return;
}

var message = 'ポキオさんは' + msg.payload.artist + 'の「' + msg.payload.title + '」を聞いています。';


msg.payload = message;
return msg;
  • 2つのDelayノードを連結する
  • 1つ目のDelayノードで、短時間に曲送りされても無視するために、15分に1回しか次のノードに情報を渡さないようにする
  • 2つ目のDelayノードで、1日10回までTweetされないように制限をする

こんな感じ。これによって、なんとなく聞いている音楽をシェアしつつ、あまりタイムラインを汚さないような紳士的な振る舞いをするフローが爆誕したわけです!

そこまでして聞いてる音楽をシェアしてなんのためになるのか?

そういうことはあまり考えないようにしています(笑)

「Androidのメモとか」は、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。

このブログは個人的なメモ書きであったり、考えを書く場所であります。執筆者の所属する団体や企業のコメントや意向とは無関係であります。また、このブログは必ずしも正しいことが書かれているとは限らず、誤字脱字や意図せず誤った情報を載せる場合がありえます。それが原因で読者が不利益を被ったとしても、執筆者はいかなる責任も負いません。ありがとうございます。