Как проверить, может ли пользователь получить доступ к YouTube с помощью Javascript - PullRequest
0 голосов
/ 07 февраля 2019

Мне нужно программно проверить, может ли пользователь получить доступ к YouTube, так как YouTube заблокирован в некоторых частях мира.Я должен быть в состоянии сделать это в JavaScript.

То, что я пробовал: 1) Динамическое создание изображения и установка в качестве источника известного изображения в домене YouTube - я столкнулся с проблемами CORS здесь 2)Создание простого запроса GET с использованием XMLHttpRequest (та же проблема) 3) Глядя на API YouTube ... не видно метода, который может сказать мне, был ли запрос GET успешным ... и, конечно, все вызовы маршрутизируются через https://www.googleapis.com/youtube/v3 что, строго говоря, не совсем то же самое, что и запрос к http://www.youtube.com

Есть ли что-то очевидное, что я здесь упускаю?Был бы признателен за любую проницательность ..

Спасибо!

1 Ответ

0 голосов
/ 07 февраля 2019

CORS - это заголовок на стороне сервера.Если вы получаете заголовок CORS, вы попадаете на серверы Youtube, которые отвечают заголовками ответов, что, вероятно, означает, что YouTube не «заблокирован».

Так что-то вроде этого должно работать нормально:

async function canAccessYoutube() {
      try {
        const request = await fetch(
          "https://www.youtube.com/",
          {
            mode: "no-cors"
          }
        );
        return true;
      } catch {
        return false;
      }
}

Предполагая, что блокировка основана на DNS, вы можете проверить функциональность, заблокировав Youtube на своем компьютере.Если у вас есть компьютер Mac или Linux, добавьте в файл /etc/hosts следующее:

0.0.0.0 youtube.com
0.0.0.0 www.youtube.com
::0 www.youtube.com
::0 youtube.com

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...