みないで https://blog.ktuber.net/ketty_blossom/ みないで ja Pythonを使ってkukuluLIVEでお気に入りの配信者が配信を開始したら1getする方法 https://blog.ktuber.net/ketty_blossom/?3 みないで 2023-11-23T23:27:33+09:00 Python ※コードの中身が分かる方向けです。怒られたりサーバーに負荷が掛かるような悪用をする人が居たら非公開にします。


## 環境

・Windows10
・Python 3.9

外部ライブラリ
・selenium

pip install selenium
など各自でインストールしてください。

ファイル
https://d.kuku.lu/6bbzrc3fz

## コードの中身

from pprint import pprint
import requests
import time

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

# Chrome のオプションを設定する
options = webdriver.ChromeOptions()
driver = webdriver.Chrome(options=options)

# kukuluLIVEにログイン
login_page = "https://live.erinn.biz/login.php"
driver.get(login_page)

input("ログインし終わったらEnterを押してください")

# 配信一覧を取得してお気に入り配信があったらコメントを入力
url = "https://live.erinn.biz/api"
patams = {
"category": "live"
}

# お気に入りの配信者の名前のリスト
favorite_names = [
"ケティ",
"kukusama"
]

while True:
# 配信の一覧を取得
r_post = requests.get(url, params=params)

# 取得に成功していたら次へ、失敗していたらエラーを出力する
if r_post.status_code != 200:
raise Exception(f"Error status_code: {r_post.status_code}")

# print(r_post.status_code)

# 配信一覧のリストを開く
live_items = r_post.json()["live"]

# お気に入りの配信者の名前があったらその配信情報を取り出す
favorite_items = []
for item in live_items:
display_name = item["display_name"]
if display_name in favorite_names:
favorite_items.append(item)

if favorite_items != []:
break

# お気に入り配信者が居なかったら10秒待機してからループの最初へ
time.sleep(10)
continue


# 配信ページを開く
live_url = favorite_items[0]["url"]
driver.get(live_url)

# コメントの入力場所を取得
input_ele = driver.find_element(By.XPATH, '//*[@id="chatinput"]')

# コメントを入力してEnter
comment = "1get"
input_ele.send_keys(comment)
input_ele.send_keys(Keys.ENTER)
print("コメントを入力しました")


]]>
kukuluLIVEの配信開始の通知を自動でDiscordに投稿する方法について https://blog.ktuber.net/ketty_blossom/?2 みないで 2023-11-03T23:24:39+09:00 kukuluLIVE 【kukuluLIVE: Webhookによる外部連携機能を追加しました】
先日、kukuluLIVEにもWebhookによる外部連携の機能が追加され、配信開始の通知などをDiscordに自動で投稿出来るようになりました。
Webhookが分からない人にも有効活用して欲しいなと思ったため、何も分からない人向けにkukuluLIVEの配信の通知をDiscordへ送る方法について書きました。
リスナー向けのサーバーなどを建てている配信者の人や、外配信で切断時に自分へ通知を送りたい人などの参考になれば嬉しいです。

Discord側の設定


DiscordからWebhookのURLを取得します。
公式のWebhookのガイドも併せて読むとより理解出来ると思います。
今回は自分で建てたDiscordサーバーに投稿することを想定しています。サーバーがないとWebhookを使えないため、自分に通知を送りたい方もサーバーを作成しましょう。



メッセージを投稿したいサーバーを開いて「サーバー名をクリック⇛サーバー設定」をしてサーバーの設定を開きます。
その後、左側のアプリの下にある「連携サービス」を開いて、「ウェブフックの作成」もしくは「ウェブフックの確認⇛新しいウェブフック」を押します。



画面上にSpideyBot, CaptainHookなどの名前が表示されると思うのでクリックをして、画像とお名前、投稿をするチャンネルの設定をします。
今回はお名前を「kukuluWebhook」、チャンネルを「#配信通知」に設定しました。
変更をすると設定を保存が下から出てくると思うので押して保存します。
その後、「ウェブフックURLをコピー」を押すとクリップボードに保存されてCtrl+Vや右クリックで貼り付け出来るようになります。
貼り付けをした際に「https://discord.com/api/webhooks/~」のようなものが表示されればOKです。

kukuluLIVE側の設定


kukuluLIVEの配信をするから配信設定を開きます。
「デフォルトの放送設定を変更する」を押して、下に表示された画面から「便利⇛外部連携機能」を押して開きます。
今回は配信開始の通知を行うので配信開始をクリックして開きます。



開くとこのような画面になると思います。開いた時点ではPOSTするデータは何も書かれていないと思います。
この状態で、Webhook URLに先ほどDiscordでコピーをしたURLを貼り付けます。
その後、下のサンプルから「配信開始をDiscordに通知」のボタンを押すとPOSTするデータに画像のような内容が追加されると思います。

ここまでが出来たら「テスト実行」のボタンを押して実際にDiscordに投稿されるかを確認してみましょう。



Discord上でこのように表示がされたら設定完了です。
実際の配信の通知では「テストWebhook」と表示されている部分が配信のタイトルとなります。
ブサウザに戻ってもらうと配信開始の部分が有効と書かれていると思います。設定を解除したい場合はWebhookのURLを削除すると無効になるはずです。。

また、今回は配信の開始の通知で設定しましたが、プッシュ切断などの他の項目でも同様に設定が行なえます。
切断の場合はサンプルがないため、POSTするデータの中身は配信開始のときに使用したものを流用すると良いと思います。
{
"content": "プッシュ切断",
"username": "kukuluLIVE"
}
POSTするデータをこのように設定すると、



プッシュ切断時にこのような感じで投稿されます。プッシュ切断の部分を好きな文章に変更したり、自分へのメンションにしたりも出来ます。
メンションにする場合はプッシュ切断と書いた部分を
"<@11122222233334444> プッシュ切断"
のように設定するとメンションになると思います。数字の場所には自分のDiscordのユーザーIDを入れてください。
DiscordのユーザーIDの確認方法はユーザー設定の詳細設定から開発者モードをオンにして、サーバーのメンバーリストから自分を右クリックするとユーザーIDをコピーという項目があると思います。

質問や疑問点がありましたらTwitterの@ketty_a3まで。気が向いたら答えます。

それでは皆さん良いkukuluLifeを
]]>