{"id":26044,"date":"2021-06-08T09:42:00","date_gmt":"2021-06-08T06:42:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=26044"},"modified":"2021-10-17T18:25:54","modified_gmt":"2021-10-17T15:25:54","slug":"hankige-youtube-i-videoloend-marksonade-jargi-kasutades-youtube-i-otsingu-api-d","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/et\/hankige-youtube-i-videoloend-marksonade-jargi-kasutades-youtube-i-otsingu-api-d\/","title":{"rendered":"Hankige YouTube&#8217;i videoloend m\u00e4rks\u00f5nade j\u00e4rgi, kasutades YouTube&#8217;i otsingu API-d"},"content":{"rendered":"<p>YouTube on suuruselt teine \u200b\u200botsingumootor maailmas. T\u00e4nu oma populaarsusele integreerivad paljud veebisaidid oma veebisaidiga YouTube&#8217;i seotud funktsioonid. See h\u00f5lmab YouTube&#8217;i videote, YouTube&#8217;i tellimisnupu, YouTube&#8217;i videogalerii, videootsingu jms manustamist. Selles artiklis uurime, kuidas integreerida YouTube&#8217;i otsingu API veebisaidile.<\/p>\n<p>Selles artiklis selgitatakse, kuidas saab veebisaidil YouTube&#8217;i videote otsimise \u00fclesannet rakendada. Kasutame YouTube&#8217;i otsingu API-d m\u00e4rks\u00f5nade p\u00f5hjal videote hankimiseks, selle filtreerimiseks saadaolevate valikute (kuup\u00e4ev, hinnang jne) j\u00e4rgi ja videote loendi kuvamiseks. Tr\u00fckin video pealkirja ja video ID. Kasutaja saab printida muud teavet ka vastavalt nende n\u00f5uetele.<\/p>\n<h3>Alustamine<\/h3>\n<p>Alustamiseks peate k\u00f5igepealt oma Google Console&#8217;i \u200b\u200bkontole looma API v\u00f5tme. See v\u00f5ti on vajalik YouTube&#8217;i API-dega suhtlemisel. Ilma selle v\u00f5tmeta peab YouTube k\u00f5iki sissetulevaid API-k\u00f5nesid volitamata.<\/p>\n<p>Allpool on juhised API v\u00f5tme haaramiseks.<\/p>\n<ul>\n<li>Minge Google&#8217;i arendajakonsooli <a href=\"https:\/\/console.developers.google.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external\"><\/a><a href=\"https:\/\/console.developers.google.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">https:\/\/console.developers.google.com<\/a>.<\/li>\n<li>Looge uus projekt. Soovi korral saate valida ka olemasoleva projekti.<\/li>\n<li>Pange oma projektile nimi. Google Console loob teile ainulaadse projekti ID.<\/li>\n<li>Teie \u00e4sja loodud projekt kuvatakse vasaku k\u00fclgriba \u00fclaosas.<\/li>\n<li>Kl\u00f5psake vasakpoolses men\u00fc\u00fcs valikut Raamatukogu. N\u00e4ete Google&#8217;i API-de loendit. Lubage YouTube Data API.<\/li>\n<li>J\u00e4rgmisena kl\u00f5psake vasakpoolses men\u00fc\u00fcs valikut Volitused. Valige API-v\u00f5ti loo Mandaatide loomine alt.<\/li>\n<li>Kopeerige see API v\u00f5ti.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20304-6081db195391c.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20304-6081db195391c.png\" alt=\"Hankige YouTube&#039;i videoloend m\u00e4rks\u00f5nade j\u00e4rgi, kasutades YouTube&#039;i otsingu API-d\" ><\/a><\/p>\n<h3>Looge kasutajaliides<\/h3>\n<p>Selle \u00f5petuse jaoks kavatsen luua vormi, kus kasutaja saab sisestada m\u00e4rks\u00f5na, valida tagastatavate videote arvu ja filtreerida t\u00fc\u00fcbi. YouTube&#8217;i API-l on korraga 50 kirjet, seega hoiame numbriv\u00e4ljadel 50 piirangut. J\u00e4rgmise ja eelmise kirjekomplekti saamiseks lisame lehitsemise. Igas vastuses esitab YouTube v\u00e4\u00e4rtused nextPageToken ja prevPageToken, kui need on saadaval. Kasutades neid v\u00e4\u00e4rtusi HTTP GET-p\u00e4ringutes parameetrina nagu &#8216;pageToken = PageToken_VALUE&#8217;, saame tuua j\u00e4rgmise v\u00f5i eelmise kirjekomplekti.<\/p>\n<p>Filtrit\u00fc\u00fcpide jaoks on saadaval mitu valikut, n\u00e4iteks \u201ekuup\u00e4ev&quot;, \u201ehinnang&#8221;, \u201easjakohasus&#8221;, \u201epealkiri&#8221;, \u201eviewCount&#8221;. Kasutaja saab valida kas \u00fche ja l\u00f5pptulemus s\u00f5ltub valitud filtrist.<\/p>\n<pre><code>&lt;form method=\"get\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;&lt;input type=\"text\" name=\"q\" placeholder=\"Enter keyword\" value=\"&lt;?php if(array_key_exists('q', $_GET)) echo $_GET['q']; ?&gt;\" required&gt;&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;&lt;input type=\"number\" name=\"max_result\" placeholder=\"Max Results\" min=\"1\" max=\"50\" value=\"&lt;?php if(array_key_exists('max_result', $_GET)) echo $_GET['max_result']; ?&gt;\" required&gt;&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;?php $arr_orders = ['date', 'rating', 'relevance', 'title', 'viewCount']; ?&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;select name=\"order\" required&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;option value=\"\"&gt;--SELECT ORDER--&lt;\/option&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;?php foreach ($arr_orders as $order) { ?&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;option value=\"&lt;?php echo $order; ?&gt;\" &lt;?php if(array_key_exists('order', $_GET) &amp;&amp; ($order==$_GET['order'])) echo 'selected'; ?&gt;&gt;&lt;?php echo ucfirst($order); ?&gt;&lt;\/option&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;?php } ?&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/select&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;&lt;input type=\"submit\" value=\"Submit\"&gt;&lt;\/p&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<p>Siin l\u00f5ime vormi, millel on m\u00e4rks\u00f5na sisestamiseks 3 v\u00e4lja, m\u00e4\u00e4ratakse tagastatavate kirjete arv ja filtri t\u00fc\u00fcp.<\/p>\n<h3>Integreerige YouTube&#8217;i otsingu API<\/h3>\n<p>Selles etapis oleme valmis oma API-v\u00f5tme ja HTML-vormiga. J\u00e4rgmisena peame hankima vormiv\u00e4\u00e4rtused ja edastama need koos API v\u00f5tmega YouTube&#8217;i API l\u00f5pp-punkti. P\u00e4rast seda t\u00f6\u00f6tleme l\u00f5plikku vastust.<\/p>\n<pre><code>&lt;?php\n$api_key = 'YOUR_API_KEY';\n\u00a0\u00a0\n$arr_list = array();\nif (array_key_exists('q', $_GET) &amp;&amp; array_key_exists('max_result', $_GET) &amp;&amp; array_key_exists('order', $_GET)) {\n\u00a0\u00a0\u00a0\u00a0$formatted_keyword = implode(\"+\", explode(\" \", $_GET['q']));\n\u00a0\u00a0\u00a0\u00a0$url = \"https:\/\/www.googleapis.com\/youtube\/v3\/search?q=$formatted_keyword&amp;order=\". $_GET['order'] .\"&amp;part=snippet&amp;type=video&amp;maxResults=\". $_GET['max_result'] .\"&amp;key=\". $api_key;\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0if (array_key_exists('pageToken', $_GET)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$url .= \"&amp;pageToken=\". $_GET['pageToken'];\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0$arr_list = getYTList($url);\n}\n\u00a0\u00a0\nfunction getYTList($api_url = '') {\n\u00a0\u00a0\u00a0\u00a0$ch = curl_init();\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_URL, $api_url);\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n\u00a0\u00a0\u00a0\u00a0$response = curl_exec($ch);\n\u00a0\u00a0\u00a0\u00a0$arr_result = json_decode($response);\n\u00a0\u00a0\u00a0\u00a0if (isset($arr_result-&gt;items)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return $arr_result;\n\u00a0\u00a0\u00a0\u00a0} elseif (isset($arr_result-&gt;error)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/print error $arr_result-&gt;error\n\u00a0\u00a0\u00a0\u00a0}\n}\n?&gt;<\/code><\/pre>\n<p>\u00dclaltoodud kood kontrollib m\u00e4rks\u00f5na p\u00e4ringu parameetreid, max_result ja sortimise v\u00e4\u00e4rtust. See v\u00f5tab need v\u00e4\u00e4rtused ja edastab need API l\u00f5pp-punktile. Vastutasuks lisab see muutujale vastuse <code>$arr_list<\/code>. Tutvume selle muutujaga ja printime videote kohta teavet.<\/p>\n<pre><code>&lt;?php\nif (!empty($arr_list)) {\n\u00a0\u00a0\u00a0\u00a0echo '&lt;ul&gt;';\n\u00a0\u00a0\u00a0\u00a0foreach ($arr_list-&gt;items as $item) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo \"&lt;li&gt;\". $item-&gt;snippet-&gt;title .\" (Video ID: \". $item-&gt;id-&gt;videoId .\")&lt;\/li&gt;\";\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0echo '&lt;\/ul&gt;';\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0$url = \"?q=\". $_GET['q'] .\"&amp;max_result=\". $_GET['max_result'] .\"&amp;order=\". $_GET['order'];\n\u00a0\u00a0\u00a0\u00a0if (isset($arr_list-&gt;prevPageToken)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo '&lt;a href=\"'.$url.'&amp;pageToken='.$arr_list-&gt;prevPageToken.'\"&gt;Previous&lt;\/a&gt;';\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0if (isset($arr_list-&gt;nextPageToken)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo '&lt;a href=\"'.$url.'&amp;pageToken='.$arr_list-&gt;nextPageToken.'\"&gt;Next&lt;\/a&gt;';\n\u00a0\u00a0\u00a0\u00a0}\n}\n?&gt;<\/code><\/pre>\n<p>Selle koodi saate paigutada p\u00e4rast vormi HTML-i. See annab teile videote pealkirjade loendi, video ID-d koos lehelinkidega.<\/p>\n<p>Meie l\u00f5plik kood on j\u00e4rgmine:<\/p>\n<pre><code>&lt;?php\n$api_key = 'YOUR_API_KEY';\n\u00a0\u00a0\n$arr_list = array();\nif (array_key_exists('q', $_GET) &amp;&amp; array_key_exists('max_result', $_GET) &amp;&amp; array_key_exists('order', $_GET)) {\n\u00a0\u00a0\u00a0\u00a0$formatted_keyword = implode(\"+\", explode(\" \", $_GET['q']));\n\u00a0\u00a0\u00a0\u00a0$url = \"https:\/\/www.googleapis.com\/youtube\/v3\/search?q=$formatted_keyword&amp;order=\". $_GET['order'] .\"&amp;part=snippet&amp;type=video&amp;maxResults=\". $_GET['max_result'] .\"&amp;key=\". $api_key;\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0if (array_key_exists('pageToken', $_GET)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$url .= \"&amp;pageToken=\". $_GET['pageToken'];\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0$arr_list = getYTList($url);\n}\n\u00a0\u00a0\nfunction getYTList($api_url = '') {\n\u00a0\u00a0\u00a0\u00a0$ch = curl_init();\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_URL, $api_url);\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n\u00a0\u00a0\u00a0\u00a0$response = curl_exec($ch);\n\u00a0\u00a0\u00a0\u00a0$arr_result = json_decode($response);\n\u00a0\u00a0\u00a0\u00a0if (isset($arr_result-&gt;items)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return $arr_result;\n\u00a0\u00a0\u00a0\u00a0} elseif (isset($arr_result-&gt;error)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/print error $arr_result-&gt;error\n\u00a0\u00a0\u00a0\u00a0}\n}\n?&gt;\n\u00a0\n&lt;form method=\"get\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;&lt;input type=\"text\" name=\"q\" placeholder=\"Enter keyword\" value=\"&lt;?php if(array_key_exists('q', $_GET)) echo $_GET['q']; ?&gt;\" required&gt;&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;&lt;input type=\"number\" name=\"max_result\" placeholder=\"Max Results\" min=\"1\" max=\"50\" value=\"&lt;?php if(array_key_exists('max_result', $_GET)) echo $_GET['max_result']; ?&gt;\" required&gt;&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;?php $arr_orders = ['date', 'rating', 'relevance', 'title', 'viewCount']; ?&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;select name=\"order\" required&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;option value=\"\"&gt;--SELECT ORDER--&lt;\/option&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;?php foreach ($arr_orders as $order) { ?&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;option value=\"&lt;?php echo $order; ?&gt;\" &lt;?php if(array_key_exists('order', $_GET) &amp;&amp; ($order==$_GET['order'])) echo 'selected'; ?&gt;&gt;&lt;?php echo ucfirst($order); ?&gt;&lt;\/option&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;?php } ?&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/select&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;&lt;input type=\"submit\" value=\"Submit\"&gt;&lt;\/p&gt;\n&lt;\/form&gt;\n\u00a0\n&lt;?php\nif (!empty($arr_list)) {\n\u00a0\u00a0\u00a0\u00a0echo '&lt;ul&gt;';\n\u00a0\u00a0\u00a0\u00a0foreach ($arr_list-&gt;items as $item) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo \"&lt;li&gt;\". $item-&gt;snippet-&gt;title .\" (Video ID: \". $item-&gt;id-&gt;videoId .\")&lt;\/li&gt;\";\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0echo '&lt;\/ul&gt;';\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0$url = \"?q=\". $_GET['q'] .\"&amp;max_result=\". $_GET['max_result'] .\"&amp;order=\". $_GET['order'];\n\u00a0\u00a0\u00a0\u00a0if (isset($arr_list-&gt;prevPageToken)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo '&lt;a href=\"'.$url.'&amp;pageToken='.$arr_list-&gt;prevPageToken.'\"&gt;Previous&lt;\/a&gt;';\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0if (isset($arr_list-&gt;nextPageToken)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo '&lt;a href=\"'.$url.'&amp;pageToken='.$arr_list-&gt;nextPageToken.'\"&gt;Next&lt;\/a&gt;';\n\u00a0\u00a0\u00a0\u00a0}\n}\n?&gt;<\/code><\/pre>\n<p>Loodan, et m\u00f5istate YouTube&#8217;i otsingu API integreerimist oma veebisaidile. Palun jagage oma m\u00f5tteid ja ettepanekuid allpool olevas kommentaaride jaotises.<\/p>\n<h4>seotud artiklid<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/kuidas-hankida-youtube-i-videomargendeid-youtube-i-api-abil\/\" title=\"Kuidas hankida YouTube&#039;i videom\u00e4rgendeid YouTube&#039;i API abil\">Kuidas hankida YouTube&#8217;i videom\u00e4rgendeid YouTube&#8217;i API abil<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/youtube-api-kuidas-saada-oma-kanali-youtube-i-videote-loendit\/\" title=\"YouTube API - kuidas saada oma kanali YouTube&#039;i videote loendit\">YouTube API &#8211; kuidas saada oma kanali YouTube&#8217;i videote loendit<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/kuidas-saada-pisipilti-youtube-i-vimeo-ja-dailymotioni-videotest\/\" title=\"Kuidas saada pisipilti YouTube&#039;i, Vimeo ja Dailymotioni videotest\">Kuidas saada pisipilti YouTube&#8217;i, Vimeo ja Dailymotioni videotest<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Selles artiklis uurime, kuidas kasutada YouTube&#8217;i otsingu API-d videote loendi saamiseks m\u00e4rks\u00f5nade j\u00e4rgi. Otsime videoid m\u00e4rks\u00f5na, filtri p\u00f5hjal<\/p>\n","protected":false},"author":1,"featured_media":21608,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[274],"tags":[842],"class_list":["post-26044","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-5","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts\/26044","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/comments?post=26044"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts\/26044\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/media\/21608"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/media?parent=26044"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/categories?post=26044"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/tags?post=26044"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}