{"id":25446,"date":"2021-05-29T15:27:00","date_gmt":"2021-05-29T12:27:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=25446"},"modified":"2021-10-17T18:37:48","modified_gmt":"2021-10-17T15:37:48","slug":"youtube-api-kuidas-saada-oma-kanali-youtube-i-videote-loendit","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/et\/youtube-api-kuidas-saada-oma-kanali-youtube-i-videote-loendit\/","title":{"rendered":"YouTube API &#8211; kuidas saada oma kanali YouTube&#8217;i videote loendit"},"content":{"rendered":"<p>Hiljuti k\u00fcsis \u00fcks meie lugejatest, kuidas saada YouTube&#8217;i kanali videote loend? Nad tahtsid n\u00e4idata oma videote loendit tabelina. Selles artiklis uurime, kuidas kasutada YouTube&#8217;i API-d oma kanali YouTube&#8217;i videote loendi saamiseks.<\/p>\n<p>Kasutaja n\u00e4eb k\u00f5iki oma videoid ise YouTube&#8217;i veebisaidil. Kuid kui soovite videote loendit kellegi teisega jagada, peate need andmed v\u00f5rgu\u00fchenduseta hoidma. Teiselt poolt v\u00f5ivad m\u00f5ned kasutajad soovida oma veebisaidil kuvada videoloendit.<\/p>\n<p>Sellest hoolimata vaatame, kuidas saada YouTube&#8217;i videote loendit YouTube&#8217;i API abil.<\/p>\n<p><strong>M\u00e4rkus<\/strong>. Selle artikli koodi abil saate ka k\u00f5igi YouTube&#8217;i kanalite videote loendi, millel on kehtiv YouTube&#8217;i kanali ID.<\/p>\n<h3>Hankige oma API v\u00f5ti<\/h3>\n<p>YouTube&#8217;i API-ga alustamiseks peate k\u00f5igepealt looma oma Google&#8217;i kontolt API-v\u00f5tme. See v\u00f5ti on vajalik YouTube&#8217;i API-dega suhtlemisel. Ilma selle v\u00f5tmeta peab YouTube k\u00f5iki sissetulevaid API-p\u00e4ringuid volitamata.<\/p>\n<p>API-v\u00f5tme loomiseks toimige j\u00e4rgmiselt.<\/p>\n<ul>\n<li>Minge Google&#8217;i arendajakonsoolile <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. Saate valida ka olemasoleva projekti.<\/li>\n<li>Sisestage oma projekti nimi. Google Console loob unikaalse projekti ID.<\/li>\n<li>P\u00e4rast projekti loomist ilmub see vasaku k\u00fclgriba \u00fclaossa.<\/li>\n<li>Kl\u00f5psake teeki. N\u00e4ete Google&#8217;i API-de loendit.<\/li>\n<li>Luba YouTube Data API.<\/li>\n<li>Kl\u00f5psake Mandaadid. Valige API-v\u00f5ti loo Mandaatide loomine alt.<\/li>\n<li>Kopeerige API v\u00f5ti. Me vajame seda m\u00f5ne aja p\u00e4rast.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20424-6081ef644e221.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-20424-6081ef644e221.png\" alt=\"YouTube API - kuidas saada oma kanali YouTube&#039;i videote loendit\" ><\/a><\/p>\n<h3>Hankige YouTube&#8217;i videote loend<\/h3>\n<p>Kui olete API v\u00f5tmega valmis, looge oma projektis 3 faili. Need failid t\u00e4histavad konfiguratsiooni ja abimeetodeid, Ajaxi k\u00e4sitsemist ja kuvavad l\u00f5pptulemust.<\/p>\n<ul>\n<li><code>config.php<\/code>: Selles failis m\u00e4\u00e4rasime API-v\u00f5tme konstandiks. Sellel on ka abimeetod, mis annab API-k\u00f5ne ja saab vastuse.<\/li>\n<li><code>ajax.php<\/code>: See fail helistab API-le, et saada j\u00e4rgmine tulemuste komplekt, kui maksimaalsed tulemused on tagastatavad.<\/li>\n<li><code>index.php<\/code>: See sisaldab vormi, Ajaxi k\u00f5ne koodi, kuvab videoloendi.<\/li>\n<\/ul>\n<p>In <code>config.php<\/code>faili, olgem kuulutada API v\u00f5ti pidevalt muutuv. Samuti m\u00e4\u00e4ratleme abimeetodi, mis suhtleb API l\u00f5pp-punktidega.<\/p>\n<p><strong>config.php<\/strong><\/p>\n<pre><code>&lt;?php\ndefine('GOOGLE_API_KEY', 'PASTE_YOUR_API_KEY');\n\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\/\/var_dump($arr_result); \/\/this line gives you error info if you are not getting a video list.\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Asendage kohat\u00e4ide tegeliku API-v\u00f5tmega. Samuti peab teie serveris olema lubatud laiendus CURL.<\/p>\n<h4>Looge vorm<\/h4>\n<p>J\u00e4rgmiseks vajame lihtsat vormi, kuhu saaksime naasmiseks sisestada YouTube&#8217;i kanali ID ja videote arvu. YouTube API tagastab korraga maksimaalselt 50 videot.<\/p>\n<p><strong>index.php<\/strong><\/p>\n<pre><code>&lt;form method=\"get\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;&lt;input type=\"text\" name=\"channel\" placeholder=\"Enter Channel ID\" value=\"&lt;?php if(array_key_exists('channel', $_GET)) echo $_GET['channel']; ?&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;&lt;input type=\"submit\" value=\"Submit\"&gt;&lt;\/p&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<p>Vormi esitamisel saadan GET-meetodil kanali ID ja max_result. Nii et sama faili \u00fclaosas kirjutan koodi j\u00e4rgmiselt:<\/p>\n<pre><code>&lt;?php\nrequire_once \"config.php\";\n\u00a0\n$arr_list = array();\nif (array_key_exists('channel', $_GET) &amp;&amp; array_key_exists('max_result', $_GET)) {\n\u00a0\u00a0\u00a0\u00a0$channel = $_GET['channel'];\n\u00a0\u00a0\u00a0\u00a0$url = \"https:\/\/www.googleapis.com\/youtube\/v3\/search?channelId=$channel&amp;order=date&amp;part=snippet&amp;type=video&amp;maxResults=\". $_GET['max_result'] .\"&amp;key=\". GOOGLE_API_KEY;\n\u00a0\u00a0\u00a0\u00a0$arr_list = getYTList($url);\n}\n?&gt;<\/code><\/pre>\n<p>See kood sisaldab konfiguratsioonifaili, hankib parameetrid, loob API URL-i ja edastab selle eelmises etapis loodud abimeetodile. Tulemuse kuvamiseks lisage allpool olev kood oma vormi j\u00e4rele.<\/p>\n<p>Ma ei hakka keskenduma loendi kujundusele. \u00d5petuse peamine eesm\u00e4rk on YouTube&#8217;i videote toomine. Kuvan selle loendi vormingus.<\/p>\n<pre><code>&lt;?php\nif (!empty($arr_list)) {\n\u00a0\u00a0\u00a0\u00a0echo '&lt;ul class=\"video-list\"&gt;';\n\u00a0\u00a0\u00a0\u00a0foreach ($arr_list-&gt;items as $yt) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo \"&lt;li&gt;\". $yt-&gt;snippet-&gt;title .\" (\". $yt-&gt;id-&gt;videoId .\")&lt;\/li&gt;\";\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0echo '&lt;\/ul&gt;';\n\u00a0\n\u00a0\u00a0\u00a0\u00a0if (isset($arr_list-&gt;nextPageToken)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo '&lt;input type=\"hidden\" class=\"nextpagetoken\" value=\"'. $arr_list-&gt;nextPageToken .'\" \/&gt;';\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo '&lt;div id=\"loadmore\"&gt;Load More&lt;\/div&gt;';\n\u00a0\u00a0\u00a0\u00a0}\n}\n?&gt;<\/code><\/pre>\n<p>Siin vaatame videoid l\u00e4bi ja printime v\u00e4lja video pealkirja ja video ID. Kui saame v\u00e4\u00e4rtuse &#8216;nextPageToken&#8217; v\u00e4\u00e4rtuse, lisame varjatud v\u00e4lja ja elemendi Laadi rohkem. Seda seet\u00f5ttu, et kui teil on kanalil rohkem kui 50 videot, saame j\u00e4rgmise kirjekomplekti selle &#8216;nextPageToken&#8217; v\u00e4\u00e4rtuse abil. P\u00e4rast seda peame Ajaxi k\u00f5ne tegema nupul Laadi rohkem.<\/p>\n<h4>Ajaxi k\u00f5ne<\/h4>\n<p>Kui kl\u00f5psame nupul Laadi rohkem, helistab see <code>ajax.php<\/code>failile. See fail annab meile j\u00e4rgmise kirjekomplekti, mis seej\u00e4rel lisatakse olemasolevale kirjele. Kirjutage <code>index.php<\/code>faili l\u00f5ppu allpool olev JavaScripti kood .<\/p>\n<pre><code>&lt;script&gt;\nvar httpRequest, nextPageToken;\ndocument.getElementById(\"loadmore\").addEventListener('click', makeRequest);\nfunction makeRequest() {\n\u00a0\u00a0\u00a0\u00a0httpRequest = new XMLHttpRequest();\n\u00a0\u00a0\u00a0\u00a0nextPageToken = document.querySelector('.nextpagetoken').value;\n\u00a0\u00a0\u00a0\u00a0if (!httpRequest) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0alert('Giving up: Cannot create an XMLHTTP instance');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return false;\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0httpRequest.onreadystatechange = function(){\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (this.readyState == 4 &amp;&amp; this.status == 200) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var list = JSON.parse(this.responseText);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0for(var i in list) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if(list[i].title != undefined &amp;&amp; list[i].id != undefined) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var newElement = document.createElement('li');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0newElement.innerHTML = '&lt;li&gt;'+ list[i].title +'('+ list[i].id +')&lt;\/li&gt;';\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0document.querySelector('.video-list').appendChild(newElement);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if(list[list.length-1].nextPageToken != undefined) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0document.querySelector('.nextpagetoken').value = list[list.length-1].nextPageToken;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} else {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var loadmore = document.getElementById(\"loadmore\");\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0loadmore.parentNode.removeChild(loadmore);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0};\n\u00a0\u00a0\u00a0\u00a0httpRequest.open('GET', 'ajax.php?channel=&lt;?php echo $_GET['channel']; ?&gt;&amp;max_result=&lt;?php echo $_GET['max_result']; ?&gt;&amp;nextPageToken='+nextPageToken, true);\n\u00a0\u00a0\u00a0\u00a0httpRequest.send();\n}\n&lt;\/script&gt;<\/code><\/pre>\n<p>Selle artikli jaoks kasutan ajax-k\u00f5ne jaoks vanilje JavaScripti ja lisan vastuse DOM-ile. Ajax-faili saadan kanali id, max_result ja &#8216;nextPageToken&#8217; v\u00e4\u00e4rtused.<\/p>\n<p>Nende parameetrite abil ajax-failis ehitame API URL-i. Vastuse saamisel loome videoteavet sisaldava JSON-i objekti ja saadame selle tagasi. Viimasele JSON-ile lisan ka j\u00e4rgmise &#8216;SidePageToken&#8217; v\u00e4\u00e4rtuse, et saada j\u00e4rgmistele Ajaxi k\u00f5nedele kirjete komplekt.<\/p>\n<p><strong>ajax.php<\/strong><\/p>\n<pre><code>&lt;?php\nrequire_once \"config.php\";\n\u00a0\n$url = \"https:\/\/www.googleapis.com\/youtube\/v3\/search?channelId=\". $_GET['channel'] .\"&amp;order=date&amp;part=snippet&amp;type=video&amp;maxResults=\". $_GET['max_result'] .\"&amp;pageToken=\". $_GET['nextPageToken'] .\"&amp;key=\". GOOGLE_API_KEY;\n\u00a0\n$arr_list = getYTList($url);\n\u00a0\n$arr_result = array();\nif (!empty($arr_list)) {\n\u00a0\u00a0\u00a0\u00a0foreach ($arr_list-&gt;items as $yt) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0array_push($arr_result, ['title' =&gt; $yt-&gt;snippet-&gt;title, 'id' =&gt; $yt-&gt;id-&gt;videoId]);\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0if (isset($arr_list-&gt;nextPageToken)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0array_push($arr_result, ['nextPageToken' =&gt; $arr_list-&gt;nextPageToken]);\n\u00a0\u00a0\u00a0\u00a0}\n}\n\u00a0\necho json_encode($arr_result);<\/code><\/pre>\n<p>Meie JavaScripti kood saab selle JSON-vastuse ja lisab tulemuse olemasolevasse YouTube&#8217;i videote loendisse. See protsess kestab seni, kuni leiame &#8216;nextPageToken&#8217; v\u00e4\u00e4rtuse.<\/p>\n<p>Loodan, et m\u00f5istate, kuidas saada YouTube&#8217;i kanali videote loend. Palun jagage oma m\u00f5tteid v\u00f5i ettepanekuid allpool kommentaaride jaotises.<\/p>\n<h4>seotud artiklid<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/kuidas-kasutada-youtube-i-api-d-video-uleslaadimiseks-youtube-i-kanalile\/\" title=\"Kuidas kasutada YouTube&#039;i API-d video \u00fcleslaadimiseks YouTube&#039;i kanalile\">Kuidas kasutada YouTube&#8217;i API-d video \u00fcleslaadimiseks YouTube&#8217;i kanalile<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/hankige-youtube-i-videoloend-marksonade-jargi-kasutades-youtube-i-otsingu-api-d\/\" title=\"Kuidas hankida YouTube&#039;i videoloend m\u00e4rks\u00f5nade abil YouTube&#039;i otsingu API abil\">Kuidas hankida YouTube&#8217;i videoloend m\u00e4rks\u00f5nade abil YouTube&#8217;i otsingu API abil<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/kuidas-lisada-google-oauthi-sisselogimist-veebisaidile-koos-php-ga\/\" title=\"Kuidas lisada Google OAuthi sisselogimist veebisaidile koos PHP-ga\">Kuidas lisada Google OAuthi sisselogimist veebisaidile koos PHP-ga<\/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 saada YouTube&#8217;i videote loend YouTube&#8217;i API abil. V\u00f5ite soovida videote loendit, et seda veebisaidil kuvada<\/p>\n","protected":false},"author":1,"featured_media":21640,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[274],"tags":[842],"class_list":["post-25446","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\/25446","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=25446"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts\/25446\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/media\/21640"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/media?parent=25446"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/categories?post=25446"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/tags?post=25446"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}