这个代码用来列出播放列表中排名前50位的视频
var ytURL = "http://gdata.youtube.com/feeds/api/playlists/PLgtnUFn0ROBBPO2nC-bduEDDlxikKwZ6R?v=2&alt=json&callback=?&max-results=50";
var thumbBase = "http://img.youtube.com/vi/";
$.getJSON(ytURL, function (data) {
$.each(data.feed.entry, function (i, item) {
var itemTitle = item.title.$t; // Title of the video
var itemdescription = item.media$group.media$description.$t; //Description of the Video
itemdescription = itemdescription.replace(/"/g, "");
var itemdate = item.published.$t;
var fulldate = new Date(itemdate).toLocaleDateString();
var yobject = { 'title': itemTitle, 'description': itemdescription, 'gdate': itemdate };
localStorage.setItem(videoID, JSON.stringify(yobject));
});
相同的代码现在不工作,因为谷歌更新youtube api
我已经参考了youtube文档,看完后,我才知道这样使用
https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&playlistId=PLgtnUFn0ROBBPO2nC-bduEDDlxikKwZ6R&key={YOUR_KEY_HERE}&maxResults=50
问题是,有公共: playlist id "PLgtnUFn0ROBBPO2nC-bduEDDlxikKwZ6R"在这里。
我想从播放列表中列出所有的视频,而不使用API密钥。
我如何访问这个…
建议我如何从这个解决方案中克服
在v3中,如果没有API密钥,您甚至无法访问公共youtube数据。
From the docs:
您可以请求有关通道的公共信息的信息没有认证的播放列表。当您提交未经身份验证的请求时,您需要包含指定发出请求的应用程序的唯一API密钥。例如,的相关播放列表GoogleDevelopers通道。
所以你可以执行请求来获得播放列表数据,而不需要验证用户(不需要通过OAuth流),但你仍然需要为你的应用程序提供一个API密钥(你可以很容易地在Google Developer控制台生成)。
YouTube Data API v3需要一个API Key来获取公共信息。但是,可以通过非官方api从公共播放列表中获取视频。
例如,Invidious, YouTube的另一个前端,为YouTube播放列表提供了以下REST API,而不需要API密钥:
GET /api/v1/playlists/
您可以参考其文档获取更多信息。