Discordに動画やら配信情報を通知してみる

どうも何とか生きています。
報告することはslay the spireとDivisionが楽しい、linuxでdivision2が動いた、新しいSSDを買ったぐらいしかないです。後は仕事ばっかり。

最近”slay the spire”にハマっていたり、”foundation”というゲームが気になっていたりしていました。そういうワードが含まれた情報をyoutube、ニコニコあたりから動画を拾いたくなりました。

端的にいえば、特別なキーワードを含んだ動画又は配信をdiscordにプッシュする。
私は美術系の人間なのでpcのことは専門外なので質問しないでください。

必要

  • IFTTT
  • RSS feed
  • Webhooks可能クライアント(discord等)
  • やる気

絶対条件

RSS feedがW3C Feed 文法をクリアすること

大まかな流れ

  1. IFTTT( https://ifttt.com/)にアクセス。new appletの作成
  2. if “this” then thatの”this”でトリガーの作成
  3. RSS Feed選択***ココが一番ネックなので後述***
    RSS feedのURLを入力
  4. New feed item 又は New feed item matchesを選択
    New feed item > RSS feedに追加されたものを片っ端から選ぶ
    New feed item matche > RSS feedに特定のキーワード”borderlands2″等が追加されたらそれだけを選ぶ
  5. “that”で行いたいアクションを選ぶ
  6. Discordなのでwebhooks > Make a web requestを選択
  7. Make a web requestの必要項目を埋める
    URL:Discordのbotのwebhooksのurlを直コピー

    discordの↓画面の編集でみれます

    method:POST
    Content Type:application/json
    body:{ “content”: “**{{EntryTitle}}** {{EntryPublished}}: {{EntryUrl}} ” }

rss feedについて

相手によって方法が違う
完成したfeedは文法パスしないと弾かれます。

最低限以下を満たさないとダメなようです。
https://validator.w3.org/feed/

youtubeの特定の人をRSS feedとしたい場合

hoge = 特定の人のID
https://www.youtube.com/feeds/videos.xml?channel_id=hoge

youtubeの検索結果をfeedとしたい場合

[参考]jsを利用Create RSS Feed for YouTube Search Results

> link = (“https://www.youtube.com/results?search_query=” + search),
> self = ScriptApp.getService().getUrl() + “?” + search;
言語ソート等この部分の引数はお好みで弄る必要がある。

ニコニコ動画の検索結果をfeedとしたい場合

例(slay the spire)
https://www.nicovideo.jp/tag/Slay_the_Spire?sort=f&rss=2.0

[参考]動画のタグ検索の結果がRSSで得られるようになった
https://d.hatena.ne.jp/tsukaban/20091224/p1

ニコニコ生放送をfeedとしたい場合

[参考]ニコニコ生放送のユーザー放送RSS
https://qiita.com/ritz4_5/items/b5608dfb80e7e58fb179

[参考]複数のRSSに並列リクエスト後マージして返す関数
https://qiita.com/mpyw/items/77288c948b64eab1a3b3

この関数をそのまま適用すると’:’が含まれるので配信者名は拾えないみたい。
解決方法
‘owner’ => (string)$item->children(‘nicolive’,true)->owner_name,

[参考]RSS mix service
https://www.rssmix.com

ニコ生のRSSは公開されているがページ数pは連番で続いている。
https://live.nicovideo.jp/recent/rss?tab=common&sort=view_counter&p=1&order=desc
https://live.nicovideo.jp/recent/rss?tab=common&sort=view_counter&p=2&order=desc
https://live.nicovideo.jp/recent/rss?tab=common&sort=view_counter&p=3&order=desc
etc…

◆チラシの裏 curlでも可能

[参考]DiscordにWebhookでいろいろ投稿する
https://qiita.com/Eai/items/1165d08dce9f183eac74

pythonのほうが楽かも?


このへんも記事にしたいけど時間はない。

 

コメントを残す

メールアドレスが公開されることはありません。