任何人都可以建议如何做或在哪里学习如何做到这一点.
我已按照此 Google 视频和其他地方的说明进行操作:
前两个阶段有效,我能够获取频道/播放列表 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)
尝试获取播放列表中的第一个视频:
{
"error": {
"errors": [
{
"domain": "youtube.playlistItem",
"reason": "playlistNotFound",
"message": "Not Found",
"locationType": …Run Code Online (Sandbox Code Playgroud) 在 YouTube 上上传视频时,可以设置视频语言字段。有没有办法使用 v3 api 查询该字段以获取特定视频?
自从 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) 我们是几个软件开发人员,计划制作一些商业扩展程序或一些网站,使互联网连接速度慢或数据有限的用户可以通过 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 频道以检索播放列表元数据,如下所示:
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 对象的一部分包含在内?我可以添加任何参数来请求该数据包含在该响应中吗?
谢谢你的帮助!
当我尝试发送以下请求时:
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
我正在使用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]](https://i.stack.imgur.com/1vLWh.png)
我创建了一个网站,该网站使用 YouTube 数据 API 来获取所选用户的 YouTube 数据。这对我来说一直很有效,但现在的流量水平使得嵌入 YouTube 图像不再是 100% 可靠的。
\n我使用 YouTube 数据 API V3 获取 YouTube 横幅图像的图像 URL,然后将其添加为现有<img>元素的 src 属性。
由于该网站的流量相当高(主要是 500-3000 个实时用户),因此当我的服务器发送到许多(图像)时, YouTube 图像服务器(例如:https: //yt3.ggpht.com )开始返回 403 错误获取请求。错误看起来像这样:
\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从超出此限制的那一刻起,我的网站一段时间内不会显示任何图像(来自 YouTube 图像服务器),并且在 x 分钟后,当重置超出的限制时,图像将再次工作。我想防止这种情况发生,因为 YouTube 横幅图像对于我网站的用户体验很重要。
\n我的第一个问题:有谁知道 YouTube 图片速率限制的确切数字是多少?X时间内可以完成多少个请求?
\n我的第二个问题:有谁知道一种解决方案可以防止触发此错误并仍然向每个用户提供 YouTube 图像?
\n我有一些自己的理论,但它们会对我的服务器产生很大影响:
\n大家晚上好,我正在尝试请求节点 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) youtube-data-api ×10
youtube-api ×7
youtube ×5
google-api ×2
ios ×1
node.js ×1
oauth ×1
rss ×1