Youtube nodejs API 处理响应
Youtube nodejs API process response
我已成功通过 google nodejs API 将视频上传到 YouTube。但是我没有想出一种方法来获取已上传视频的url。当我记录我得到的数据作为响应时,它看起来像
{ status: 200,
statusText: 'OK',
headers:
{ 'x-guploader-uploadid': 'AEnB2UqicLz-FhD6KLtuvX_sZYeYQWuXoTM4FFusI6yCSGGlIdxKu3-EIneHhG04CYPqum1Uz8ISVmwIlzZqHrBJ2w-wOmbb6t5hEqOUrPnfRxirEd2tHfM',
etag: '"_gJQceDMxJ8gP-8T2HLXUoURK8c/-WggxUHM10yHZDXznWuNSxlnSYU"',
vary: 'Origin, X-Origin',
'x-goog-correlation-id': 'zaYeqX5ngEo',
'content-type': 'application/json; charset=UTF-8',
'cache-control': 'no-cache, no-store, max-age=0, must-revalidate',
pragma: 'no-cache',
expires: 'Mon, 01 Jan 1990 00:00:00 GMT',
date: 'Wed, 21 Feb 2018 15:19:39 GMT',
'content-length': '975',
server: 'UploadServer',
'alt-svc': 'hq=":443"; ma=2592000; quic=51303431; quic=51303339; quic=51303338; quic=51303337; quic=51303335,quic=":443"; ma=2592000; v="41,39,38,37,35"',
connection: 'close' },
config:
{ adapter: [Function: httpAdapter],
transformRequest: { '0': [Function: transformRequest] },
transformResponse: { '0': [Function: transformResponse] },
timeout: 0,
xsrfCookieName: 'XSRF-TOKEN',
无法看到服务器中的完整日志
上传视频的代码是
var yt = google.youtube('v3');
yt.videos.insert({
part: 'status,snippet',
resource: {
snippet: {
title: "title",
description: "description"
},
status: {
privacyStatus: 'public'
}
},
media: {
body: fs.createReadStream(file)
}
}, function(error, data){
console.log(util.inspect(data, false, null));
console.log(error);
if(error){
} else {
}
});
如何获取上传的视频URL?
这是按预期工作的。 Resource representation. When using videos.insert中没有显示视频Url,也没有提到上传成功后会提供视频link。
但是您使用 JSON 响应中的视频 ID 并将其与 https://www.youtube.com/watch?v=
URL 连接起来,例如:
https://www.youtube.com/watch?v= + videoID
然后你就有了你的视频link。
得到解决方案。在云函数中,视频对象存在于响应的数据键中。视频 ID 将为 response.data.id
我已成功通过 google nodejs API 将视频上传到 YouTube。但是我没有想出一种方法来获取已上传视频的url。当我记录我得到的数据作为响应时,它看起来像
{ status: 200,
statusText: 'OK',
headers:
{ 'x-guploader-uploadid': 'AEnB2UqicLz-FhD6KLtuvX_sZYeYQWuXoTM4FFusI6yCSGGlIdxKu3-EIneHhG04CYPqum1Uz8ISVmwIlzZqHrBJ2w-wOmbb6t5hEqOUrPnfRxirEd2tHfM',
etag: '"_gJQceDMxJ8gP-8T2HLXUoURK8c/-WggxUHM10yHZDXznWuNSxlnSYU"',
vary: 'Origin, X-Origin',
'x-goog-correlation-id': 'zaYeqX5ngEo',
'content-type': 'application/json; charset=UTF-8',
'cache-control': 'no-cache, no-store, max-age=0, must-revalidate',
pragma: 'no-cache',
expires: 'Mon, 01 Jan 1990 00:00:00 GMT',
date: 'Wed, 21 Feb 2018 15:19:39 GMT',
'content-length': '975',
server: 'UploadServer',
'alt-svc': 'hq=":443"; ma=2592000; quic=51303431; quic=51303339; quic=51303338; quic=51303337; quic=51303335,quic=":443"; ma=2592000; v="41,39,38,37,35"',
connection: 'close' },
config:
{ adapter: [Function: httpAdapter],
transformRequest: { '0': [Function: transformRequest] },
transformResponse: { '0': [Function: transformResponse] },
timeout: 0,
xsrfCookieName: 'XSRF-TOKEN',
无法看到服务器中的完整日志
上传视频的代码是
var yt = google.youtube('v3');
yt.videos.insert({
part: 'status,snippet',
resource: {
snippet: {
title: "title",
description: "description"
},
status: {
privacyStatus: 'public'
}
},
media: {
body: fs.createReadStream(file)
}
}, function(error, data){
console.log(util.inspect(data, false, null));
console.log(error);
if(error){
} else {
}
});
如何获取上传的视频URL?
这是按预期工作的。 Resource representation. When using videos.insert中没有显示视频Url,也没有提到上传成功后会提供视频link。
但是您使用 JSON 响应中的视频 ID 并将其与 https://www.youtube.com/watch?v=
URL 连接起来,例如:
https://www.youtube.com/watch?v= + videoID
然后你就有了你的视频link。
得到解决方案。在云函数中,视频对象存在于响应的数据键中。视频 ID 将为 response.data.id