代码之家  ›  专栏  ›  技术社区  ›  Richard-Degenne

频道视频列表中缺少视频

  •  3
  • Richard-Degenne  · 技术社区  · 6 年前

    我正在尝试检索有关给定YouTube频道的所有视频的信息。

    这是我的第一个请求:

    GET https://www.googleapis.com/youtube/v3/search?part=snippet&channelId={CHANNEL_ID}&maxResults=50&type=video&key={YOUR_API_KEY}
    
    {
      "kind": "youtube#searchListResponse",
      "etag": "\"XI7nbFXulYBIpL0ayR_gDh3eu1k/15j9AlxbMtzBhzffpA04ahJgv9g\"",
      "nextPageToken": "CDIQAA",
      "regionCode": "FR",
      "pageInfo": {
        "totalResults": 375,
        "resultsPerPage": 50
      },
      "items": [
        "... 50 items here ..."
      ]
    }
    

    nextPageToken ,我搜索下50个视频。

    GET https://www.googleapis.com/youtube/v3/search?part=snippet&channelId={CHANNEL_ID}&maxResults=50&pageToken=CDIQAA&type=video&key={YOUR_API_KEY}
    
    {
      "kind": "youtube#searchListResponse",
      "etag": "\"XI7nbFXulYBIpL0ayR_gDh3eu1k/7mmGfmqsGmfP8OggZWZVefQ7z6Q\"",
      "nextPageToken": "CGQQAA",
      "prevPageToken": "CDIQAQ",
      "regionCode": "FR",
      "pageInfo": {
        "totalResults": 375,
        "resultsPerPage": 50
      },
      "items": [
        "... 28 more items here ..."
      ]
    }
    

    GET https://www.googleapis.com/youtube/v3/search?part=snippet&channelId={CHANNEL_ID}&maxResults=50&pageToken=CGQQAA&type=video&key={YOUR_API_KEY}
    

    这一次,根本没有物品。

    {
      "kind": "youtube#searchListResponse",
      "etag": "\"XI7nbFXulYBIpL0ayR_gDh3eu1k/XKJQFk8Z_J6XraQ0mVCRtVWnSYc\"",
      "nextPageToken": "CJYBEAA",
      "prevPageToken": "CGQQAQ",
      "regionCode": "FR",
      "pageInfo": {
        "totalResults": 375,
        "resultsPerPage": 50
      },
      "items": [
      ]
    }
    

    是什么导致了这种行为?我的要求有问题吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Franco Rondini Will    6 年前

    YouTube Data API v3 你应该:

    步骤1:获取频道的上载播放列表

    GET https://www.googleapis.com/youtube/v3/channels?part=contentDetails&id=UCRVDPcrF_LTJo8u0bkzUL9A&key={YOUR_API_KEY}

    json "kind": "youtube#channel", "etag": "\"XI7nbFXulYBIpL0ayR_gDh3eu1k/8HOHPc1ZO5cOiePp8nFHwKA99HM\"", "id": "UCRVDPcrF_LTJo8u0bkzUL9A", "contentDetails": { "relatedPlaylists": { "uploads": "UURVDPcrF_LTJo8u0bkzUL9A", "watchHistory": "HL", "watchLater": "WL" 这个 你频道的播放列表是 UURVDPcrF_LTJo8u0bkzUL9A

    第2步:使用youtube.playlistems.list通过指定 playlistId 你频道的 uploads

    GET https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=50&pageToken={WHEN_YOU_HAVE_A_PAGETOKEN_PUT_IT_HERE}&playlistId=UURVDPcrF_LTJo8u0bkzUL9A&key={YOUR_API_KEY}


    关于问题的答案:


    关于 Search: list

    如本文所述: https://developers.google.com/youtube/v3/docs/search/list 关于搜索结果属性 pageInfo.totalResults 我直截了当地引用:

    值是一个近似值,可能不代表一个精确的值。在 此外,最大值为1000000。

    要确定的nextPageToken和prevPageToken属性值 是否显示分页链接。

    另外,通过一些调查,我确实测试了结果中“丢失”的视频,正如您所指出的,但是,当可选参数 q 是在请求中显式指定的,显然只有当所指定的滤波器值可以由所述视频的数据满足时。