Hanki YouTube-videoluettelo avainsanojen mukaan käyttämällä YouTube-hakusovellusliittymää
YouTube on toiseksi suurin hakukone maailmassa. Suosionsa vuoksi monet sivustot integroivat YouTubeen liittyvät toiminnot verkkosivustoonsa. Tähän sisältyy YouTube-videoiden upottaminen, YouTube-tilauspainike, YouTube-videogalleria, videohaku jne. Tässä artikkelissa aiomme nähdä, kuinka YouTube-hakusovellusliittymä integroidaan verkkosivustoon.
Tässä artikkelissa selitetään, miten YouTube-videoiden hakeminen verkkosivustolta voidaan toteuttaa. Käytämme YouTube-hakusovellusliittymää hakeaksemme videoita avainsanojen perusteella, suodatamme sen käytettävissä olevien vaihtoehtojen (päivämäärä, luokitus jne.) Mukaan ja näytämme videoluettelon. Tulen tulostamaan videon otsikon ja videotunnuksen. Käyttäjä voi tulostaa muita tietoja myös vaatimustensa mukaisesti.
Päästä alkuun
Aloittamiseksi sinun on ensin luotava API-avain Google Console -tiliisi. Tämä avain on välttämätön, kun olet vuorovaikutuksessa YouTube-sovellusliittymien kanssa. Ilman tätä avainta YouTube pitää kaikkia saapuvia API-puheluja luvattomina.
Alla on vaiheet API-avaimen nappaamiseksi.
- Siirry Google Developer Consoleen https://console.developers.google.com.
- Luo uusi projekti. Vaihtoehtoisesti voit myös valita olemassa olevan projektin.
- Anna projektillesi nimi. Google Console luo sinulle yksilöllisen projektitunnuksen.
- Uusi luomasi projekti näkyy vasemman sivupalkin yläosassa.
- Napsauta vasemmasta valikosta Kirjasto. Näet luettelon Google-sovellusliittymistä. Ota käyttöön YouTube Data -sovellusliittymä.
- Napsauta sitten vasemmasta valikosta Tunnistetiedot. Valitse API-avain kohdassa Luo kirjautumistiedot.
- Kopioi tämä API-avain.
Luo käyttöliittymä
Tätä opetusohjelmaa varten aion luoda lomakkeen, jossa käyttäjä voi kirjoittaa avainsanan, valita palautettavien videoiden määrän ja suodattaa tyypin. YouTube-sovellusliittymässä on enintään 50 tietuetta kerrallaan, joten pidämme 50-rajaa numerokentissä. Lisäämme sivunumeron saadaksemme seuraavan ja edellisen tietuejoukon. Jokaisessa vastauksessa YouTube antaa arvot nextPageTokenille ja prevPageTokenille, jos ne ovat käytettävissä. Käyttämällä näitä arvoja parametrina, kuten ‘pageToken = PageToken_VALUE’ HTTP GET -pyynnöissä, voimme noutaa seuraavan tai edellisen tietuejoukon.
Suodatintyypeille on useita vaihtoehtoja, kuten päivämäärä, luokitus, osuvuus, otsikko, näkymämäärä. Käyttäjä voi valita jommankumman ja lopputulos riippuu valitusta suodattimesta.
<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>
Tässä loimme lomakkeen, jossa on 3 kenttää avainsanan syöttämistä varten, palautettavien tietueiden määrä ja suodatintyyppi.
Integroi YouTube-hakusovellusliittymä
Tässä vaiheessa olemme valmiita API-avaimellamme ja HTML-lomakkeellamme. Seuraavaksi meidän on haettava lomake-arvot ja toimitettava ne YouTube-sovellusliittymän päätepisteeseen yhdessä API-avaimen kanssa. Tämän jälkeen käsittelemme lopullisen vastauksen.
<?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
}
}
?>
Yllä oleva koodi tarkistaa avainsanan kyselyparametrit, max_result ja järjestysarvon lajittelua varten. Se ottaa nämä arvot ja välittää ne API-päätepisteelle. Vastineeksi se lisää vastauksen muuttujaan $arr_list
. Käymme läpi tämän muuttujan ja tulostamme tiedot videoista.
<?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>';
}
}
?>
Voit sijoittaa tämän koodin lomakkeen HTML-koodin jälkeen. Se antaa sinulle luettelon videonimikkeistä, videotunnuksista sekä sivutuslinkit.
Lopullinen koodi on seuraava:
<?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>';
}
}
?>
Toivottavasti ymmärrät YouTube-hakusovellusliittymän integroinnin verkkosivustoosi. Jaa ajatuksesi ja ehdotuksesi alla olevassa kommenttiosassa.