2011-03-04 10 views
15
<script type= "text/javascript"> 
var url = "http://gdata.youtube.com/feeds/api/videos/VA770wpLX-Q?v=2&amp;alt=json-in-script&amp;callback="; 
var title; 
var description; 
var viewcount; 
var views; 
var author; 
$.getJSON(url, 
    function(data){ 
     title = data.entry.title.$t; 
     description = data.entry.media$group.media$description.$t; 
     viewcount = data.entry.yt$statistics.viewCount; 
     views = numberFormat (viewcount); 
     author = data.entry.author[0].name.$t; 
     listInfo (title,description,author,views); 
}); 

</script> 

तो मेरी कोड एक वीडियो से जानकारी प्राप्त करने, thats के बाद जानकारी प्राप्त होता है यह यह प्रदर्शित करने के लिए इस फ़ंक्शन को कॉल:जावास्क्रिप्ट/jQuery का उपयोग कर यूट्यूब वीडियो जानकारी हो रही

<script type="text/javascript"> 
function listInfo (title,description,author,views) { 
    var html = ['<dl>']; 
     html.push('<dt>','<span class="titleStyle">', title,'</span><span class="descriptionStyle">',description, '</span><span class="authorStyle">',author,'</span><span class="viewsStyle">',' Views:',views,'</span></dt>'); 

    html.push('</dl>'); 
    document.getElementById("agenda").innerHTML = html.join(""); 
} 
    function numberFormat(nStr,prefix){ 
    var prefix = prefix || ''; 
    nStr += ''; 
    x = nStr.split('.'); 
    x1 = x[0]; 
    x2 = x.length > 1 ? '.' + x[1] : ''; 
    var rgx = /(\d+)(\d{3})/; 
    while (rgx.test(x1)) 
     x1 = x1.replace(rgx, '$1' + ',' + '$2'); 
    return prefix + x1 + x2; 
} 
    </script> 

कि कहते हैं के बाद एक div, जो मैं एक मेज

<table width="485"><tr><td><div id="agenda"></div></td></tr></table> 

इस जानकारी के सभी शरीर में पाया जाता है के अंदर है में परिभाषा सूची, अब मैं यह काम करने के लिए प्राप्त करने के लिए, मैं एक सप्ताह के लिए कोशिश कर रहा है नहीं कर पा रहे , और मुझे कोई नहीं मिला इसे काम करने का तरीका

+1

क्या काम करता है और क्या विफल रहता है संकोच नहीं करते? क्या आपको कोई डेटा वापस मिल गया है? क्या कोई एचटीएमएल प्रस्तुत किया जाता है? –

+0

एक बिंदु पर मैंने इसे सही तरीके से प्रस्तुत किया था, लेकिन यह केवल सपनेवेवर में दिखाया गया था, मुझे मूल स्रोत स्टैक ओवरफ़्लो से मिला, लेकिन हमेशा के लिए देखा और इसे फिर से नहीं मिला, इसलिए मैंने इसे अपने आप करने की कोशिश करना शुरू कर दिया, और इस बिंदु पर, मुझे यह भी नहीं लगता कि यह ठीक है, मेरा कोड मेरा मतलब है – Ali

उत्तर

14

के बाद से यूट्यूब एपीआई 50 ​​से अधिक टिप्पणियों की अनुमति नहीं है एक ही अनुरोध पर वापस करने के लिए, आप एक URL पैरामीटर "शुरू सूचकांक" कहा जाता है, जो यूट्यूब जो आप चाहते बताता जोड़ने की आवश्यकता होगी वहां से टिप्पणियां प्राप्त करने के लिए। नीचे एक उदाहरण है। मैंने इसे इतना बनाया है कि जब तक प्रतिक्रिया JSON 50 टिप्पणियां लौटाती है, तब तक यह अगले 50 टिप्पणियों के लिए फ़ंक्शन को फिर से कॉल करती है।

<html> 
<head> 
     <script type="text/javascript" src="http://code.jquery.com/jquery-1.5.1.min.js"></script> 
     <script type= "text/javascript"> 
     function getYouTubeInfo() { 
       $.ajax({ 
         url: "http://gdata.youtube.com/feeds/api/videos/<?php echo $_GET['v']; ?>?v=2&alt=json", 
         dataType: "jsonp", 
         success: function (data) { parseresults(data); } 
       }); 
     } 

     function parseresults(data) { 
       var title = data.entry.title.$t; 
       var description = data.entry.media$group.media$description.$t; 
       var viewcount = data.entry.yt$statistics.viewCount; 
       var author = data.entry.author[0].name.$t; 
       $('#title').html(title); 
       $('#description').html('<b>Description</b>: ' + description); 
       $('#extrainfo').html('<b>Author</b>: ' + author + '<br/><b>Views</b>: ' + viewcount); 
       getComments(data.entry.gd$comments.gd$feedLink.href + '&max-results=50&alt=json', 1); 
     } 

     function getComments(commentsURL, startIndex) { 
       $.ajax({ 
         url: commentsURL + '&start-index=' + startIndex, 
         dataType: "jsonp", 
         success: function (data) { 
         $.each(data.feed.entry, function(key, val) { 
           $('#comments').append('<br/>Author: ' + val.author[0].name.$t + ', Comment: ' + val.content.$t); 
         }); 
         if ($(data.feed.entry).size() == 50) { getComments(commentsURL, startIndex + 50); } 
         } 
       }); 
     } 

     $(document).ready(function() { 
       getYouTubeInfo(); 
     }); 
     </script> 
     <title>YouTube</title> 
</head> 
<body bgcolor="grey"> 
     <div align="center"> 
       <br/><br/> 
       <div id="title" style="color: #dddddd">Could not find a title</div><br/> 
       <iframe title="Youtube Video Player" width="640" height="390" src="http://www.youtube.com/embed/<?php echo $_GET['v']; ?>?fs=1&autoplay=1&loop=0" frameborder="0" allowfullscreen style="border: 1px solid black"></iframe> 
       <br/><br/> 
       <div id="description" style="width:400px; background-color: #dddddd; font-size:10px; text-align:left;">Could not find a description</div> 
       <div id="extrainfo" style="width:400px; background-color: #dddddd; font-size:10px; text-align:left;">Could not find extra information</div> 
       <div id="comments" style="width:400px; background-color: #dddddd; font-size:10px; text-align:left;">Could not find comments</div> 
     </div> 
</body> 
</html> 

आप किसी भी अधिक प्रश्न हैं या आप इस कोड के साथ अटक जाते हैं, तो :-)

गुड लक फिर से पूछने के लिए, टॉम

+0

धन्यवाद! यह वही है जो मुझे चाहिए :) – Ali

+0

@ टॉम, क्या आप मुझे बता सकते हैं कि उपर्युक्त कोड कैसे काम करता है? –

+0

ध्यान दें कि यहां उपयोग किए जा रहे जीडीएटी एपीआई को बहिष्कृत किया गया है, और अब और काम नहीं करता है। आपको अब से डेटा v3 एपीआई का उपयोग करना चाहिए, जिसे आप यहां पा सकते हैं: https://developers.google.com/youtube/v3/ – janykste

3

आपको jTube jquery यूट्यूब लाइब्रेरी का प्रयास करना चाहिए। यह इस तरह की बुनियादी कॉल करना बहुत आसान बनाता है। डाउनलोड/दृश्य कोड पर: https://github.com/monkeecreate/jTube/blob/master/jTube/jquery.jTube.js

उपयोग की तरह:

$.jTube({ 
    request: 'user', 
    requestValue: 'defvayne23', 
    requestOption: 'uploads', 
    success: function(videos){ 
     ...code here 
    } 
}); 

देखें अधिक नमूने: https://github.com/defvayne23/jTube

+0

वाह जो इतना अविश्वसनीय रूप से सहायक है! अनेक अनेक धन्यवाद!! – Ali

+0

आप इस आईडी के साथ एक आईडी निर्दिष्ट नहीं कर सकते हैं? – mdskinner

+0

मुझे लगता है कि यह वीडियो कर सकता है, और फिर मूल्य आईडी होगा। 100% सुनिश्चित नहीं है – Danny

0

जबकि मैं वास्तव में नहीं पता है कि समस्या आप का सामना कर रहे है, अपने सवाल का जवाब देने यूट्यूब वीडियो से जानकारी कैसे प्राप्त करें, मैंने नीचे एक त्वरित उदाहरण दिया है।

यूट्यूब वीडियो कोड होने से php: $ _GET ['v'] में चर हो जाता है।

<html> 
<head> 
     <script type="text/javascript" src="http://code.jquery.com/jquery-1.5.1.min.js"></script> 
     <script type= "text/javascript"> 
     function getYouTubeInfo() { 
       $.ajax({ 
         url: "http://gdata.youtube.com/feeds/api/videos/<?php echo $_GET['v']; ?>?v=2&alt=json", 
         dataType: "jsonp", 
         success: function (data) {parseresults(data)} 
       }); 
     } 

     function parseresults(data) { 
       var title = data.entry.title.$t; 
       var description = data.entry.media$group.media$description.$t; 
       var viewcount = data.entry.yt$statistics.viewCount; 
       var author = data.entry.author[0].name.$t; 
       $('#title').html(title); 
       $('#description').html('<b>Description</b>: ' + description); 
       $('#extrainfo').html('<b>Author</b>: ' + author + '<br/><b>Views</b>: ' + viewcount); 
     } 

$(document).ready(function() { 
     getYouTubeInfo(); 
}); 
     </script> 
     <title>YouTube</title> 
</head> 
<body bgcolor="grey"> 
     <div align="center"> 
       <br/><br/> 
       <div id="title" style="color: #dddddd">Could not find a title</div><br/> 
       <iframe title="Youtube Video Player" width="640" height="390" src="http://www.youtube.com/embed/<?php echo $_GET['v']; ?>?fs=1&autoplay=1&loop=0" frameborder="0" allowfullscreen style="border: 1px solid black"></iframe> 
       <br/><br/> 
       <div id="description" style="width:400px; background-color: #dddddd; font-size:10px; text-align:left;">Could not find a description</div> 
       <div id="extrainfo" style="width:400px; background-color: #dddddd; font-size:10px; text-align:left;">Could not find extra information</div> 
     </div> 
</body> 
</html> 

यह एम्बेडेड वीडियो (आइफ्रेम), और विवरण, विचारों और लेखक के नीचे से ऊपर शीर्षक प्रिंट करता है।

मुझे नहीं पता कि आप और क्या करना चाहते हैं (listinfo, numberformat), लेकिन मुझे लगता है कि आप इसे यहां से बाहर कर सकते हैं।

उम्मीद है कि इससे मदद मिलती है।

टॉम

+0

@ टॉम बहुत बहुत धन्यवाद! यह आश्चर्यजनक रूप से काम करता है, मैंने इसे वीडियो के लिए टिप्पणियां प्राप्त करने के लिए चारों ओर काम करने की कोशिश की, लेकिन इसे प्रबंधित नहीं कर सका, मुझे लगता है कि आपको इसे प्रत्येक टिप्पणी के माध्यम से लूप बनाना होगा और इसे अलग-अलग पेज पर रखना होगा?अगर आपके पास ऐसा कुछ हासिल करने के बारे में कोई विचार है तो कृपया मुझे बताएं !! मैं डैनी जैसे jTube का उपयोग करता था, लेकिन इस विशिष्ट कार्य के लिए यह केवल मुझे 50 परिणाम/पृष्ठ प्राप्त करने की इजाजत देता है, और मैं प्रत्येक टिप्पणी के माध्यम से सिर्फ लूप करने में सक्षम होना चाहता हूं, टिप्पणियों को दृश्यमान बनाना अनिवार्य नहीं है, मुझे बस चाहिए टिप्पणियां प्राप्त करने में सक्षम होने के लिए – Ali