我正在使用youtube api.当我点击此网址时" https://www.googleapis.com/youtube/analytics/v1/reports?ids=channel%3D%3DMINE&start-date=2015-01-01&end-date=2016-01-31&metrics=likes% 2Cdislikes&key = {API Key} "
它给了401
{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Login Required",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "Login Required"
}
}
Run Code Online (Sandbox Code Playgroud)
但是我在浏览器中点击了" https://developers.google.com/apis-explorer/?" 它工作正常.
如何使第一个请求起作用?
google-api google-oauth youtube-data-api youtube-analytics-api
我在尝试执行youtube analytics API时收到错误消息.
发生服务错误:调用GET时出错 https://www.googleapis.com/youtube/analytics/v1/reports?ids=channel%3D%3DUCaayLD9i5x4MmIoVZxXSv_g&start-date=2016-08-01&end-date=2016-08-07&metrics= views&dimensions = 7DayTotals:(403)禁止
这是我的代码:
require_once __DIR__.'\google-api-php-client-1-master\src\Google\autoload.php';
require_once __DIR__.'\google-api-php-client-1-master\src\Google\Client.php';
require_once __DIR__.'\google-api-php-client-1-master\src\Google\Service\YouTube.php';
session_start();
$key = file_get_contents('mykey.json');
$OAUTH2_CLIENT_ID = 'xx-xx-xx';
$OAUTH2_CLIENT_SECRET = 'xxx';
$scope = array("https://www.googleapis.com/auth/youtube.force-ssl", "https://www.googleapis.com/auth/youtubepartner-channel-audit", "https://www.googleapis.com/auth/youtube", "https://www.googleapis.com/auth/youtube.readonly", "https://www.googleapis.com/auth/yt-analytics.readonly", "https://www.googleapis.com/auth/yt-analytics-monetary.readonly","https://www.googleapis.com/auth/youtubepartner");
$client = new Google_Client();
$client->setClientId($OAUTH2_CLIENT_ID);
$client->setClientSecret($OAUTH2_CLIENT_SECRET);
$client->setAccessType('offline');
$client->setAccessToken($key);
$client->setScopes($scope);
if ($client->getAccessToken()) {
//Check to see if our access token has expired. If so, get a new one and save it to file for future use.
if($client->isAccessTokenExpired()) {
//refresh your access token if it's expired
$newToken = …
Run Code Online (Sandbox Code Playgroud) 我知道 Youtube 分析 API 中的“唯一性”指标已被弃用。但是,根据https://support.google.com/youtube/answer/7577916?hl=en,新的 youtube 工作室测试版显示了某种派生的“唯一身份观看者”指标。 确实,我可以通过单击“查看此指标”分析”,然后通过 Youtube Studio Beta 网络界面“覆盖观看者”。
似乎应该有一种方法可以通过 Youtube 分析 API 获取此指标,但我找不到有关如何执行此操作的文档。这是可能的,如果是,如何?
根据Youtube Analytics API 的延迟,来自 YouTube 分析 API 的数据应该每天更新。我正在尝试使用https://www.googleapis.com/youtube/analytics/v1/reports
端点为视频提取时间数据。为此,我发送如下参数:
{
'dimensions': 'day',
'end-date': '2015-06-02',
'filters': 'video==MY_VIDEO_ID',
'ids': 'channel==MINE',
'metrics': 'views,uniques,averageViewDuration,averageViewPercentage,comments,likes,dislikes,shares,subscribersGained,subscribersLost',
'prettyPrint': 'false',
'start-date': u'2013-03-18'
}
我start-date
将视频的上传日期设置end-date
为今天,但我只能在几天前获取数据。例如,上面的请求2015-05-31
作为数据存在的最后日期返回。end-date
如果范围是独占的,我曾尝试在未来设置额外的一天。根据Youtube Analytics API 的延迟,我应该将数据提高到2015-06-01
.
Analytics API 现在是否有额外的延迟一天?我的查询有问题吗?某处是否有一个规范页面,其中包含类似于此Adwords 答案的这些延迟的数字?
我需要使用YouTube Analytics and Reporting Api从视频中提取信息.
当我使用Google帐户登录YouTube时,我可以访问多个YouTube品牌帐户.
使用"试用"来测试API,我只能在切换到此频道所属的品牌帐户时检索频道的数据,否则我会收到403 - 禁止错误.
有没有办法使用我用来登录的Google帐户提取数据?因为一旦我在开发者控制台中创建凭据,它们就会与Google帐户相关联,而不会与品牌帐户相关联.
我的Google帐户在品牌帐户中拥有管理员角色.
我已经搜索了要在请求中使用的onBehalfOfContentOwner字段,但我不知道如何获取此ID,我不确定这是否适用于我的情况,因为我们正在讨论品牌帐户,正确我,如果我错了.
我对访问Youtube Analytics API以获取随机youtube频道存在问题.
使用以下范围成功授权后:
我保存token
并refresh token
在数据库中.一切都运作良好一段时间.在我的应用发出请求后一段时间(例如三个月),Google返回403:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "forbidden",
"message": "Forbidden"
}
],
"code": 403,
"message": "Forbidden"
}
}
Run Code Online (Sandbox Code Playgroud)
但仅适用于Youtube Analytics API,Youtube Data API中的其他端点可以正常使用此令牌.这种情况发生在随机账户(渠道)上.此频道的所有者未撤消对我的应用的访问权限,未更改帐户密码等.
此问题影响我应用程序中所有渠道的大约40%(Youtube Analytics API停止工作的时间不同,从获取OAuth2令牌后的1到6个月).然后我必须定期向他们发送一个新的授权网址.
问题出在哪儿?
这是我生成一个auth url并发出请求的方式:
身份验证网址:
flow = client.flow_from_clientsecrets(
secret_file_path,
scope=["https://www.googleapis.com/auth/youtube.readonly",
"https://www.googleapis.com/auth/yt-analytics.readonly"],
redirect_uri=redirect_url,
prompt="consent"
)
flow.params["access_type"] = "offline"
url = flow.step1_get_authorize_url(state=state)
Run Code Online (Sandbox Code Playgroud)统计要求:
auth = client.OAuth2Credentials.from_json(credentials_from_db)
http_auth = auth.authorize(httplib2.Http())
api = discovery.build("youtubeAnalytics", "v1", http=http_auth,
cache_discovery=False)
api.reports().query(
ids="channel==%s" % channel_id,
metrics="estimatedMinutesWatched",
dimensions="video",
start_date=start_date,
end_date=end_date, …
Run Code Online (Sandbox Code Playgroud)python google-api youtube-api google-api-python-client youtube-analytics-api
我想定期运行一个应用程序(在 AWS Lambda 上),它使用 Youtube 的报告 API获取报告并将报告存储在数据库中。我是 Youtube 频道的所有者。
但是,我在设置授权时遇到了问题。文档提到了OAuth的许多流程。其中,服务帐户流程似乎很适合这里,因为我没有尝试访问任何其他用户的数据,而且我的应用程序没有 UI。但是,他们提到“YouTube Reporting API 和 YouTube Analytics API 不支持此流程”。对于其他流程,即服务器端和客户端,看起来我需要一个 UI 应用程序。
我在本地运行了他们的Java 代码示例,它打开了浏览器进行授权。
我想知道是否可以在没有 UI/浏览器支持的情况下完成授权。这似乎是一个应该支持的常见用例。
这个相关的堆栈溢出答案提到“相反,创建和使用网络客户端谷歌凭据。存储和使用从流程中生成的令牌。”。如果我理解正确,我需要从谷歌开发控制台生成客户端 ID 和客户端密码,然后可能使用oauth 游乐场生成访问令牌。但是,此令牌将在 24 小时内过期。我可以不断刷新令牌,但这似乎是一种解决方法。
如果不支持,我正在考虑的另一种方法是我的应用程序发送一封带有身份验证链接的电子邮件,并在电子邮件收件人打开链接并登录后继续运行。我想知道获取该链接是否可行谷歌的 oauth 库。
注意:我没有使用 Google 的 App Engine 或 Compute Engine。
java google-api-java-client google-oauth service-accounts youtube-analytics-api
最重要的 KPI 之一似乎无法通过 Youtube-Analytics-API 获得。我无法获得已向用户显示的缩略图印象总数。这样我就可以使用来自某些流量源(YT_SEARCH 等)的视图来聚合展示点击率。不过,这些文档似乎没有提供任何对我有帮助的东西。
Youtube-Reporting-API 似乎与 Youtube-Analytics-API 具有相同的指标。所以我想尝试使用 Reporting-API 对我也没有帮助。
有没有办法以编程方式检索缩略图印象数或印象点击率?有什么解决办法吗?我错过了一些明显的东西吗?或者是否打算很快通过 Analytics-API 提供该指标?
有一些非常古老的、未答复的帖子可能与我的问题有关:
目前,我正在通过以下请求检索每日订阅者信息:
var videoOptions = {
'part': 'snippet,contentDetails,statistics',
'id': videoIds
};
// Send request
youtube.videos.list(videoOptions, (err, videoDetails) => {});
Run Code Online (Sandbox Code Playgroud)
我的问题是有没有办法通过数据 API 或分析 API 获取历史订阅者信息?
我发现有一种方法可以查看一段时间内潜艇的增加或减少,但我不知道要与之比较的基础是什么:
https://www.googleapis.com/youtube/analytics/v1/reports?ids=channel%3D%3D{channelID}&start-date=2017-07-31&end-date=2017-08-01&&metrics=subscribersLost%2CsubscribersGained
Run Code Online (Sandbox Code Playgroud) 我可以从YouTube Analytics API访问展示和展示点击率吗?这些指标是新指标。我看到了以下文件。 https://productforums.google.com/forum/#!topic/youtube/huFTZ7HzePE
但是,我在YouTube Analytics API中找不到这些指标。 https://developers.google.com/youtube/analytics/metrics Plese教我有关如何从API访问展示次数,印象数点击率的信息。
谢谢-桑岛
youtube-api ×5
google-api ×3
google-oauth ×2
youtube ×2
impressions ×1
java ×1
php ×1
python ×1