与YouTube API V2,有简单的方法来获取视频。 只需发送这样的查询:
http://gdata.youtube.com/feeds/mobile/videos?max-results=5&alt=rss&orderby=published&author=OneDirectionVEVO
在YouTube API V2也有建筑物查询的交互式演示页: http://gdata.youtube.com/demo/index.html
与YouTube API V3,我不知道相应的路。 请点我与API V3的方式。
谢谢!
Answer 1:
的信道#列表方法将返回一个带有JSON关于信道的某些信息,包括为“上传”播放列表中的播放列表ID:
https://www.googleapis.com/youtube/v3/channels?part=contentDetails&forUsername=OneDirectionVEVO&key={YOUR_API_KEY}
随着播放列表ID,你可以得到与视频playlistItems#列表的方法:
https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&playlistId=UUbW18JZRgko_mOGm5er8Yzg&key={YOUR_API_KEY}
您可以测试那些在文档页面的末端。
Answer 2:
这应该这样做。 此代码只是获取和输出的标题,但你可以得到你想要的任何细节
// Get Uploads Playlist
$.get(
"https://www.googleapis.com/youtube/v3/channels",{
part : 'contentDetails',
forUsername : 'USER_CHANNEL_NAME',
key: 'YOUR_API_KEY'},
function(data) {
$.each( data.items, function( i, item ) {
pid = item.contentDetails.relatedPlaylists.uploads;
getVids(pid);
});
}
);
//Get Videos
function getVids(pid){
$.get(
"https://www.googleapis.com/youtube/v3/playlistItems",{
part : 'snippet',
maxResults : 20,
playlistId : pid,
key: 'YOUR_API_KEY'},
function(data) {
var results;
$.each( data.items, function( i, item ) {
results = '<li>'+ item.snippet.title +'</li>';
$('#results').append(results);
});
}
);
}
<!--In your HTML -->
<ul id="results"></ul>
Answer 3:
事情已经在API的V3很多改变。 这里是一个视频指导您完成获得在给定的频道上传的,与使用API浏览器现场演示的视频列表所需的V3 API调用。
YouTube的开发者的居住:获得一个频道的上传在V3 - https://www.youtube.com/watch?v=RjUlmco7v2M
Answer 4:
如果配额成本是一个考虑因素,它可能是有益遵循这一简单的算法。
首先抓住从数据https://www.youtube.com/feeds/videos.xml?channel_id= ...这是一个简单的XML饲料,这将给你的视频ID的,但你不能再指定“零件”(统计等)。
使用视频的ID从该列表中,请在/视频API端点,其允许的视频ID的一个逗号分隔列表,它只能造成1和的配额成本,加上0-2任何额外的部分参数的查询。 作为@chrismacp指出,使用/搜索终点是简单,但有100配额成本,这可以迅速增加。
这里有一个资源考虑(CPU,内存等),如您拨打第二个电话,但我相信在很多情况下,这是一个有用的方法。
Answer 5:
您发布请求的等效实际上是在3.0的API进行搜索,而不是播放列表请求。 它更容易得来这样做的。 你需要虽然excange为通道ID的用户名。
恩。 GET https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&playlistId=UUGhCVGZ0ZSpe5hJHWyiLwHA&key= {} YOUR_API_KEY
Answer 6:
在情况下,它可以帮助任何人在这里,这是我发现的,到目前为止,似乎对我很好地工作。 我通过OAuth 2.0成员提出这个要求,这将给我经过验证的成员视频之前验证。 与往常一样,您的个人里程可能会有所不同:d
curl https://www.googleapis.com/youtube/v3/search -G \
-d part=snippet \
-d forMine=true \
-d type=video \
-d order=date \
-d access_token={AUTHENTICATED_ACCESS_TOKEN}
Answer 7:
一种替代方法可以是获取播放列表,用于经由当前的OAuth认证用户:属性矿=真
其中的OAuth的access_token检索以下鉴别: https://developers.google.com/youtube/v3/guides/authentication
https://www.googleapis.com/youtube/v3/playlists?part=id&mine=true&access_token=ya29.0gC7xyzxyzxyz
Answer 8:
请,如果你想播放的影片,更多的则300部影片不使用playlistitems.list。 你可以尝试住在谷歌链接“ https://developers.google.com/youtube/v3/docs/playlistItems/list在“实战”部分”。 它返回undefined。
我在我的项目中使用也。 它仅返回未定义。
Answer 9:
在PHP:我用pageToken属性去playlist.I的所有网页希望它可以帮助你。
//step 1: get playlist id
$response = file_get_contents("https://www.googleapis.com/youtube/v3/channels?key={$api_key}&forUsername={$channelName}&part=contentDetails");
$searchResponse = json_decode($response,true);
$data = $searchResponse['items'];
$pid = $data[0]['contentDetails']['relatedPlaylists']['uploads'];
//step 2: get all videos in playlist
$nextPageToken = '';
while(!is_null($nextPageToken)) {
$request = "https://www.googleapis.com/youtube/v3/playlistItems?key={$api_key}&playlistId={$pid}&part=snippet&maxResults=50&pageToken=$nextPageToken";
$response = file_get_contents($request);
$videos = json_decode($response,true);
//get info each video here...
//go next page
$nextPageToken = $videos['nextPageToken'];
}
Answer 10:
下面是使用谷歌官方的API节点库的一些代码( https://github.com/google/google-api-nodejs-client )
const readJson = require("r-json");
const google = require('googleapis');
const Youtube = google.youtube('v3');
// DONT store your credentials in version control
const CREDENTIALS = readJson("/some/directory/credentials.json");
let user = "<youruser>";
let numberItems = 10;
let channelConfig = {
key: CREDENTIALS.youtube.API_KEY,
part: "contentDetails",
forUsername: user
};
Youtube.channels.list(channelConfig, function (error, data) {
if (error) {
console.log("Error fetching YouTube user video list", error);
return;
}
// Get the uploads playlist Id
let uploadsPlaylistId = data.items[0].contentDetails.relatedPlaylists.uploads;
let playlistConfig = {
part : 'snippet',
maxResults : size,
playlistId : uploadsPlaylistId,
key: CREDENTIALS.youtube.API_KEY
};
// Fetch items from upload playlist
Youtube.playlistItems.list(playlistConfig, function (error, data) {
if (error) {
console.log("Error fetching YouTube user video list", error);
}
doSomethingWithYourData(data.items);
});
});
Answer 11:
在Node.js的,它可以用下面的代码来实现。
需要authKey
和channelId
作为options
对象参数。
cb
后取数据时调用回调函数。
async function fetchChannelInfo(options) {
const channelUrl = `https://www.googleapis.com/youtube/v3/channels?part=contentDetails,statistics&id=${
options.channelId
}&key=${options.authKey}`;
const channelData = await axios.get(channelUrl);
return channelData.data.items[0];
}
function fetch(options, cb) {
fetchChannelInfo(options).then((channelData) => {
options.playlistId = channelData.contentDetails.relatedPlaylists.uploads;
const paylistUrl = `https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&playlistId=${
options.playlistId
}&key=${options.authKey}`;
axios
.get(paylistUrl)
.then((response) => {
const payloadData = ;
const videoList = [];
response.data.items.forEach((video) => {
videoList.push({
publishedAt: video.snippet.publishedAt,
title: video.snippet.title,
thumbnails: thumbnails,
videoId: video.snippet.resourceId.videoId,
});
});
cb(null, videoList);
})
.catch((err) => {
cb(err, null);
});
});
}
注:Axios公司用于RESTful请求。 安装
npm install axios
Answer 12:
$.get(
"https://www.googleapis.com/youtube/v3/channels",{
part: 'snippet,contentDetails,statistics,brandingSettings',
id: viewid,
key: api},
function(data){
$.each(data.items, function(i, item){
channelId = item.id;
pvideo = item.contentDetails.relatedPlaylists.uploads;
uploads(pvideo);
});
});
上传功能可
function uploads(pvideo){
$.get(
"https://www.googleapis.com/youtube/v3/playlistItems",{
part: 'snippet',
maxResults:12,
playlistId:pvideo,
key: api},
function(data){
$.each(data.items, function(i, item){
videoTitle = item.snippet.title;
videoId = item.id;
description = item.snippet.description;
thumb = item.snippet.thumbnails.high.url;
channelTitle = item.snippet.channelTitle;
videoDate = item.snippet.publishedAt;
Catagoryid = item.snippet.categoryId;
cID = item.snippet.channelId;
})
}
);
}
Answer 13:
function tplawesome(e,t){res=e;for(var n=0;n<t.length;n++){res=res.replace(/\{\{(.*?)\}\}/g,function(e,r){return t[n][r]})}return res} $(function() { $(".form-control").click(function(e) { e.preventDefault(); // prepare the request var request = gapi.client.youtube.search.list({ part: "snippet", type: "video", q: encodeURIComponent($("#search").val()).replace(/%20/g, "+"), maxResults: 20, order: "viewCount", publishedAfter: "2017-01-01T00:00:00Z" }); // execute the request request.execute(function(response) { var results = response.result; $("#results").html(""); $.each(results.items, function(index, item) { $.get("tpl/item.html", function(data) { $("#results").append(tplawesome(data, [{"title":item.snippet.title, "videoid":item.id.videoId ,"descrip":item.snippet.description ,"date":item.snippet.publishedAt ,"channel":item.snippet.channelTitle ,"kind":item.id.kind ,"lan":item.id.etag}])); }); }); resetVideoHeight(); }); }); $(window).on("resize", resetVideoHeight); }); function resetVideoHeight() { $(".video").css("height", $("#results").width() * 9/16); } function init() { gapi.client.setApiKey("YOUR API KEY .... USE YOUR KEY"); gapi.client.load("youtube", "v3", function() { // yt api is ready }); }
这里查看完整的代码https://thecodingshow.blogspot.com/2018/12/youtube-search-api-website.html
文章来源: Youtube api v3 Get list of user's videos