{"id":25307,"date":"2021-05-29T14:39:00","date_gmt":"2021-05-29T11:39:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=25307"},"modified":"2021-10-18T03:07:21","modified_gmt":"2021-10-18T00:07:21","slug":"api-di-youtube-come-ottenere-l-elenco-dei-video-di-youtube-del-tuo-canale","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/it\/api-di-youtube-come-ottenere-l-elenco-dei-video-di-youtube-del-tuo-canale\/","title":{"rendered":"API di YouTube &#8211; Come ottenere l&#8217;elenco dei video di YouTube del tuo canale"},"content":{"rendered":"<p>Recentemente uno dei nostri lettori ha chiesto come ottenere un elenco di video di un canale YouTube? Volevano mostrare un elenco dei loro video in formato tabellare. In questo articolo, studiamo come utilizzare l&#8217;API di YouTube per ottenere un elenco di video di YouTube del tuo canale.<\/p>\n<p>Un utente pu\u00f2 vedere tutti i suoi video sul sito Web di YouTube stesso. Ma se vuoi condividere l&#8217;elenco dei video con qualcun altro, devi mantenere questi dati offline. D&#8217;altra parte, alcuni utenti potrebbero voler visualizzare un elenco di video sul proprio sito web.<\/p>\n<p>Detto questo, diamo un&#8217;occhiata a come ottenere un elenco di video di YouTube utilizzando l&#8217;API di YouTube.<\/p>\n<p><strong>Nota:<\/strong> utilizzando il codice di questo articolo puoi anche ottenere un elenco di video di qualsiasi canale YouTube che fornisca un ID canale YouTube valido.<\/p>\n<h3>Ottieni la tua chiave API<\/h3>\n<p>Per iniziare con l&#8217;API di YouTube, devi prima creare una chiave API dal tuo account Google. Questa chiave \u00e8 necessaria durante l&#8217;interazione con le API di YouTube. Senza questa chiave YouTube considera non autorizzate tutte le richieste API in entrata.<\/p>\n<p>Segui i passaggi seguenti per creare una chiave API.<\/p>\n<ul>\n<li>Vai alla Console per gli sviluppatori di Google <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>Crea un nuovo progetto. Puoi anche selezionare un progetto esistente.<\/li>\n<li>Digita un nome per il tuo progetto. Google Console creer\u00e0 un ID progetto univoco.<\/li>\n<li>Dopo aver creato un progetto, apparir\u00e0 nella parte superiore della barra laterale sinistra.<\/li>\n<li>Fare clic su Libreria. Vedrai l&#8217;elenco delle API di Google.<\/li>\n<li>Abilita l&#8217;API dati di YouTube.<\/li>\n<li>Fare clic su Credenziali. Seleziona la chiave API in Crea credenziali.<\/li>\n<li>Copia la chiave API. Ne avremo bisogno tra un momento.<\/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=\"API di YouTube - Come ottenere l&#039;elenco dei video di YouTube del tuo canale\" ><\/a><\/p>\n<h3>Ottieni un elenco di video di YouTube<\/h3>\n<p>Una volta che sei pronto con la chiave API, crea 3 file nel tuo progetto. Questi file rappresentano i metodi di configurazione e di supporto, la gestione di Ajax e visualizzano il risultato finale.<\/p>\n<ul>\n<li><code>config.php<\/code>: In questo file impostiamo la chiave API come costante. Ha anche un metodo di supporto che fornisce una chiamata API e riceve una risposta.<\/li>\n<li><code>ajax.php<\/code>: questo file chiamer\u00e0 l&#8217;API per ottenere la serie successiva di risultati forniti massimi risultati da restituire.<\/li>\n<li><code>index.php<\/code>: Contiene un modulo, codice per chiamata Ajax, visualizza l&#8217;elenco dei video.<\/li>\n<\/ul>\n<p>Nel <code>config.php<\/code>file, dichiariamo la chiave API come una variabile costante. Definiamo anche il metodo di supporto che interagisce con gli endpoint API.<\/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>Assicurati di sostituire il segnaposto con la chiave API effettiva. Devi anche avere l&#8217;estensione cURL abilitata sul tuo server.<\/p>\n<h4>Crea un modulo<\/h4>\n<p>Successivamente, abbiamo bisogno di un semplice modulo in cui possiamo inserire l&#8217;ID del canale YouTube e il numero di video da restituire. L&#8217;API di YouTube restituisce un massimo di 50 video alla volta.<\/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>Al momento dell&#8217;invio del modulo, sto inviando l&#8217;id del canale e max_result con il metodo GET. Quindi nella parte superiore dello stesso file, scriver\u00f2 il codice come segue:<\/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>Questo codice include un file di configurazione, ottiene i parametri, crea un URL API e quindi lo passa al metodo di supporto creato nel passaggio precedente. Per visualizzare il risultato aggiungi il codice seguente dopo il modulo.<\/p>\n<p>Non mi concentrer\u00f2 sulla progettazione di un elenco. Lo scopo principale del tutorial \u00e8 recuperare i video di YouTube. Lo visualizzer\u00f2 nel formato elenco.<\/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>Qui stiamo scorrendo i video e stampando il titolo e l&#8217;id del video. Se otteniamo il valore di &#8216;nextPageToken&#8217; stiamo aggiungendo un campo nascosto e l&#8217;elemento Load More. Questo perch\u00e9 se hai pi\u00f9 di 50 video sul canale, possiamo ottenere il prossimo set di record utilizzando questo valore &quot;nextPageToken&quot;. Dopodich\u00e9, dobbiamo effettuare una chiamata Ajax al clic del pulsante Carica altro.<\/p>\n<h4>Chiamata Ajax<\/h4>\n<p>Quando facciamo clic su Carica altro, verr\u00e0 chiamato il <code>ajax.php<\/code>file. Questo file ci dar\u00e0 il prossimo set di record che verr\u00e0 poi aggiunto all&#8217;elenco esistente. Scrivi il codice JavaScript sottostante alla fine del <code>index.php<\/code>file.<\/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>Per questo articolo, sto usando JavaScript vaniglia per la chiamata ajax e aggiungendo la risposta al DOM. Al file ajax sto inviando i valori di channel id, max_result e &#8216;nextPageToken&#8217;.<\/p>\n<p>Nel file ajax con l&#8217;aiuto di questi parametri, creiamo l&#8217;URL dell&#8217;API. Dopo aver ricevuto una risposta, creeremo un oggetto JSON contenente informazioni sul video e lo rispediremo. Al JSON finale, sto anche aggiungendo un valore &quot;nextPageToken&quot; per ottenere il prossimo set di record sulle successive chiamate Ajax.<\/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>Il nostro codice JavaScript riceve questa risposta JSON e aggiunge il risultato all&#8217;elenco esistente di video di YouTube. Questo processo continua finch\u00e9 non troviamo il valore per &#8216;nextPageToken&#8217;.<\/p>\n<p>Spero che tu capisca come ottenere un elenco di video di un canale YouTube. Si prega di condividere i tuoi pensieri o suggerimenti nella sezione commenti qui sotto.<\/p>\n<h4>articoli Correlati<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/come-utilizzare-l-api-di-youtube-per-caricare-video-sul-canale-youtube\/\" title=\"Come utilizzare l&#039;API di YouTube per caricare video sul canale YouTube\">Come utilizzare l&#8217;API di YouTube per caricare video sul canale YouTube<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/ottieni-l-elenco-dei-video-di-youtube-per-parole-chiave-utilizzando-l-api-di-ricerca-di-youtube\/\" title=\"Come ottenere l&#039;elenco dei video di YouTube per parole chiave utilizzando l&#039;API di ricerca di YouTube\">Come ottenere l&#8217;elenco dei video di YouTube per parole chiave utilizzando l&#8217;API di ricerca di YouTube<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/come-aggiungere-l-accesso-oauth-a-google-nel-sito-web-con-php\/\" title=\"Come aggiungere l&#039;accesso OAuth a Google nel sito Web con PHP\">Come aggiungere l&#8217;accesso OAuth a Google nel sito Web con PHP<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In questo articolo, studiamo come ottenere un elenco di video di YouTube utilizzando l&#8217;API di YouTube. Potresti volere un elenco di video per visualizzarlo su un sito web<\/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":[276],"tags":[846],"class_list":["post-25307","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-7","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts\/25307","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/comments?post=25307"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts\/25307\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media\/21640"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media?parent=25307"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/categories?post=25307"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/tags?post=25307"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}