Как опросить twitch по api статус стримера
Перейти к содержимому

Как опросить twitch по api статус стримера

  • автор:

Скрипт Twitch/Hitbot Status

Через заданный промежуток времени обновляет название комнаты в соответствии со статусом стримера на твиче (онлайн/оффлайн).

Требования

  • b_channel_modify_name
  • i_channel_modify_power (макс.)

Настройки

Channel for Status Update

Выберите канал, в котором будет обновляться статус. Это не обязательно должен быть канал, где находится бот. Главное, чтобы у бота были права на его редактирования.

Check interval in minutes.

Интервал проверки статуса канала (в минутах). Автор скрипта не рекомендует устанавливать слишком частый интервал опроса API сайта из-за возможности бана. На практике можно установить 2-3 минуты, и это будет стабильно работать.

Не отображается статус стримера

Здравствуйте. Подала заявку на статус стримера. Ее одобрили. Провела трансляцию, указала в названии Lichess.org, но на странице стримеров я так и не появилась и значка с микрофоном мне так и дали. Подскажите в чем может быть причина?

+1 -1 laughthinking1 heart horsey

It’s a problem with YouTube. You can try to stream again until it eventually works.

+1 -1 laugh thinking heart horsey

What does YouTube have to do with it? It’s Lichess who tracks the start of the stream.

+1 -1 laugh thinking hearthorsey3

У меня такая же проблема. Один из вариантов , может быть дело в названии или нужно какое то определенное время (например месяц стримить). Хотя лучше наверное спросить у опытных стримеров.

+1 -1 laugh thinking heart horsey

@Chess_Marta said in #3:
> What does YouTube have to do with it? It’s Lichess who tracks the start of the stream.

The words of a developer in a similar case: «There is nothing we can do, we’ve reported the problem to youtube and they won’t fix it. The only thing you can do is stream again and hope it’s picked this time, or switch to twitch»

Sorry that there seems to be no real solution, but hopefully it will work if you try again.

+1 -1 laugh thinking heart horsey

@AAArmstark How does Lichess know which channel is mine? Is he using the link to my YouTube that I added in my profile description? Maybe this is the problem and you need to specify a link to the broadcast tab, and not to the YouTube channel itself?

+1 -1 laugh thinking hearthorsey1

If you’ve entered your YouTube channel ID on your Lichess Streamer page where it says «Your YouTube channel ID», then you’ve set everything up correctly.

Others have had the same problem, you can only try again and see if it works.

+1 -1 laugh thinking heart horsey

@AAArmstark I noticed that I was not given streamer status in the form of a microphone icon. I went to Sergei Zhigalko’s page and he has a microphone. He’s not online. This means that the microphone icon is always visible. I was approved as a streamer because I received a notification from the moderator. What is the reason for the missing microphone icon?

+1 -1 laugh thinking hearthorsey1

Yes, the microphone icon will remain there once the streamer page has been activated and it will light up when the streamer is online.

The reason it hasn’t been activated for you is because Lichess hasn’t been able to pick up your livestream due to the problems with YouTube.

+1 -1 laugh thinking heart horsey

To get a microphone you need to activate your streamer page, see lichess.org/page/streamer-page-activation
So basically, you need to stream within a week after your request has been approved with «lichess.org» in the stream title (and «Chess» category if you are streaming on Twitch).
Another pro tip for YT is to set a Video language under YT studio —> Settings —> Upload defaults —> Advanced settings to whatever language that you use, otherwise it’s going to default to English.

The issue that you have here is that you are struggling to activate your streamer profile. Lichess doesn’t see that you are streaming, because Google’s API for some weird reason doesn’t tell Lichess that you do.

What I can suggest is to add a Twitch account to your streamer profile (you can have both Twitch and YT there, it would have to be re-approved, since it changed). Once approved, activate it by streaming on Twitch and then try YouTube again. At least you would have options if YT doesn’t work and wouldn’t be bounded by that one-week activation period.

+1 -1 laugh thinking heart horsey

Эта тема была помещена в архив и добавить комментарий уже нельзя.

Как отследить начало стрима на твиче python

Я делаю бота в дискорде, который должен уведомлять о начале стрима. В данном случае я не смог найти документации на твич апи и похожих тем с ответом тоже. Как возможно отслеживать начало стрима на твиче?

Отслеживать
задан 21 июн 2023 в 15:52
92 2 2 серебряных знака 20 20 бронзовых знаков

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Вот часть кода из моего бота. Имена переменных вместо settings[] и session[] нужно подставить свои.

Запрос статуса начала и окончания стрима:

response = requests.get(f"https://api.twitch.tv/helix/streams?user_login=", headers= < 'Client-ID': settings['twitch']['client_id'], 'Authorization': 'Bearer ' + session['twitch_api_access_token'] >) if response.status_code == 200: data = response.json() if len(data['data']) > 0: if not session['twitch_streaming']: print("Стрим начался") # # Действия по началу стрима # session['twitch_streaming'] = True else: if session['twitch_streaming']: print("Стрим закончился") # # Действия по окончанию стрима # session['twitch_streaming'] = False else: print(f'task_twitch_job Error: ') 

Вначале запрашивается информация о стриме используя Twitch API. Далее если ответ 200 и есть полезные данные, то идет обработка. Код должен периодически запускаться, например отдельной задачей через AsyncIO. Чаще 10-15 секунд код нет смысла запускать, т.к. данные кэшируются на серверах и обновляются с задержкой. Кроме того, при запросе возвращается другая полезная информация о стриме, как например: текущее описание стрима, кол-во зрителей, игра/категория и пр.

При запросе на Twitch API используется Access Token, который можно получить используя запрос на OAuth, примерно следующим кодом:

response = requests.post( 'https://id.twitch.tv/oauth2/token', data= < 'client_id': settings['twitch']['client_id'], 'client_secret': settings['twitch']['client_secret'], 'grant_type': 'client_credentials' >) if response.status_code == 200: response_json = response.json() session['twitch_api_access_token'] = response_json['access_token'] 

Токен выдается примерно на 60 суток, и если бот работает дольше, то его нужно периодически обновлять. Точное время существования токена в секундах отправляется в ответе на запрос. По идее, нужно еще делать Revoke старого токена если его время еще не вышло, но по большей части это лишнее.

Twitch API

You should also become familiar with the following features:

Feature Description
EventSub The Twitch API provides APIs that you can call to poll the status of a given resource. These APIs are fine if you need a snapshot of the resource but it’s recommended that you subscribe to receive resource updates instead. For information about subscribing to events, see EventSub subscriptions.
Command-line Interface Twitch offers a command-line interface for managing Twitch resources. You can use it to call the Twitch endpoints, get an OAuth access token, and test EventSub events.

Next steps

Call your first Twitch API in minutes using Getting started.

Thumb through Twitch API Concepts to learn how Twitch handles breaking changes, pagination, and rate limits.

Join our community of Twitch developers! And for other ways to connect with the community, explore our developer support page.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *