【问题标题】:Youtube nodejs API process responseYoutube nodejs API 进程响应
【发布时间】:2018-08-01 06:04:09
【问题描述】:

我已设法通过 google nodejs API 将视频上传到 YouTube。但是我没有找到一种方法来获取已上传的视频的网址。当我记录我作为响应得到的数据时,它看起来像

{ 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 {

                }
              });

如何获取上传的视频地址?

【问题讨论】:

  • 记录响应并检查。它应该在响应中
  • 我已经记录了响应,它显示了一个包含状态:200、状态文本:OK 等的长数据。其中还包含标题、配置和请求对象

标签: node.js google-api youtube-api youtube-data-api google-api-nodejs-client


【解决方案1】:

这是按预期工作的。 Resource representation 中没有指明视频网址。使用videos.insert时,没有提到上传成功后会提供视频链接。

但是,您使用 JSON 响应中的视频 ID 并将其与 https://www.youtube.com/watch?v= URL 连接起来,例如:

https://www.youtube.com/watch?v= + videoID

那么你就有了视频链接。

【讨论】:

  • 我的回复没有名为 id 的字段。我没有得到视频资源作为响应,但我得到了一个 http 响应对象作为响应
【解决方案2】:

找到解决方案。在云功能中,视频对象存在于响应的数据键中。视频 ID 将为 response.data.id

【讨论】:

    猜你喜欢
    • 2012-07-09
    • 2016-05-15
    • 2018-08-04
    • 1970-01-01
    • 1970-01-01
    • 2020-09-29
    • 2017-04-21
    • 2021-07-03
    • 2014-06-29
    相关资源
    最近更新 更多