WEB и WordPress новости, темы, плагины. Здесь мы делимся советами и лучшими решениями для сайтов.

Получите список видео YouTube по ключевым словам с помощью API поиска YouTube

111

YouTube — вторая по величине поисковая система в мире. Из-за своей популярности многие веб-сайты интегрируют в свои веб-сайты функции, связанные с YouTube. Это включает в себя встраивание видео YouTube, кнопку подписки YouTube, видеогалерею YouTube, поиск видео и т.д. В этой статье мы увидим, как интегрировать API поиска YouTube на веб-сайт.

В этой статье объясняется, как можно реализовать задачу поиска видео YouTube на веб-сайте. Мы будем использовать API поиска YouTube, чтобы получать видео по ключевым словам, фильтровать их по доступным параметрам (дата, рейтинг и т.д.) И отображать список видео. Я собираюсь распечатать название видео и идентификатор видео. Пользователь может распечатать другую информацию также в соответствии с их требованиями.

Начиная

Для начала вам сначала нужно создать ключ API в вашей учетной записи Google Console. Этот ключ необходим при взаимодействии с API YouTube. Без этого ключа YouTube считает все входящие вызовы API несанкционированными.

Ниже приведены шаги по получению ключа API.

  • Перейдите в консоль разработчика Google https://console.developers.google.com.
  • Создайте новый проект. При желании вы также можете выбрать существующий проект.
  • Дайте название вашему проекту. Консоль Google создаст для вас уникальный идентификатор проекта.
  • Ваш недавно созданный проект появится в верхней части левой боковой панели.
  • Нажмите «Библиотека» в левом меню. Вы увидите список API Google. Включите API данных YouTube.
  • Затем в левом меню нажмите Учетные данные. Выберите ключ API в разделе «Создать учетные данные».
  • Скопируйте этот ключ API.

Получите список видео YouTube по ключевым словам с помощью API поиска YouTube

Создать пользовательский интерфейс

В этом руководстве я собираюсь создать форму, в которой пользователь может ввести ключевое слово, выбрать количество возвращаемых видео и тип фильтра. API YouTube имеет ограничение в 50 записей за раз, поэтому мы сохраним ограничение в 50 для числовых полей. Мы добавим разбиение на страницы, чтобы получить следующий и предыдущий набор записей. В каждом ответе YouTube предоставляет значения для nextPageToken и prevPageToken, если они доступны. Используя эти значения в качестве параметра типа pageToken = PageToken_VALUE в запросах HTTP GET, мы можем получить следующий или предыдущий набор записей.

Для типов фильтров доступно несколько вариантов: «дата», «рейтинг», «релевантность», «заголовок», «количество просмотров». Пользователь может выбрать любой из них, и конечный результат будет зависеть от выбранного фильтра.

<form method="get">     <p><input type="text" name="q" placeholder="Enter keyword" value="<?php if(array_key_exists('q', $_GET)) echo $_GET['q']; ?>" required></p>     <p><input type="number" name="max_result" placeholder="Max Results" min="1" max="50" value="<?php if(array_key_exists('max_result', $_GET)) echo $_GET['max_result']; ?>" required></p>     <p>         <?php $arr_orders = ['date', 'rating', 'relevance', 'title', 'viewCount']; ?>         <select name="order" required>             <option value="">--SELECT ORDER--</option>             <?php foreach ($arr_orders as $order) { ?>                 <option value="<?php echo $order; ?>" <?php if(array_key_exists('order', $_GET) && ($order==$_GET['order'])) echo 'selected'; ?>><?php echo ucfirst($order); ?></option>             <?php } ?>         </select>     </p>     <p><input type="submit" value="Submit"></p> </form>

Здесь мы создали форму с 3 полями для ввода ключевого слова, установили количество возвращаемых записей и тип фильтра.

Интегрируйте API поиска YouTube

На этом этапе у нас есть ключ API и HTML-форма. Затем нам нужно получить значения формы и передать их в конечную точку YouTube API вместе с ключом API. После этого мы обработаем окончательный ответ.

<?php $api_key = 'YOUR_API_KEY';    $arr_list = array(); if (array_key_exists('q', $_GET) && array_key_exists('max_result', $_GET) && array_key_exists('order', $_GET)) {     $formatted_keyword = implode("+", explode(" ", $_GET['q']));     $url = "https://www.googleapis.com/youtube/v3/search?q=$formatted_keyword&order=". $_GET['order'] ."&part=snippet&type=video&maxResults=". $_GET['max_result'] ."&key=". $api_key;        if (array_key_exists('pageToken', $_GET)) {         $url .= "&pageToken=". $_GET['pageToken'];     }       $arr_list = getYTList($url); }    function getYTList($api_url = '') {     $ch = curl_init();     curl_setopt($ch, CURLOPT_URL, $api_url);     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);     $response = curl_exec($ch);     $arr_result = json_decode($response);     if (isset($arr_result->items)) {         return $arr_result;     } elseif (isset($arr_result->error)) {         //print error $arr_result->error     } } ?>

Приведенный выше код проверяет параметры запроса ключевого слова, max_result и значение порядка для сортировки. Он принимает эти значения и передает их в конечную точку API. В свою очередь, он добавляет ответ к переменной $arr_list. Мы пройдемся по этой переменной и распечатаем информацию о видео.

<?php if (!empty($arr_list)) {     echo '<ul>';     foreach ($arr_list->items as $item) {         echo "<li>". $item->snippet->title ." (Video ID: ". $item->id->videoId .")</li>";     }     echo '</ul>';        $url = "?q=". $_GET['q'] ."&max_result=". $_GET['max_result'] ."&order=". $_GET['order'];     if (isset($arr_list->prevPageToken)) {         echo '<a href="'.$url.'&pageToken='.$arr_list->prevPageToken.'">Previous</a>';     }        if (isset($arr_list->nextPageToken)) {         echo '<a href="'.$url.'&pageToken='.$arr_list->nextPageToken.'">Next</a>';     } } ?>

Вы можете разместить этот код после HTML формы. Он предоставит вам список названий видео, идентификаторов видео вместе со ссылками для пагинации.

Наш окончательный код выглядит следующим образом:

<?php $api_key = 'YOUR_API_KEY';    $arr_list = array(); if (array_key_exists('q', $_GET) && array_key_exists('max_result', $_GET) && array_key_exists('order', $_GET)) {     $formatted_keyword = implode("+", explode(" ", $_GET['q']));     $url = "https://www.googleapis.com/youtube/v3/search?q=$formatted_keyword&order=". $_GET['order'] ."&part=snippet&type=video&maxResults=". $_GET['max_result'] ."&key=". $api_key;        if (array_key_exists('pageToken', $_GET)) {         $url .= "&pageToken=". $_GET['pageToken'];     }       $arr_list = getYTList($url); }    function getYTList($api_url = '') {     $ch = curl_init();     curl_setopt($ch, CURLOPT_URL, $api_url);     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);     $response = curl_exec($ch);     $arr_result = json_decode($response);     if (isset($arr_result->items)) {         return $arr_result;     } elseif (isset($arr_result->error)) {         //print error $arr_result->error     } } ?>   <form method="get">     <p><input type="text" name="q" placeholder="Enter keyword" value="<?php if(array_key_exists('q', $_GET)) echo $_GET['q']; ?>" required></p>     <p><input type="number" name="max_result" placeholder="Max Results" min="1" max="50" value="<?php if(array_key_exists('max_result', $_GET)) echo $_GET['max_result']; ?>" required></p>     <p>         <?php $arr_orders = ['date', 'rating', 'relevance', 'title', 'viewCount']; ?>         <select name="order" required>             <option value="">--SELECT ORDER--</option>             <?php foreach ($arr_orders as $order) { ?>                 <option value="<?php echo $order; ?>" <?php if(array_key_exists('order', $_GET) && ($order==$_GET['order'])) echo 'selected'; ?>><?php echo ucfirst($order); ?></option>             <?php } ?>         </select>     </p>     <p><input type="submit" value="Submit"></p> </form>   <?php if (!empty($arr_list)) {     echo '<ul>';     foreach ($arr_list->items as $item) {         echo "<li>". $item->snippet->title ." (Video ID: ". $item->id->videoId .")</li>";     }     echo '</ul>';        $url = "?q=". $_GET['q'] ."&max_result=". $_GET['max_result'] ."&order=". $_GET['order'];     if (isset($arr_list->prevPageToken)) {         echo '<a href="'.$url.'&pageToken='.$arr_list->prevPageToken.'">Previous</a>';     }        if (isset($arr_list->nextPageToken)) {         echo '<a href="'.$url.'&pageToken='.$arr_list->nextPageToken.'">Next</a>';     } } ?>

Надеюсь, вы понимаете, как интегрировать API поиска YouTube на свой сайт. Пожалуйста, поделитесь своими мыслями и предложениями в разделе комментариев ниже.

Статьи по Теме

Источник записи: artisansweb.net

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее