しょころは非公式ツールなので、公式のページからいろんな情報をもらって、利用をしていました。
仕様変更前は、配信ページ内に情報が詰まっていたのですが、変更後は自力で取得しに行く方式になってしまいました。
配信URLの形も微妙に変わってます
そんなこんなで、勝手ツール各種は動かなくなったと思います。
こうしましたよってわかるように書いてみました。
旧処理方式
現在の方式
一見、大変になったんじゃないかと思われますが、ページ内を解析する作業が、文字列を検索して取り出すようなことをしているので、Webページのデザインが変わるとプログラムが動かなくなっていたのですが、URLさえわかれば、あとはAPIを使って正確な情報を得ることとができるようになり不確定要素が排除できたので、今後は仕様変更の影響を受けにくいツールになると思います。
仕様変更前は、配信ページ内に情報が詰まっていたのですが、変更後は自力で取得しに行く方式になってしまいました。
配信URLの形も微妙に変わってます
そんなこんなで、勝手ツール各種は動かなくなったと思います。
こうしましたよってわかるように書いてみました。
旧処理方式
- URLを解析
- 配信ページを取得
- ページ内を解析
- コメントサーバに接続
現在の方式
- URLを解析
- (API)配信URLからroomid取得
- (API)ギフト全体の情報
- (API)コメント送信時のトークン取得
- (API)ユーザが持ってる星の数
- コメントサーバに接続
一見、大変になったんじゃないかと思われますが、ページ内を解析する作業が、文字列を検索して取り出すようなことをしているので、Webページのデザインが変わるとプログラムが動かなくなっていたのですが、URLさえわかれば、あとはAPIを使って正確な情報を得ることとができるようになり不確定要素が排除できたので、今後は仕様変更の影響を受けにくいツールになると思います。
コメントサーバーにつなぐ方法が、XMLSocketなので、WebSocketに移行していく必要があり、今後の仕様変更でXMLSocketサーバが廃止されてしまうと、再び動かない未来が来てしまいます。
WebSocketの接続実験は終わっていて、あとは組み込むだけなので、少しづつ進めていこうと思っています。
今まで調べた内容を公開しておきます。
https://www.showroom-live.com/apiにつなげて使います
WebSocketの接続実験は終わっていて、あとは組み込むだけなので、少しづつ進めていこうと思っています。
今まで調べた内容を公開しておきます。
https://www.showroom-live.com/apiにつなげて使います
機能 | API | 備考 |
配信URLからroomid取得 | /room/status?room_url_key=[配信URLの最後のパート] | 配信中でない場合、started_atにnullが入ってくるので、nullableにしておく |
ファンの数、ファン名 | /active_fan/room?room_id=[room_id]&ym=202204 | ymは取得したい年月を指定する模様 |
roomの情報、配布アバターの画像 | /room/profile?room_id=[room_id] | |
動画配信URL | /api/live/streaming_url?room_id=[room_id]&abr_available=1 | |
視聴者数、ファン名、ファン数 | /live/polling?room_id=[room_id] | |
ギフト全体の情報 | /live/gift_groups?room_id=[room_id] | |
コメント送信時のトークン取得 | /csrf_token | |
ユーザが持ってる星の数 | /live/current_user?room_id=[room_id] | 配信中のみ星の数を取得可能 |
コメントをかく