✅ WEB ja WordPressi uudised, teemad, pistikprogrammid. Siin jagame näpunäiteid ja parimaid veebisaidi lahendusi.

Hankige YouTube’i videoloend märksõnade järgi, kasutades YouTube’i otsingu API-d

15

YouTube on suuruselt teine ​​otsingumootor maailmas. Tänu oma populaarsusele integreerivad paljud veebisaidid oma veebisaidiga YouTube’i seotud funktsioonid. See hõlmab YouTube’i videote, YouTube’i tellimisnupu, YouTube’i videogalerii, videootsingu jms manustamist. Selles artiklis uurime, kuidas integreerida YouTube’i otsingu API veebisaidile.

Selles artiklis selgitatakse, kuidas saab veebisaidil YouTube’i videote otsimise ülesannet rakendada. Kasutame YouTube’i otsingu API-d märksõnade põhjal videote hankimiseks, selle filtreerimiseks saadaolevate valikute (kuupäev, hinnang jne) järgi ja videote loendi kuvamiseks. Trükin video pealkirja ja video ID. Kasutaja saab printida muud teavet ka vastavalt nende nõuetele.

Alustamine

Alustamiseks peate kõigepealt oma Google Console’i ​​kontole looma API võtme. See võti on vajalik YouTube’i API-dega suhtlemisel. Ilma selle võtmeta peab YouTube kõiki sissetulevaid API-kõnesid volitamata.

Allpool on juhised API võtme haaramiseks.

  • Minge Google’i arendajakonsooli https://console.developers.google.com.
  • Looge uus projekt. Soovi korral saate valida ka olemasoleva projekti.
  • Pange oma projektile nimi. Google Console loob teile ainulaadse projekti ID.
  • Teie äsja loodud projekt kuvatakse vasaku külgriba ülaosas.
  • Klõpsake vasakpoolses menüüs valikut Raamatukogu. Näete Google’i API-de loendit. Lubage YouTube Data API.
  • Järgmisena klõpsake vasakpoolses menüüs valikut Volitused. Valige API-võti loo Mandaatide loomine alt.
  • Kopeerige see API võti.

Hankige YouTube'i videoloend märksõnade järgi, kasutades YouTube'i otsingu API-d

Looge kasutajaliides

Selle õpetuse jaoks kavatsen luua vormi, kus kasutaja saab sisestada märksõna, valida tagastatavate videote arvu ja filtreerida tüübi. YouTube’i API-l on korraga 50 kirjet, seega hoiame numbriväljadel 50 piirangut. Järgmise ja eelmise kirjekomplekti saamiseks lisame lehitsemise. Igas vastuses esitab YouTube väärtused nextPageToken ja prevPageToken, kui need on saadaval. Kasutades neid väärtusi HTTP GET-päringutes parameetrina nagu ‘pageToken = PageToken_VALUE’, saame tuua järgmise või eelmise kirjekomplekti.

Filtritüüpide jaoks on saadaval mitu valikut, näiteks „kuupäev", „hinnang”, „asjakohasus”, „pealkiri”, „viewCount”. Kasutaja saab valida kas ühe ja lõpptulemus sõltub valitud filtrist.

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

Siin lõime vormi, millel on märksõna sisestamiseks 3 välja, määratakse tagastatavate kirjete arv ja filtri tüüp.

Integreerige YouTube’i otsingu API

Selles etapis oleme valmis oma API-võtme ja HTML-vormiga. Järgmisena peame hankima vormiväärtused ja edastama need koos API võtmega YouTube’i API lõpp-punkti. Pärast seda töötleme lõplikku vastust.

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

Ülaltoodud kood kontrollib märksõna päringu parameetreid, max_result ja sortimise väärtust. See võtab need väärtused ja edastab need API lõpp-punktile. Vastutasuks lisab see muutujale vastuse $arr_list. Tutvume selle muutujaga ja printime videote kohta teavet.

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

Selle koodi saate paigutada pärast vormi HTML-i. See annab teile videote pealkirjade loendi, video ID-d koos lehelinkidega.

Meie lõplik kood on järgmine:

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

Loodan, et mõistate YouTube’i otsingu API integreerimist oma veebisaidile. Palun jagage oma mõtteid ja ettepanekuid allpool olevas kommentaaride jaotises.

seotud artiklid

See veebisait kasutab teie kasutuskogemuse parandamiseks küpsiseid. Eeldame, et olete sellega rahul, kuid saate soovi korral loobuda. Nõustu Loe rohkem