2010-03-19 19 views
12

Qual è il modo più semplice per ottenere il titolo dal video youtybe, ad esempio il titolo del video:ottenere il titolo del video di YouTube con jQuery utilizza API di YouTube

http://www.youtube.com/watch?v=Wp7B81Kx66o

Grazie!

+1

Date un'occhiata a questo: [Come ottenere miniatura del collegamento video YouTube utilizzando YouTube API] (http://stackoverflow.com/questions/2068344/how-to- get-miniature-di-youtube-video-link-con-youtube-api/2108248 # 2108248). Dice thumbnail ma quasi tutte le informazioni disponibili pubblicamente su un video possono essere recuperate. –

risposta

15

Usa jQuery's JSON chiamata alla API di YouTube per ottenere i risultati indietro e quindi utilizzare jQuery per mettere i risultati in cui si li voglio. Puoi usare la scheda NET di Firebug per assicurarti che le richieste/respoons siano tornate correttamente e quindi usare console.log() per essere sicuro di aver analizzato correttamente la risposta.

es. URL:

GET https://gdata.youtube.com/feeds/api/videos/(the-video-id)?v=2&alt=json

Maggiori informazioni:

YouTube API for a specific video

Developer's Guide: JSON/JavaScript

+6

non funziona più –

+0

Questa è l'API di YouTube v2 che è stata deprecata, @AlexC si prega di aggiornare la risposta qui sotto se lo trovi corretto –

4

Prova questo:

<script type="text/javascript"> 
function showMyVideos(data) { 
    var feed = data.feed; 
    var entries = feed.entry || []; 
    var html = ['<ul>']; 
    for (var i = 0; i < entries.length; i++) { 
    var entry = entries[i]; 
    var title = entry.title.$t; 
    html.push('<li>', title, '</li>'); 
    } 
    html.push('</ul>'); 
    document.getElementById('videos').innerHTML = html.join(''); 
} 
</script> 

e questo nel vostro parte del corpo:

<body> 
<div id="videos"> 
<script 
    type="text/javascript" 
    src="http://gdata.youtube.com/feeds/users/GoogleDevelopers/uploads?alt=json-in-script&format=5&callback=showMyVideos"> 
</script> 
</div> 
</body> 
-2

Prova questa per lo show Youtube funzione foto davanti Jquery visualizzazione elenco.

<script> 
function showMyVideos(data) { 
    var feed = data.feed; 
    var entries = feed.entry || []; 
    var html = ['<ul data-role="listview">']; 
    for (var i = 0; i < entries.length; i++) { 
     var entry = entries[i]; 
     var title = entry.title.$t; 
     var feature = entry.content.$t.substring(entry.content.$t.indexOf("src=")+5); 
     feature = feature.substring(0,feature.indexOf('"')); 
     html.push('<li><img src="' ,feature , '" />' , title , '<p>' , feature, '</p></li>'); 
    } 
    html.push('</ul>'); 
    document.getElementById('videos').innerHTML = html.join(''); 
} 
</script> 

<div id="videos"> 
<script 
src="http://gdata.youtube.com/feeds/users/mostviewcomedy/uploads?alt=json-in-script&format=5&callback=showMyVideos"> 
</script> 
</div> 
+0

questo è male perché stai ancora recuperando tutti i dati, si vuole essere solo il recupero i dati giusti, come in tutto il filtraggio attraverso i parametri della richiesta, non lato client –

3

Questa è un'implementazione revisionata della risposta originale fornito dal @easement con la corrente v3 YouTube Data API.

Per effettuare una richiesta all'API, è possibile utilizzare jQuery's getJSON() call per richiedere il titolo da YouTube tramite AJAX. L'API di dati v3 di YouTube fornisce 3 endpoint che possono essere utilizzati per ottenere il titolo:

  1. Snippet Title - Il titolo del video. Il valore della proprietà ha una lunghezza massima di 100 caratteri e può contenere tutti i caratteri UTF-8 validi ad eccezione di < e>.
  2. Snippet Localized Title - Il titolo del video localizzato, sempre con la massima lunghezza sopra descritto
  3. Full Localized Title - Il titolo del video full length localizzato.

esempio di implementazione utilizzando Snippet Titolo

var yt_api_key = {your YouTube api key}, 
 
    yt_video_id = {your YouTube video id}, 
 
    yt_snippet_endpoint = "https://www.googleapis.com/youtube/v3/videos?part=snippet&id=" + yt_video_id + "&key=" + yt_api_key; 
 

 
var jqxhr = $.getJSON(yt_snippet_endpoint) 
 
    .done(function(data) { 
 
    console.log("second success callback"); 
 
    var title = getTitle(data); 
 
    // do something with title here 
 
    }) 
 
    .fail(function() { 
 
    console.log("error, see network tab for response details"); 
 
    }); 
 

 
function getTitle(snippet_json_data){ 
 
    var title = snippet_json_data.title; 
 
    return title; 
 
}
punta

debug: È possibile utilizzare strumenti di sviluppo per visualizzare le richieste di rete (ad esempio Chrome's developer tools o Firefox's Firebug) per essere sicuri di le richieste/risposte stanno tornando correttamente e quindi usano console.log() per registrare i dati restituiti per essere sicuri hai analizzato correttamente la risposta.

Letture aggiuntive: YouTube Data API "getting started"

Problemi correlati