यहां और अन्य जगहों पर साझा किए गए संदर्भों के लिए धन्यवाद, मैंने एक ऑनलाइन स्क्रिप्ट / टूल बनाया है, जिसका उपयोग करके कोई चैनल के सभी वीडियो प्राप्त कर सकता है।
यह करने के लिए API कॉल को जोड़ती है youtube.channels.list
, playlistItems
, videos
। यह अतुल्यकालिक कॉलबैक को वैध प्रतिक्रिया मिलने पर अगली पुनरावृत्ति चलाने के लिए पुनरावर्ती कार्यों का उपयोग करता है।
यह एक बार में किए गए अनुरोधों की वास्तविक संख्या को सीमित करने का कार्य भी करता है, इसलिए आपको YouTube API नियमों का उल्लंघन करने से सुरक्षित रखता है। छोटे स्निपेट साझा करना और फिर पूर्ण कोड के लिए एक लिंक। मुझे अगले 50 परिणाम और इतने पर लाने के लिए प्रतिक्रिया में आने वाले NextPageToken मूल्य का उपयोग करके प्रति कॉल सीमा के लगभग 50 अधिकतम परिणाम मिले।
function getVideos(nextPageToken, vidsDone, params) {
$.getJSON("https://www.googleapis.com/youtube/v3/playlistItems", {
key: params.accessKey,
part: "snippet",
maxResults: 50,
playlistId: params.playlistId,
fields: "items(snippet(publishedAt, resourceId/videoId, title)), nextPageToken",
pageToken: ( nextPageToken || '')
},
function(data) {
// commands to process JSON variable, extract the 50 videos info
if ( vidsDone < params.vidslimit) {
// Recursive: the function is calling itself if
// all videos haven't been loaded yet
getVideos( data.nextPageToken, vidsDone, params);
}
else {
// Closing actions to do once we have listed the videos needed.
}
});
}
इसने वीडियो की एक मूल सूची प्राप्त की, जिसमें आईडी, शीर्षक, प्रकाशन की तिथि और इसी तरह की थी। लेकिन देखे जाने की संख्या और पसंद की तरह प्रत्येक वीडियो का और अधिक विस्तार पाने के लिए, एक के लिए API कॉल करने के लिए है videos
।
// Looping through an array of video id's
function fetchViddetails(i) {
$.getJSON("https://www.googleapis.com/youtube/v3/videos", {
key: document.getElementById("accesskey").value,
part: "snippet,statistics",
id: vidsList[i]
}, function(data) {
// Commands to process JSON variable, extract the video
// information and push it to a global array
if (i < vidsList.length - 1) {
fetchViddetails(i+1) // Recursive: calls itself if the
// list isn't over.
}
});
देखें पूर्ण कोड यहां , और यहां लाइव संस्करण । (संपादित करें: फिक्स्ड जीथब लिंक)
संपादित करें: निर्भरताएँ: JQuery, Papa.parse