Pipedream 経由で Spotify の曲情報を Misskey に投稿する
目指すゴール
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を調べる
-
Misskey にログインした状態で「チャンネル」画面(
https://ホスト名/channels
)を開く -
「フォロー中」の一覧から投稿先に設定するチャンネルを右クリックし、「リンクをコピー」を選択
-
以下のようなURLが取得できる
https://misskey.io/channels/xxxxxxxxxx
-
URL 末尾にある10桁の乱数を控える(例:「Misskey音楽部」の場合は
9aqpbtek6g
)
JSON データ上でチャンネルを指定
Misskey 側に送る JSON データを作成する際に、 channelId
パラメータを設定する。
KEY | VALUE |
---|---|
i | 取得したアクセストークン |
text | ノートに記載する本文 |
visibillity | 公開範囲 |
channelId | 投稿先のチャンネルID |
参考エントリー
- IFTTTを利用してSpotifyでいいねした曲をMisskeyに投稿する
- 最初 IFTTT 経由でやろうと思ったが「無料だと大抵動かないよ」と Misskey 上で助言をもらったので、代替サービスを探して Pipedream に行き着いた