Pipedream 経由で Spotify の曲情報を Misskey に投稿する

Web

目指すゴール

Spotify で特定のプレイリストに曲を追加すると、Misskey 側にノートが自動で投稿される

使用したサービス

Pipedream
https://pipedream.com/

  • API を使ったいろいろな操作をブラウザ上で作成・実行できるサービス
  • 料金プランは以下
  • Free プランでも結構使えそう
    • Workflow / App / Event Source の作成数に制限なし
    • 1ヶ月に 10,000 万回、1日に 333 回まで呼び出し可能

参照するリファレンス

作業ログ

Misskey 側でやること

アクセストークンの発行
  • 設定 > API を選択
  • [アクセストークンの発行] を押下
  • 任意の名前を入力
    • 今回は Spotify連携用 にした
  • 権限を設定
    • ノートを作成・削除する だけあればOK
  • 右上のチェックアイコンで確定
  • 表示された文字列をコピペで控える
    • あとから参照できないので、わからなくなったら再発行が必要

Pipedream 側でやること

以降のスクリーンショットは、動作成功後にあとから撮影したもの。実際の新規作成時画面とは少し異なる。

1:トリガーの設定
  • Spotify → New Track in Playlist を選択
  • CONFIGURE

    • Spotify のアカウントにログイン
    • プレイリストが読み込まれたら、トリガー操作に使うプレイリストを選ぶ
  • SELECT EVENT

    • 実行間隔を設定
      • 今回は1分ごとを指定
    • Spotify で選択したプレイリストに曲を追加してみて、取得できるか試す
  • RESULT

    • 成功すると JSON 形式でデータが返ってくる
2:Webhook の設定
  • Step を追加 → HTTP / Webhook を選択
  • Send POST Request を選択
  • CONFIGURE

    • ノート作成のエンドポイントを入力
      https://misskey.io/api/notes/create
    • Body > Content Type で JSON 形式を選択
      application/json
    • Misskey 側に送る JSON データを作成する
      • 詳細後述
  • RESULTS

    • Test を実行すると Misskey 側に投稿が走る
    • 問題なければ Deploy
3:動作チェック

  • 作成した Workflow の INSPECTOR 画面を開く
  • Spotify 側で設定したプレイリストに曲を追加
  • 1分待ってみて、正しく動作すればOK
    • Free プランの上限に収まるように実行頻度を下げておく

JSON データの書き方

Misskey API のリファレンスを参考に以下を指定する。

KEY VALUE
i 取得したアクセストークン
text ノートに記載する本文
visibillity 公開範囲

今回 text に設定した文字列は以下。

#紹介したい曲とか\n{{steps.trigger.event.track.name}} - by {{steps.trigger.event.track.artists[0].name}}\n{{steps.trigger.event.track.external_urls.spotify}}
  • 変数部分については、実際の値を見ながら挿入するものを選べる
  • 改行は \n で可能
  • アーティスト情報は連想配列で格納されるため、複数アーティストが参加している作品の場合、上記の指定だと先頭のアーティストの情報しか出力されない
    • ちゃんとやるなら文字列を操作する Step が別で必要

特定のチャンネルに投稿する(2023-02-22 追記)

最近「Misskey音楽部」というチャンネルをフォローして、みんな気ままに音源のURLを投げていて良さそうだなあと思ったので、投稿先をこちらに設定してみる。

チャンネルIDを調べる

  1. Misskey にログインした状態で「チャンネル」画面(https://ホスト名/channels)を開く

  2. 「フォロー中」の一覧から投稿先に設定するチャンネルを右クリックし、「リンクをコピー」を選択

  3. 以下のようなURLが取得できる

    https://misskey.io/channels/xxxxxxxxxx
  4. URL 末尾にある10桁の乱数を控える(例:「Misskey音楽部」の場合は 9aqpbtek6g

JSON データ上でチャンネルを指定

Misskey 側に送る JSON データを作成する際に、 channelId パラメータを設定する。

KEY VALUE
i 取得したアクセストークン
text ノートに記載する本文
visibillity 公開範囲
channelId 投稿先のチャンネルID

参考エントリー

Comments

  • スパム対策のため、コメント本文にURLが含まれている場合は「承認待ち」となり、すぐに投稿が反映されません。ご了承ください。
  • 公序良俗に反する内容、個人が特定できる情報、スパム投稿と思われるコメント等については、予告なく編集・削除する場合があります。