どうも何とか生きています。
報告することはslay the spireとDivisionが楽しい、linuxでdivision2が動いた、新しいSSDを買ったぐらいしかないです。後は仕事ばっかり。
最近”slay the spire”にハマっていたり、”foundation”というゲームが気になっていたりしていました。そういうワードが含まれた情報をyoutube、ニコニコあたりから動画を拾いたくなりました。
端的にいえば、特別なキーワードを含んだ動画又は配信をdiscordにプッシュする。
私は美術系の人間なのでpcのことは専門外なので質問しないでください。
必要
- IFTTT
- RSS feed
- Webhooks可能クライアント(discord等)
- やる気
絶対条件
RSS feedがW3C Feed 文法をクリアすること
大まかな流れ
- IFTTT( https://ifttt.com/)にアクセス。new appletの作成
- if “this” then thatの”this”でトリガーの作成
- RSS Feed選択***ココが一番ネックなので後述***
RSS feedのURLを入力 - New feed item 又は New feed item matchesを選択
New feed item > RSS feedに追加されたものを片っ端から選ぶ
New feed item matche > RSS feedに特定のキーワード”borderlands2″等が追加されたらそれだけを選ぶ - “that”で行いたいアクションを選ぶ
- Discordなのでwebhooks > Make a web requestを選択
- Make a web requestの必要項目を埋める
URL:Discordのbotのwebhooksのurlを直コピー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のほうが楽かも?
このへんも記事にしたいけど時間はない。