✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Uzyskaj listę filmów z YouTube według słów kluczowych za pomocą interfejsu API wyszukiwania YouTube

32

YouTube to druga co do wielkości wyszukiwarka na świecie. Ze względu na swoją popularność wiele witryn integruje funkcje związane z YouTube ze swoją witryną. Obejmuje to osadzanie filmów z YouTube, przycisk subskrypcji YouTube, galerię wideo YouTube, wyszukiwanie wideo itp. W tym artykule zobaczymy, jak zintegrować interfejs API wyszukiwania YouTube z witryną.

W tym artykule wyjaśniono, jak można zaimplementować zadanie wyszukiwania filmów z YouTube na stronie internetowej. Wykorzystamy interfejs API wyszukiwania YouTube, aby uzyskać filmy na podstawie słów kluczowych, przefiltrować je według dostępnych opcji (data, ocena itp.) i wyświetlić listę filmów. Wydrukuję tytuł i identyfikator wideo. Użytkownik może wydrukować inne informacje również zgodnie z ich wymaganiami.

Pierwsze kroki

Aby rozpocząć, musisz najpierw utworzyć klucz API na swoim koncie Konsoli Google. Ten klucz jest niezbędny podczas interakcji z interfejsami API YouTube. Bez tego klucza YouTube traktuje wszystkie przychodzące wywołania API jako nieautoryzowane.

Poniżej znajdują się kroki, aby pobrać klucz API.

  • Przejdź do Konsoli programisty Google https://console.developers.google.com.
  • Utwórz nowy projekt. Opcjonalnie możesz również wybrać istniejący projekt.
  • Nadaj nazwę swojemu projektowi. Konsola Google utworzy dla Ciebie unikalny identyfikator projektu.
  • Twój nowo utworzony projekt pojawi się na górze lewego paska bocznego.
  • Kliknij Biblioteka z lewego menu. Zobaczysz listę interfejsów Google API. Włącz interfejs API danych YouTube.
  • Następnie z lewego menu kliknij Poświadczenia. Wybierz klucz API w obszarze Utwórz poświadczenia.
  • Skopiuj ten klucz API.

Uzyskaj listę filmów z YouTube według słów kluczowych za pomocą interfejsu API wyszukiwania YouTube

Utwórz interfejs użytkownika

W tym samouczku zamierzam utworzyć formularz, w którym użytkownik może wpisać słowo kluczowe, wybrać liczbę filmów do zwrócenia i typ filtra. Interfejs API YouTube ma limit 50 rekordów na raz, więc zachowamy limit 50 w polach liczbowych. Dodamy paginację, aby uzyskać następny i poprzedni zestaw rekordów. W każdej odpowiedzi YouTube podaje wartości dla nextPageToken i prevPageToken, jeśli są dostępne. Używając tych wartości jako parametru, takiego jak „pageToken=PageToken_VALUE" w żądaniach HTTP GET, możemy pobrać następny lub poprzedni zestaw rekordów.

Dostępnych jest kilka opcji dla typów filtrów, takich jak „data”, „ocena”, „trafność”, „tytuł”, „liczba wyświetleń”. Użytkownik może wybrać jeden, a ostateczny wynik będzie zależał od wybranego filtra.

<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>

Tutaj utworzyliśmy formularz, który ma 3 pola do wpisania słowa kluczowego, ustawienia liczby rekordów do zwrócenia i typu filtra.

Zintegruj interfejs API wyszukiwania YouTube

Na tym etapie jesteśmy gotowi z naszym kluczem API i formularzem HTML. Następnie musimy pobrać wartości formularzy i przekazać je do punktu końcowego API YouTube wraz z kluczem API. Następnie przetworzymy ostateczną odpowiedź.

<?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     } } ?>

Powyższy kod sprawdza parametry zapytania słowa kluczowego, max_result i wartość zamówienia do sortowania. Pobiera te wartości i przekazuje je do punktu końcowego interfejsu API. W zamian dołącza odpowiedź do zmiennej $arr_list. Przejdziemy przez tę zmienną i wydrukujemy informacje o filmach.

<?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>';     } } ?>

Możesz umieścić ten kod po kodzie HTML formularza. Wyświetli listę tytułów filmów, identyfikatorów filmów wraz z linkami do paginacji.

Nasz ostateczny kod wygląda następująco:

<?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>';     } } ?>

Mam nadzieję, że rozumiesz integrację interfejsu API wyszukiwania YouTube ze swoją witryną. Podziel się swoimi przemyśleniami i sugestiami w sekcji komentarzy poniżej.

Powiązane artykuły

Źródło nagrywania: artisansweb.net

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów