Поскольку в вопросе указывалось только то, что квоты API поиска не должны использоваться при выяснении, является ли канал потоковым, я подумал, что поделюсь своего рода обходным методом.Это может потребовать немного больше работы, чем простой вызов API, но практически сводит к минимуму использование API-квот:
Я использовал простой запрос Perl GET
для получения главной страницы канала Youtube.В HTML-коде страницы канала, которая транслируется в прямом эфире, найдено несколько уникальных элементов:
Количество тегов количества активных зрителей, например, <li>753 watching</li>
.Значок LIVE NOW
: <span class="yt-badge yt-badge-live" >Live now</span>
.
Чтобы выяснить, транслируется ли канал в данный момент в прямом эфире, требуется простое совпадение, чтобы увидеть, содержится ли уникальный HTML-тег в результатах запроса GET.Что-то вроде: if ($get_results =~ /$unique_html/)
(Perl).Затем вызов API может быть сделан только для идентификатора канала, который фактически является потоковым, для получения идентификатора видео потока.
Преимущество этого в том, что вы уже знаете, что канал потоковый, вместо того, чтобы использовать тысячи точек квоты для выяснения этого.Мой тестовый скрипт успешно определяет, является ли канал потоковым, просматривая HTML-код для: <span class="yt-badge yt-badge-live" >
(обратите внимание на странные лишние пробелы в коде с Youtube).
Я не знаю, на каком языке OPиспользуя, или я бы помог с базовым запросом GET на этом языке.Я использовал Perl и включил заголовки браузера, пользовательский агент и куки, чтобы выглядеть как обычный визит на компьютер.
Youtube's robots.txt не запрещает сканировать главную страницу канала, только страницу сообщества канала.
Дайте мне знать, что вы думаете оплюсы и минусы этого метода, и, пожалуйста, прокомментируйте, что может быть улучшено, а не неприязнь, если вы обнаружите недостаток.Спасибо, счастливого кодирования!