标签: youtube-data-api

5
推荐指数
2
解决办法
2万
查看次数

YouTube 数据 API v3 - 返回 playlistNotFound 的 playlistItems

我已按照此 Google 视频和其他地方的说明进行操作:

  • 使用静态 API 密钥连接到 v3 API
  • 使用旧频道 ID(例如“GoogleDevelopers”)获取频道上传的播放列表 ID
  • 使用该播放列表的 playlistItems 端点来检索上传到该 YouTube 帐户的视频列表。

前两个阶段有效,我能够获取频道/播放列表 ID,但每次都会playlistItems返回(我已经使用几个不同的 YouTube 帐户对其进行了测试。)playlistNotFound

我一直在努力仔细检查是否有拼写错误 - 我无法发现请求有任何问题。

有什么想法,或者有人可以重现这个问题吗?

API 调用示例(使用 GoogleDevelopers 频道​​,如视频中所示) - 您需要生成自己的 API 密钥来测试:

https://www.googleapis.com/youtube/v3/channels?key=[myAPIkey]&forUsername=GoogleDevelopers&part=id

回复:

{
 "kind": "youtube#channelListResponse",
 "etag": "\"IHLB7Mi__JPvvG2zLQWAg8l36UU/9Uu_LJKSiIBlJOBZoZLkKcjhUUE\"",
 "pageInfo": {
  "totalResults": 1,
  "resultsPerPage": 5
 },
 "items": [
  {
   "kind": "youtube#channel",
   "etag": "\"IHLB7Mi__JPvvG2zLQWAg8l36UU/JgZIwrlCnsd1wzjssCxaCFp8mRU\"",
   "id": "UC_x5XG1OV2P6uZZ5FSM9Ttw"
  }
 ]
}
Run Code Online (Sandbox Code Playgroud)

尝试获取播放列表中的第一个视频:

https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=1&key=[myAPIkey]&playlistId=UC_x5XG1OV2P6uZZ5FSM9Ttw

{
 "error": {
  "errors": [
   {
    "domain": "youtube.playlistItem",
    "reason": "playlistNotFound",
    "message": "Not Found",
    "locationType": …
Run Code Online (Sandbox Code Playgroud)

youtube youtube-data-api

5
推荐指数
1
解决办法
1919
查看次数

Youtube v3 API 视频语言

在 YouTube 上上传视频时,可以设置视频语言字段。有没有办法使用 v3 api 查询该字段以获取特定视频?

youtube youtube-api youtube-data-api

5
推荐指数
1
解决办法
3888
查看次数

如何使用 Google App 脚本从 Youtube 搜索创建 RSS 提要?

自从 Youtube 关闭了其最新版本 API 的 RSS 搜索源以来,我一直在尝试使用 Google App Script 重新创建它们。这是我到目前为止所得到的(基于将 Twitter 小部件转换为 RSS 的教程):

function getSearches(a){
  try{
    var rss,title,link;

    title="Youtube RSS Feed";
    link="http://www.youtube.com";

    var d=ScriptApp.getService().getUrl()+"?"+a;
    rss='<?xml version="1.0"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">';
    rss+='<channel><title>'+title+'</title>';
    rss+='<link>'+link+'</link>';
    rss+='<atom:link href="'+d+'" rel="self" type="application/rss+xml" />';
    rss+='<description>Youtube RSS feed updated on '+new Date()+'.</description>';

    var results = YouTube.Search.list('id, snippet', {
      q: a,
      maxResults: 50,
      order: 'date'
    });

    for(var i = 0; i < results.items.length; i++){
      var item = results.items[i];
      rss += "<item>";
      rss += "<title>" + item.snippet.title + "</title>"; …
Run Code Online (Sandbox Code Playgroud)

rss youtube-api google-apps-script youtube-data-api

5
推荐指数
1
解决办法
5063
查看次数

使用 Youtube API 播放音频

我们是几个软件开发人员,计划制作一些商业扩展程序或一些网站,使互联网连接速度慢或数据有限的用户可以通过 YouTube 的 API 播放几乎任何视频。尽管在浏览 API 文档时,我们看到了以下部分,

Your API Client will not, and You will not encourage or create functionality for Your users or other third parties to:

    "separate, isolate, or modify the audio or video components of any YouTube audiovisual content made available through the YouTube API"

-Kuan Yong, YouTube API Team
Run Code Online (Sandbox Code Playgroud)

是否没有这样的合法方法可以让我们仅禁用视频和流音频,甚至使用商业 API 也不能?

希望得到积极答复。

youtube-api youtube-data-api

5
推荐指数
1
解决办法
8532
查看次数

YouTube API - 通过播放列表查询获取所有视频的标签

我正在查询 YouTube 频道以检索播放列表元数据,如下所示:

https://www.googleapis.com/youtube/v3/playlistItems?part=snippet%2CcontentDetails&maxResults=5&playlistId={PLAYLIST_ID}&key={API_KEY}

此查询返回频道上所有视频的数组。该数组中的每个对象都包含提供每个视频元数据的各种字段,但这些字段都不包含与视频关联的标签。我可以使用如下查询获取该数据:

https://www.googleapis.com/youtube/v3/videos?key={API_KEY}&fields=items(snippet(title,description,tags))&part=snippet&id={VIDEO_ID}

问题在于,现在我需要对第一个查询中返回的每个视频发出单独的查询。

所以,我的问题是,有没有办法可以将这些标签作为第一个查询的初始 JSON 对象的一部分包含在内?我可以添加任何参数来请求该数据包含在该响应中吗?

谢谢你的帮助!

youtube youtube-api youtube-data-api

5
推荐指数
1
解决办法
1945
查看次数

Youtube V3 - LiveChatMessages.list 最多仅返回 75 个请求

当我尝试发送以下请求时:

GET https://www.googleapis.com/youtube/v3/liveChat/messages?liveChatId={..}&part=snippet&maxResults=250key={...}
Run Code Online (Sandbox Code Playgroud)

尽管我的直播中有超过 75 条评论,但我最多只能返回 75 个结果。返回的这75条评论也是最新的75条评论。使用上面响应中的值设置nextPageToken会返回一组空注释。这几乎就像我需要一种方式来查看以前的页面。maxResults正如我在上面的网址中所做的那样,设置也没有任何作用。当我向直播添加新评论时,75 条评论的第一个条目消失,新评论显示在列表底部。

我很困惑为什么我不能收到超过 75 条评论,为什么是 75 条评论,因为文档中没有任何地方提到这一点。你们知道这是怎么回事吗?我可以根据需要提供更多信息。

youtube youtube-api live-streaming youtube-data-api youtube-livestreaming-api

5
推荐指数
1
解决办法
779
查看次数

如何从 Google YouTube Data API OAuth 2 iOS 获取刷新令牌

我正在使用OAuthSwiftpod 进行 Google API 身份验证。在回调中,刷新令牌丢失。当 Google 返回时500 Server Error,当用户经过身份验证后尝试请求新令牌时,我想存储刷新令牌,并在用户下次登录时授权用户,并检索新令牌。

这是我的代码:

           let callback = "\(Bundle.main.bundleIdentifier ?? ""):/oauth2Callback"
            _ = ytOAuth2Swift?.authorize(
                withCallbackURL: URL(string: callback)!,
                scope: "https://www.googleapis.com/auth/youtube", state: state,
                success: { credential, response, parameters in

                   print("YouTube Access_Token \(credential.oauthToken)")
                    print("YouTube efreshR_Token \(credential.oauthRefreshToken)")
                },
                failure: { error in
                    print("ERROR: \(error.localizedDescription)")
            }
            )
Run Code Online (Sandbox Code Playgroud)

这是我们得到的回复!

响应参数

根据 Google API 文档,这是应该出现的响应:

{
   "access_token":"1/fFAGRNJru1FTz70BzhT3Zg",
   "expires_in":3920,
   "token_type":"Bearer",
   "refresh_token":"1/xEoDL4iW3cxlI7yDbSRFYNG01kVKM2C-259HOF2aQbI"
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用嵌入式WebView没有运气:

[嵌入式 WebView 错误消息E[2]

oauth google-api ios youtube-data-api

5
推荐指数
1
解决办法
3046
查看次数

403. 这是一个错误 - 超出速率限制 这就是我们所知道的 - 图片来自 YouTube Data API

我创建了一个网站,该网站使用 YouTube 数据 API 来获取所选用户的 YouTube 数据。这对我来说一直很有效,但现在的流量水平使得嵌入 YouTube 图像不再是 100% 可靠的。

\n

我使用 YouTube 数据 API V3 获取 YouTube 横幅图像的图像 URL,然后将其添加为现有<img>元素的 src 属性。

\n

由于该网站的流量相当高(主要是 500-3000 个实时用户),因此当我的服务器发送到许多(图像)时, YouTube 图像服务器(例如:https: //yt3.ggpht.com )开始返回 403 错误获取请求。错误看起来像这样:

\n
\n
    \n
  1. 那\xe2\x80\x99 是一个错误。
  2. \n
\n

您的客户端无权获取 URL https://yt3.ggpht.com/Xs3rhrNjuGoNnd6aXPdZqdfiOIp5EbvN9-PYSaP8xTY1cx6Ced5No6sHNZupNrQmsidY2W-X=w2560-fcrop64=1,00005a57ffffa5a8-nd-c0xffffffff-rj-k-没有来自该服务器。(客户端IP地址:xx.xx.xxx.xxx)

\n

速率限制超出了我们所知道的\xe2\x80\x99s。

\n
\n

从超出此限制的那一刻起,我的网站一段时间内不会显示任何图像(来自 YouTube 图像服务器),并且在 x 分钟后,当重置超出的限制时,图像将再次工作。我想防止这种情况发生,因为 YouTube 横幅图像对于我网站的用户体验很重要。

\n

我的第一个问题:有谁知道 YouTube 图片速率限制的确切数字是多少?X时间内可以完成多少个请求?

\n

我的第二个问题:有谁知道一种解决方案可以防止触发此错误并仍然向每个用户提供 YouTube 图像?

\n

我有一些自己的理论,但它们会对我的服务器产生很大影响:

\n
    \n
  • 由于速率限制与 IP 地址绑定,我可以使用某种负载均衡器在多个 IP 上运行我的网站。
  • \n
  • 当第一次请求图像时,我可以将图像保存到我的服务器作为缓存机制。当再次请求图像时,我可以从我自己的服务器提供它,这可以防止超出限制。为了防止更新的 YouTube 图像不显示,我必须每隔 …

rate-limiting youtube-data-api

5
推荐指数
2
解决办法
4350
查看次数

来自 googleapi 节点模块的 google.youtube 不是一个函数?

大家晚上好,我正在尝试请求节点 js 中Youtube API从字符串 url获取视频JSON。我阅读了 youtube api,它几乎引导我编写以下代码。哪个不起作用,因为google.youtube is not a function。主要问题似乎来自 videoListById 函数。google.youtube 应该从googleapi 节点模块导入,如 api 指南中所示。

var fs = require("fs");
var readline = require("readline");
var google = require("googleapis");
var googleAuth = require("google-auth-library");

// If modifying these scopes, delete your previously saved credentials
// at ~/.credentials/google-apis-nodejs-quickstart.json
var SCOPES = ["https://www.googleapis.com/auth/youtube.force-ssl"];
var TOKEN_DIR = "src/google/.credentials/";
var TOKEN_PATH = TOKEN_DIR + "google-api-tokens.json";

getYoutubeVideo("https://www.youtube.com/watch?v=_zJ1b-atqpA");

function getYoutubeVideoId(url) {
  return url.split("=")[1];
}

// Load client …
Run Code Online (Sandbox Code Playgroud)

google-api youtube-api node.js youtube-data-api

5
推荐指数
1
解决办法
600
查看次数