IFTTTの話題があったので、n8nにないかなと思ったら、トリガではないものの出来そうだったので試しました。
前提
- n8n導入済み
- SpotifyのClientIDやらを取得済み
- モロヘイヤ導入済み(モロヘイヤのなうプレ機能を使います)
ワークフロー
今回はこんな感じ。
n8nではSpotifyノードをトリガとして指定できないみたいなので、実際に使うときはCronで5分毎みたいな感じになると思います。
Cron
5分毎に指定
Spotify
Spotifyのクレデンシャルは事前に指定済みとします。
Resource に Playerを指定。
Operation に Currently Playingを指定。
Set
別になくてもいいんですが、今回はなんとなく追加。
Values to Setを設定していきます。
Name に TrackURL を指定。
Value に {{$node["Spotify"].json["item"]["external_urls"]["spotify"]}}
を指定。
これで、再生中の曲のURLが取得できます。
モロヘイヤを使わない場合は、URLとタイトル、アルバム、アーティストとかを取得すればいいでしょう。
HTTP Request
Request Methodは POSTを指定。
URLにモロヘイヤのWebhookを指定します。
Bodyはtextで #nowplaying {{$node["Set TrackURL"].json["TrackURL"]}}
でよいでしょう。
モロヘイヤを使わない場合は、普通にMisskeyのAPIたたけば大丈夫です。
これで、モロヘイヤのなうプレ機能を使って投稿されます。
こんな感じ
最後に
n8n色々と使えますね、見てるとMatrixのノードとかもありますし・・・
今回の使い方だと実はちょっと問題があって、曲の長さ的にも最長で5分毎くらいにしかできず、頻繁にAPIを叩く必要があること。
これ大丈夫かな。。あとで調べようと思います。
といっても、私はSpotify使ってない人なので、もし聞くことがあったらその時だけActiveにすればいいかなとか思ったり。
ちなみに、10分くらいの曲聞いたら重複するんですが、そのあたりは、適当にFunctionで前と同じTrackURLだったらはじけばいいので大した問題ではありません。
ちなみに、モロヘイヤのなうプレ機能は、SpotifyやAppleMusicのURLを張ると、自動でタイトルやらアルバム名やらを投稿してくれる機能です。
めちゃ便利なのでぜひ鯖缶の人はモロヘイヤを導入しましょうw
と言う感じで、この辺で。
では、また。
Misskeyと書きましたが、PostするだけならMastodonでもほぼ同じです。。
また、モロヘイヤを使ってる場合はWebhookを使えるので、PleromaでもMisskeyでもMastodonでも対応してれば同じ方法でできます。