标签: youtube-data-api

youtube data api v3 php搜索分页?

我正在尝试使用youtube api v3 php搜索...

我第一次使用这个API我是初学者...

我有3个问题;

1)如何在搜索列表下面显示分页编号?(每页50条结果)

2)视频持续时间如何显示在列表中?(3分20秒:秒)

3)如何订购viewCount

if ($_GET['q']) {
  require_once 'src/Google_Client.php';
  require_once 'src/contrib/Google_YoutubeService.php';
  $DEVELOPER_KEY = 'my key';

  $client = new Google_Client();
  $client->setDeveloperKey($DEVELOPER_KEY);
  $youtube = new Google_YoutubeService($client);

  try {
    $searchResponse = $youtube->search->listSearch('id,snippet', array(
      'q' => $_GET['q'],
      'maxResults' => 50,
      'type' => "video",
    ));

  foreach ($searchResponse['items'] as $searchResult) {

    $videos .= '<li style="clear:left"><img src="'.$searchResult['snippet']['thumbnails']['default']['url'].'" style="float:left; margin-right:18px" alt="" /><span style="float:left">'.$searchResult['snippet']['title'].'<br />'.$searchResult['id']['videoId'].'<br />'.$searchResult['snippet']['publishedAt'].'<br />'.$item['contentDetails']['duration'].'</span></li>';
}




$htmlBody .= <<<END
    <ul>$videos</ul>
END;
  } catch (Google_ServiceException $e) {
    $htmlBody .= sprintf('<p>A service error occurred: …
Run Code Online (Sandbox Code Playgroud)

youtube youtube-api youtube-data-api

6
推荐指数
1
解决办法
1万
查看次数

如果您不是它的所有者,YouTube API是否禁止下载视频字幕?

在我看来,如果您不是它的所有者,YouTube API 禁止下载视频字幕:

视频的字幕只能由该视频的所有者创建,检索,修改和删除.

上面的链接会导致YouTube API v2.0的文档被弃用,但似乎在v3.0中此政策保持不变.如果您尝试下载视频的标题,则会收到以下403错误:

与请求关联的权限不足以下载字幕轨道.该请求可能未得到适当授权,或者视频订单可能未启用此标题的第三方贡献.


在同一时间,你只需要API_KEY到列出任何的YouTube视频字幕没有任何授权(实例化对象的YouTube在此官方例子):

youtube = new YouTube.Builder(HTTP_TRANSPORT, JSON_FACTORY,
        new HttpRequestInitializer() {
            public void initialize(HttpRequest request)
                throws IOException {
            }
        }).setApplicationName("youtube-cmdline-search-sample").build();

CaptionListResponse captionListResponse = youtube
    .captions()
    .list("snippet", "jNhtbmXzIaM")
    .setKey(API_KEY)
    .execute();

List<Caption> captions = captionListResponse.getItems();
CaptionSnippet snippet;
for (Caption caption : captions) {
    snippet = caption.getSnippet();
    System.out.println("ID: " + caption.getId());
    System.out.println("Name: " + snippet.getName());
    System.out.println("Language: " + snippet.getLanguage());
    System.out.println();
}
Run Code Online (Sandbox Code Playgroud)

那么YouTube API …

java youtube-api youtube-data-api

6
推荐指数
0
解决办法
959
查看次数

Youtube Quota超出异常,但实际上并非如此

我们正在使用youtube数据api v3并且已经有一段时间没有任何问题了.最近,我们得到了这个403异常:

The request cannot be completed because you have exceeded your <a href="/youtube/v3/getting-started#quota">quota</a>.
Run Code Online (Sandbox Code Playgroud)

在谷歌开发者的控制台中,它表示我们仍然处于配额之下(目前它表示"单位/天为163,817的50,000,000").

我错过了有关配额如何运作的一些信息吗?

youtube youtube-api youtube-data-api

6
推荐指数
1
解决办法
2693
查看次数

如何在Youtube v3 Data API中使用Etags?

我正在构建一个扩展,它提出了很多请求.我正在处理的功能是显示观看播放列表所需的总时间.给定大小为1000的播放列表,我必须发出40个请求才能找到这些信息(50个视频在一个时间限制,第一次调用/ v3/playlistItems用于一组videoID,第二次调用/ v3 /视频用于持续时间信息) .据我所知,只有一个播放列表,我失去600个配额.每页加载.我知道,没有什么可以解决的,因为我每天允许50,000,000配额,但我想尽早优化.这也是一个速度问题.只需要一段时间就可以获得播放列表长度.

现在,ETags.出于某种原因,每当我向youtube的视频或播放列表项目的数据API发出请求时,我都会得到一个全新的Etag(大部分时间,我都有过返回相同ETag的情况),无论播放列表如何(我没有试过私人播放列表,还没有OAuth呢).我假设原因是播放列表中的某些地方正在发生变化,导致新的Etag非常快.看法?PlaylistItems甚至不返回视图!

以下是对通心粉播放列表的示例API调用.ETag总是与众不同!如果他们不工作,我该如何使用它们?它们是特定的,视频长度无法在请求之间发生变化.api键被省略,因为您可以创建自己的api密钥.

```
Playlist Items, give me video id's, page tokens, and Etag for playlist for items 100-150
https://www.googleapis.com/youtube/v3/playlistItems?part=contentDetails&maxResults=50&playlistId=PLF-hTvh6KCehzImlI2pAKsOFPR62QZTv-&fields=etag%2Citems%2FcontentDetails%2CnextPageToken%2CprevPageToken&key={YOUR_API_KEY}&pageToken=CGQQAA

Videos, give me durations and Etag for these video ids
https://www.googleapis.com/youtube/v3/videos?part=contentDetails&id=SswxpqGX1F0,3Hy5BuFTBbI,ZnlW1fSXZZM,8sb_YOrReZ4,6IN_mupBjh8,VzoqsRLY5Qk,5m8H9YrPvPA,JdRbtGdR68E,hEzPBiYPsDU,bJuioKFYv-c,1N8O8OOG2_U,QDgqSL8nU5U,gP4gB45Z52M,pI1oB2y9c0M,WZGn5Vh_mc4,A0KpbS5WjSU,b0yoIOX8Bk0,5Y7iQt7vtOE,qIijCwjUApQ,RgHjqvznjxg,QzceROWtn5o,8z0VnMQFGR8,5olHoTWB1Hw,vz0T59Ql7fQ,LhktiZYQraU,WIuuZOD9ahI,rwEHW6GRH1Q,FjT1BpKvfgo,FRZL2yaZyZk,U5-vjCDwDUU,b21Lj9bfDWc,yox3-U7r_i8,rXJ5ph83Vrs,nXrk2finMcA,VfagTkQWHuI,K_ZaRAtZQOg,_JIcREsn9pU,y9WGvudeDAM,O08jNtrieI4,9UkEzW1AY7Y,jOaBdnYsobg,y7dSbhc-8h0,IfpPiCGcF8g,2rTRmb9nKbY,bHgv3A26O6Y,hFQmV-zvcbM,Osc4y45oQxw,GHusS6Yd5A8,T2Z3CuUWUQc,OPV-DopMqxs&fields=etag%2Citems%2FcontentDetails%2Fduration&key={YOUR_API_KEY}
```
Run Code Online (Sandbox Code Playgroud)

我想缓存这些数据.我正在考虑为播放列表的总视频制作额外的开始请求,因为这与播放列表的总时间长度直接相关.但这感觉就像很多逻辑.添加/删除了哪些视频?多少?如果它被添加到开头,我想要优化,我必须将前50个视频ID与我的缓存视频ID持续时间进行比较.如果它在中间某处改变了,我必须继续查询.也许缓存别的东西让这更容易?多个播放列表可以拥有相同的视频,播放列表可以不止一次拥有相同的视频,我不知道.也许没有办法查询整个播放列表,也许我应该将调用缓存到/ v3/videos.问题是我想优化对/ v3/playlistItems的调用,因为它是长的(占/ 3 /视频的3倍).

我的主要问题是:我如何缓存以优化获取播放列表的长度,我该怎么做,以及ETag的内容是什么?

javascript etag caching youtube-data-api

6
推荐指数
1
解决办法
1314
查看次数

每当我提出请求时,Youtube oAuth都会授权授权窗口

这是我为youtube api获取访问令牌和刷新令牌的工作流程.我正在生成带参数的授权网址

access_type = offline,response_type = code,redirect_uri = uri,scope = scopes,state = state,client_id = id

从授权网址我收到验证码,然后我使用这些参数使用授权网址中的代码生成另一个网址来获取access_token和refresh_token

代码:code,client_id:CLIENT_ID,client_secret:CLIENT_SECRET,redirect_uri:serviceCallback,state:state.callback,grant_type:"authorization_code"

据我所知,用户应该只完成一次这个过程,然后它应该是自动的.我的问题是我总是需要完成授权,并且我总是获得新的access_token和refresh_token,而不是根据请求强制它.

这是我获取身份验证网址的代码部分

getAuthUrl: function(scopes, applicationCallback, serviceCallback, siteId,
selectChannel, websiteUrl) {
var requestedClientId = CLIENT_ID;
var scopess =
  "https://www.googleapis.com/auth/yt-analytics.readonly https://www.googleapis.com/auth/youtube.readonly https://www.googleapis.com/auth/userinfo.email " +
  scopes.replace(",", " ");

return "https://accounts.google.com/o/oauth2/auth?" +
  "access_type=offline" +
  "&response_type=code" +
  /*"&approval_prompt=auto" +*/
  "&redirect_uri=" + serviceCallback +
  "&scope=" + scopes +
  "&state=" + JSON.stringify({
    service: NAME,
    callback: applicationCallback,
    scopes: scopes,
    siteId: siteId,
    selectChannel: selectChannel,
    websiteUrl: websiteUrl
  }) +
  "&client_id=" + requestedClientId;
  }, …
Run Code Online (Sandbox Code Playgroud)

oauth youtube-api oauth-2.0 google-oauth youtube-data-api

6
推荐指数
1
解决办法
1629
查看次数

了解YouTube配额限制:每天总计还是每100秒?

YouTube施加以下配额费用限制(列出了默认值):

  • 每天查询= 1百万个单位
  • 每用户每100秒的查询= 300,000个单位/ 100秒/用户
  • 每100秒查询数= 3,000,000

最后限制的含义是什么?每100秒的配额如何超过每天的总配额?

youtube youtube-api quota youtube-data-api

6
推荐指数
1
解决办法
1753
查看次数

评论ID已经改变

我们正在请求来自youtubes api的评论.直到今天早些时候,一切都按预期工作.

https://www.googleapis.com/youtube/v3/commentThreads https://developers.google.com/youtube/v3/docs/commentThreads/list

但是几个小时前,似乎所有评论都发生了变化.如果我们请求相同的数据,则返回相同注释的新ID.

昨天返回值的示例:

{
        "snippet" : {
            "updatedAt" : "2017-12-02T15:25:18.000Z",
            "publishedAt" : "2017-12-02T15:25:18.000Z",
            "likeCount" : 0,
            "viewerRating" : "none",
            "canRate" : true,
            "textOriginal" : "Wer cool wenn ihr das auch bei der    linie 9 nach königsforst  machen könnt",
            "textDisplay" : "Wer cool wenn ihr das auch bei der    linie 9 nach königsforst  machen könnt",
            "videoId" : "HM9HTudhtI8",
            "authorChannelId" : {
                "value" : "UC65X_3QoSnkPiKSnuCX1Eqg"
            },
            "authorChannelUrl" : "http://www.youtube.com/channel/UC65X_3QoSnkPiKSnuCX1Eqg",
            "authorProfileImageUrl" : "https://yt3.ggpht.com/-pC2fJDx46os/AAAAAAAAAAI/AAAAAAAAAAA/koDhQIPnvF0/s28-c-k-no-mo-rj-c0xffffff/photo.jpg",
            "authorDisplayName" : "Dani stayler 04"
        },
        "id" …
Run Code Online (Sandbox Code Playgroud)

youtube-api youtube-data-api

6
推荐指数
0
解决办法
194
查看次数

使用YouTube API和Alamofire插入评论

感谢您抽时间阅读.我对如何使用YouTube API插入评论感到困惑.我是使用API​​的新手,所以我不太清楚他们在文档中要做的事情.

我已经验证使用用户谷歌登录功能适用于iOS与范围

"https://www.googleapis.com/auth/youtube.force-ssl"
Run Code Online (Sandbox Code Playgroud)

这是插入评论所必需的.但是现在,我必须插入评论并且(就像我说的那样)我不明白该怎么做,因为我必须在请求体中提供资源.我正在使用Alamofire作为请求,而Swift 4作为我的语言.如果有人能帮助我,我将非常感激.

youtube-api youtube-data-api swift alamofire

6
推荐指数
1
解决办法
265
查看次数

Channel的List API不会返回品牌设置

即使明确要求,Youtube的频道列表API也不会返回brandingSettings:https://www.googleapis.com/youtube/v3/channels?part = brandingSettings &id = UBJ -gg-0xws8J6PKfY6DBLzg&key = 返回此信息:

{
 "kind": "youtube#channelListResponse",
 "etag": "\"XI7nbFXulYBIpL0ayR_gDh3eu1k/hqQ5f5obTKYUNURbAaBo87W-LAw\"",
 "pageInfo": {
  "totalResults": 1,
  "resultsPerPage": 1
 },
 "items": [
  {
   "kind": "youtube#channel",
   "etag": "\"XI7nbFXulYBIpL0ayR_gDh3eu1k/EEjleDhJYQadoLAXlnHS41MfcRk\"",
   "id": "UCJ-gg-0xws8J6PKfY6DBLzg"
  }
 ]
}
Run Code Online (Sandbox Code Playgroud)

我想知道这是一个问题,还是永久改变?

youtube youtube-api youtube-data-api

6
推荐指数
1
解决办法
221
查看次数

YouTube数据API已启用,但返回“未配置访问权限”错误

我基于此示例(https://developers.google.com/youtube/v3/quickstart/js)在内部使用的Web解决方案来检索YouTube视频统计信息现在无法正常工作。不知道确切的时间是什么,但是几个月前它就可以工作了。

我现在尝试运行未经编辑的示例代码(当然,除了调整CLIENT_ID之外),而且我得到的是完全相同的错误:

{
    "domain": "usageLimits",
    "reason": "accessNotConfigured",
    "message": "Access Not Configured. YouTube Data API has not been used in project 123 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/youtube.googleapis.com/overview?project=123 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.",
    "extendedHelp": "https://console.developers.google.com/apis/api/youtube.googleapis.com/overview?project=123" }   ],   "code": 403,   "message": "Access Not Configured. YouTube Data API has not been used in project 123 before or it is disabled. …
Run Code Online (Sandbox Code Playgroud)

youtube-data-api

6
推荐指数
2
解决办法
1198
查看次数