任何人都可以建议如何做或在哪里学习如何做到这一点.
我正在尝试使用YouTube API来获取视频字幕,但示例不完整:https://developers.google.com/youtube/v3/code_samples/python#create_and_manage_youtube_video_caption_tracks
具体来说,它有这个评论+代码:
# Trusted testers can download this discovery document from the developers page
# and it should be in the same directory with the code.
with open("youtube-v3-api-captions.json", "r") as f:
doc = f.read()
return build_from_document(doc, http=credentials.authorize(httplib2.Http()))
Run Code Online (Sandbox Code Playgroud)
但是根本不清楚youtube-v3-api-captions.json文件的位置.
它在哪里可以找到?
我正在使用Youtube V3 Api和这里的代码片段来从我的YouTube频道中提取前十个视频.(同样的查询在google API资源管理器@ https://developers.google.com/apis-explorer/中完美运行)
url_start = "https://www.googleapis.com/youtube/v3/videos?" + \
"order=viewCount&part=snippet&forMine=true" + \
"&type=video&maxResults=10&key=MY_API_KEY"
data = requests.get(url_start).json()
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
{u'error': {u'code': 400,
u'message': u'No filter selected.',
u'errors':[{u'locationType': u'parameter',
u'domain': u'youtube.parameter',
u'message': u'No filter selected.',
u'reason': u'missingRequiredParameter',
u'location': u''}]}}
Run Code Online (Sandbox Code Playgroud)
我知道密钥是有效的,因为如果我可以在没有forMine的情况下执行相同的查询
https://www.googleapis.com/youtube/v3/search?part=snippet&key=MY_API_KEY
Run Code Online (Sandbox Code Playgroud)
我从youtube获得了整体热门视频.有没有更好的方法来做到这一点或解决方法?
对于一个项目,我必须列出来自youtube用户帐户的所有视频.我收到了所有的公开视频,但是当我在oauth之后拨打api电话时,我仍然只收到公开视频.
不公开的视频是从搜索引擎和用户公共页面隐藏的视频.我确信有一种方法可以检索它.
这是我的代码
var request = gapi.client.youtube.playlistItems.list({
playlistId: listId,
part: 'snippet,status',
maxResults: 25,
pageToken: nextPageToken
});
request.execute(function(response) {
console.log(response)
nextPageToken = response.nextPageToken
if ('error' in response) {
displayMessage(response.error.message);
} else {
if ('items' in response) {
console.log(response.items)
var a = [];
for(var i in response.items){
var d = {
title: response.items[i].snippet.title,
videoId: response.items[i].snippet.resourceId.videoId,
publishedAt: response.items[i].snippet.publishedAt
}
a.push(d);
$("#message").append(JSON.stringify(d))
}
} else {
displayMessage('There are no videos in your channel.');
}
}
});
Run Code Online (Sandbox Code Playgroud) 我正在开发包含在Youtube上播放视频功能的iOS应用.
我跟着yt-direct-lite-ios的示例项目.该项目需要客户端ID和客户端密钥
我去console.developers.google.com创建客户端ID(使用iOS客户端).但是,我只能找到客户端ID.那么我在哪里可以从这里获得客户机密?
我也检查了这篇文章,但仍然不适合我.
提前致谢.
我正在尝试使用OAuth2授权使用YouTube数据API.我想为Android编写一个简单的客户端,例如,获取用户订阅列表,播放列表等.问题是我尝试的每种方法(例如HTTP请求https://www.googleapis.com/youtube/v3/subscriptions或YouTube库com.google.apis:google-api-services-youtube:v3-rev120-1.19.0),我得到相同的错误:
401凭证无效
我这样做了:
在这里,我有很多问题.
因为当我看到示例代码时,例如:
GoogleAccountCredential credential = GoogleAccountCredential.usingOAuth2(context.getApplicationContext(), Arrays.asList(SCOPES));
credential.setSelectedAccountName(accountName);
YouTube youtube = new YouTube.Builder(new NetHttpTransport(),
new JacksonFactory(), credential).setApplicationName(context.getString(R.string.app_name)).build();
Run Code Online (Sandbox Code Playgroud)
或者使用AccountManager并获取令牌
accountManager.getAuthToken(userAccount, "oauth2:" + mScope, null, (Activity) mContext,
new OnTokenAcquired(), null);
where mScope="https://gdata.youtube.com"
Run Code Online (Sandbox Code Playgroud)
然后以这种方式使用它
https://www.googleapis.com/youtube/v3/subscriptions?part=snippet&maxResults=10&mine=true&key={here is my key}&access_token= ya29.bgJa5J8LHHu0Mu3P87mbPY9gfhSFzWUHh8gCw022FC6yfMO6GfVHveYr_BG1-HnWF-jpd-IDcGGVrF3gEf4UhSHPSrV76RAwqd4V17ixn72s1Xl6a0wQ4FVDz3cEZjUEN80o
Run Code Online (Sandbox Code Playgroud)
我每次都得到相同的authError错误(简而言之):
"code":401,
"message":"凭证无效"
我做错了什么?如何在变体1和2中使用client_id.是否有必要?因为我认为这就是为什么它不起作用的原因.
例如,在嵌入此YouTube视频时,我们会收到This video contains content from... who has blocked it from display on the website错误消息.
如何使用API查找视频是否被阻止?
我找到的最近参数是status和contentDetails:
GET https://www.googleapis.com/youtube/v3/videos?part=status&id=dYQ2IyMuPes&key={YOUR_API_KEY}
Run Code Online (Sandbox Code Playgroud)
哪个没有返回有关限制的指示:
"contentDetails": {
"duration": "PT2M",
"dimension": "2d",
"definition": "hd",
"caption": "false",
"licensedContent": true,
"projection": "rectangular"
},
"status": {
"uploadStatus": "processed",
"privacyStatus": "public",
"license": "youtube",
"embeddable": true,
"publicStatsViewable": false
}
Run Code Online (Sandbox Code Playgroud) 我想通过点击按钮将录制的视频从ios app直接上传到youtube.为此,我尝试了一些第三方库,如: https://github.com/youtube/yt-direct-lite-iOS https:/ /github.com/NSRover/YouTube-API-Demo
但两者都是3年左右,即使在示例代码中也显示了大量丢失的文件.一个接一个的文件丢失了.有没有其他方法可以做到这一点.请帮忙
即使设置了"type = video",Youtube数据api也错误地返回一个频道.
例如,查询" https://www.googleapis.com/youtube/v3/search?q=coldplay&type=video&key=API_KEY&part=snippet&maxResults=10&fields=items(snippet/title,id/videoId) "会返回以下结果:
{
"items": [
{
"id": {
"videoId": "YykjpeuMNEk"
},
"snippet": {
"title": "Coldplay - Hymn For The Weekend (Official Video)"
}
},
{
"id": {
"videoId": "z9BPMjL44Aw"
},
"snippet": {
"title": "Coldplay & Big Sean - Miracles (Someone Special) - Official Lyric Video"
}
},
{
"id": {
"videoId": "FM7MFYoylVs"
},
"snippet": {
"title": "The Chainsmokers & Coldplay - Something Just Like This (Lyric)"
}
},
{
"id": {
"videoId": "KnLNG0WnGsI"
},
"snippet": { …Run Code Online (Sandbox Code Playgroud) 我正在测试Youtube Data API V3以通过查询字词获取列表视频,然后在iframe中播放它们.
我收到这个错误:
www-embed-player.js:306 GET https://googleads.g.doubleclick.net/pagead/id?exp=nomnom net::ERR_BLOCKED_BY_CLIENT
经过一些调试和谷歌搜索,我发现这个错误通常是由广告拦截器引起的.然后我在Chrome上禁用了我,然后重新测试了api通话.我不再看到原始错误,:ERR_BLOCKED_BY_CLIENT但检索到的视频无法播放.玩家消息:An error occurred, please try again later.
下面是代码.为简单起见,JS在HTML文件中.
任何帮助赞赏!
<!doctype html>
<html lang="en">
<head>
<title>Youtube API Test </title>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css" integrity="sha384-PsH8R72JQ3SOdhVi3uxftmaW6Vc51MKb0q5P2rRUpPvrszuE4W1povHYgTpBfshb"
crossorigin="anonymous">
</head>
<style>
body {
background-color: #0F0F0F;
}
button.btn.btn-primary {
background-color: #E12523;
border-color: #E12523;
}
div.jumbotron {
background-color: #292929;
color: #B3B3B3;
}
hr.my-2 {
border: 1px solid #B3B3B3;
}
</style> …Run Code Online (Sandbox Code Playgroud) youtube-data-api ×10
youtube ×5
youtube-api ×5
ios ×2
android ×1
api ×1
google-api ×1
google-oauth ×1
iframe ×1
javascript ×1
privacy ×1
python ×1
xcode ×1