✅ Notizie, temi, plugin WEB e WordPress. Qui condividiamo suggerimenti e le migliori soluzioni per siti web.

Ottieni l’elenco dei video di YouTube per parole chiave utilizzando l’API di ricerca di YouTube

25

YouTube è il secondo motore di ricerca più grande al mondo. A causa della loro popolarità, molti siti Web integrano le funzionalità relative a YouTube nel loro sito Web. Ciò include l’incorporamento di video di YouTube, pulsante di iscrizione a YouTube, galleria di video di YouTube, ricerca di video, ecc. In questo articolo, vedremo come integrare l’API di ricerca di YouTube nel sito web.

Questo articolo spiega come implementare l’attività di ricerca dei video di YouTube all’interno di un sito web. Utilizzeremo l’API di ricerca di YouTube per ottenere video in base a parole chiave, filtrarli in base alle opzioni disponibili (data, valutazione, ecc.) e visualizzare l’elenco dei video. Stamperò il titolo del video e l’ID del video. L’utente può stampare altre informazioni anche secondo le proprie esigenze.

Iniziare

Per iniziare, devi prima creare una chiave API sul tuo account Google Console. Questa chiave è necessaria durante l’interazione con le API di YouTube. Senza questa chiave YouTube considera non autorizzate tutte le chiamate API in entrata.

Di seguito sono riportati i passaggi per acquisire la chiave API.

  • Vai alla Console per gli sviluppatori di Google https://console.developers.google.com.
  • Crea un nuovo progetto. Facoltativamente, puoi anche selezionare un progetto esistente.
  • Dai un nome al tuo progetto. Google Console creerà per te un ID progetto univoco.
  • Il tuo progetto appena creato apparirà nella parte superiore della barra laterale sinistra.
  • Fare clic su Libreria dal menu a sinistra. Vedrai un elenco di API di Google. Abilita l’API dei dati di YouTube.
  • Successivamente, dal menu di sinistra, fai clic su Credenziali. Seleziona la chiave API in Crea credenziali.
  • Copia questa chiave API.

Ottieni l'elenco dei video di YouTube per parole chiave utilizzando l'API di ricerca di YouTube

Crea un’interfaccia utente

Per questo tutorial, creerò un modulo in cui un utente può inserire la parola chiave, scegliere un numero di video da restituire e il tipo di filtro. L’API di YouTube ha un limite di 50 record alla volta, quindi manterremo un limite di 50 sui campi numerici. Aggiungeremo l’impaginazione per ottenere il set di record successivo e precedente. In ogni risposta, YouTube fornisce valori per nextPageToken e prevPageToken, se disponibili. Utilizzando questi valori come parametro come ‘pageToken=PageToken_VALUE’ nelle richieste HTTP GET, possiamo recuperare il set di record successivo o precedente.

Ci sono diverse opzioni disponibili per i tipi di filtro che sono ‘data’, ‘valutazione’, ‘rilevanza’, ‘titolo’, ‘viewCount’. L’utente può selezionarne uno e il risultato finale dipenderà dal filtro selezionato.

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

Qui abbiamo creato un modulo che ha 3 campi per inserire una parola chiave, impostare il numero di record da restituire e il tipo di filtro.

Integra l’API di ricerca di YouTube

A questo punto, siamo pronti con la nostra chiave API e il modulo HTML. Successivamente, dobbiamo ottenere i valori del modulo e passarli all’endpoint dell’API di YouTube insieme alla chiave API. Successivamente, elaboreremo la risposta finale.

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

Il codice precedente controlla i parametri di query di una parola chiave, max_result e il valore dell’ordine per l’ordinamento. Prende questi valori e li passa all’endpoint API. In cambio, aggiunge la risposta alla variabile $arr_list. Esamineremo questa variabile e stamperemo le informazioni sui video.

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

Puoi inserire questo codice dopo l’HTML del modulo. Ti darà un elenco di titoli video, ID video insieme a link di impaginazione.

Il nostro codice finale è il seguente:

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

Spero che tu capisca l’integrazione dell’API di ricerca di YouTube nel tuo sito web. Per favore condividi i tuoi pensieri e suggerimenti nella sezione commenti qui sotto.

articoli Correlati

Fonte di registrazione: artisansweb.net

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More