【问题标题】:get youtube videos listed in subsection of channel's 'videos'获取频道“视频”小节中列出的 youtube 视频
【发布时间】:2021-08-13 18:36:01
【问题描述】:

如何在频道的“视频”标签的下拉菜单项中列出视频?

它是带有 ID 的播放列表吗?如果我想获取所有上传的视频,我可以先查询播放列表'uploads'的id(这里是频道UCj7IJ427cnavyq2ZOpSKYfA):

GET https://youtube.googleapis.com/youtube/v3/channels?part=contentDetails&id=UCj7IJ427cnavyq2ZOpSKYfA&key=[YOUR_API_KEY] HTTP/1.1

{
  "kind": "youtube#channelListResponse",
  ...,
  "items": [
    {
      "kind": "youtube#channel",
      ...,
      "contentDetails": {
        "relatedPlaylists": {
          "likes": "",
          "favorites": "",
          "uploads": "UUj7IJ427cnavyq2ZOpSKYfA" # <- here it is!
        }
      }
    }
  ]
}

并使用它来运行playlistItems。但是只有“即将到来的直播”部分呢?

【问题讨论】:

    标签: youtube-data-api


    【解决方案1】:

    您应该使用Search.list API 端点,并通过相应设置的请求参数channelIdtypeeventType 调用:

    GET https://www.googleapis.com/youtube/v3/search?key=${API_KEY}&amp;type=video&amp;eventType=upcoming&amp;part=snippet&amp;maxResults=50&amp;channelId=${CHANNEL_ID},

    ${CHANNEL_ID} 是您感兴趣的频道的 ID,${API_KEY} 是您的 API 密钥。

    对于您上面提到的频道(ID 为 UCj7IJ427cnavyq2ZOpSKYfA),JSON 响应如下所示:

    {
      "kind": "youtube#searchListResponse",
      "etag": "...",
      "regionCode": "...",
      "pageInfo": {
        "totalResults": 4,
        "resultsPerPage": 4
      },
      "items": [
        {
          "kind": "youtube#searchResult",
          "etag": "quPJtDE4C_PAgFJU9QIjA5d_C4k",
          "id": {
            "kind": "youtube#video",
            "videoId": "JksecRTzbgo"
          },
          "snippet": {
            "publishedAt": "2021-05-19T10:33:39Z",
            "channelId": "UCj7IJ427cnavyq2ZOpSKYfA",
            "title": "LIVE: Т. Владимиров, фортепиано. Бах, Рахманинов, Шуберт",
            "description": "Тимофей ВЛАДИМИРОВ, фортепиано В программе: И.С. Бах. Шестиголосный ричеркар из цикла «Музыкальное приношение» Рамо – Годовский.",
            "thumbnails": {
               ...
            },
            "channelTitle": "MOSCOW INTERNATIONAL PERFORMING ARTS CENTER",
            "liveBroadcastContent": "upcoming",
            "publishTime": "2021-05-19T10:33:39Z"
          }
        },
        {
          "kind": "youtube#searchResult",
          "etag": "7LTWdzCS0NDFayU3zbfDcb3xky4",
          "id": {
            "kind": "youtube#video",
            "videoId": "G85Prxi4Mr0"
          },
          "snippet": {
            "publishedAt": "2021-05-25T12:28:10Z",
            "channelId": "UCj7IJ427cnavyq2ZOpSKYfA",
            "title": "LIVE: Лауреаты IV Конкурса пианистов В. Крайнева в возрастной категории от 16 до 22 лет",
            "description": "В День защиты детей Концерт победителей и лауреатов IV Международного конкурса пианистов Владимира Крайнева в возрастной категории от 16 ...",
            "thumbnails": {
               ...
            },
            "channelTitle": "MOSCOW INTERNATIONAL PERFORMING ARTS CENTER",
            "liveBroadcastContent": "upcoming",
            "publishTime": "2021-05-25T12:28:10Z"
          }
        },
        {
          "kind": "youtube#searchResult",
          "etag": "I4FOz2ykBQviPr_7vdF87240iG8",
          "id": {
            "kind": "youtube#video",
            "videoId": "tKDEjh37BrA"
          },
          "snippet": {
            "publishedAt": "2021-05-25T12:01:48Z",
            "channelId": "UCj7IJ427cnavyq2ZOpSKYfA",
            "title": "LIVE: Лауреаты IV Конкурса пианистов В. Крайнева в возрастной категории от 7 до 12 лет",
            "description": "В День защиты детей Концерт победителей и лауреатов IV Международного конкурса пианистов Владимира Крайнева в возрастной категории от 7 до ...",
            "thumbnails": {
               ...
            },
            "channelTitle": "MOSCOW INTERNATIONAL PERFORMING ARTS CENTER",
            "liveBroadcastContent": "upcoming",
            "publishTime": "2021-05-25T12:01:48Z"
          }
        },
        {
          "kind": "youtube#searchResult",
          "etag": "tpF_wpRF43W6fv1MGpNnCBSvCDU",
          "id": {
            "kind": "youtube#video",
            "videoId": "R9Em6BJW0e0"
          },
          "snippet": {
            "publishedAt": "2021-05-25T12:08:55Z",
            "channelId": "UCj7IJ427cnavyq2ZOpSKYfA",
            "title": "LIVE: Лауреаты IV Конкурса пианистов В. Крайнева в возрастной категории от 13 до 15 лет",
            "description": "В День защиты детей Концерт победителей и лауреатов IV Международного конкурса пианистов Владимира Крайнева в возрастной категории от 13 ...",
            "thumbnails": {
               ...
            },
            "channelTitle": "MOSCOW INTERNATIONAL PERFORMING ARTS CENTER",
            "liveBroadcastContent": "upcoming",
            "publishTime": "2021-05-25T12:08:55Z"
          }
        }
      ]
    }
    

    请注意,Search.list 端点相对昂贵:每次调用它都会花费您 100 单位的配额(从您的每日配额中计算,默认为 10000 单位)。

    【讨论】:

    • 当然,我对搜索很熟悉,但我特别希望在“视频”标签的某些命名部分中找到视频。只有那些,没有别的。
    • @Igor Pozdeev:所以你对即将到来的直播不感兴趣,根据你上面的截图和问题文本?
    • 它可能被命名为别的东西,我猜。 q 不是如何获取即将到来的直播,而是如何获取下拉菜单项中列出的视频@stvar
    • 对不起,@Igor Pozdeev,但我不明白你的意思。使用eventType=upcoming(连同type=videochannelId=...)查询的Search.list 返回指定频道上即将直播的视频 的视频ID。这难道不是您想要的:将在不久的将来在相应频道上直播的视频的 ID?你想实现别的目标吗?
    • 不,@Igor Pozdeev,正如我上面所说,就 YouTube 数据 API 的观点(与 YouTube 网站的观点相反)而言,不存在其他自动生成的播放列表(与用户定义的不同),不包括自动生成的上传播放列表的特殊情况。
    猜你喜欢
    • 2012-10-24
    • 2012-10-05
    • 2015-09-02
    • 2020-08-17
    • 1970-01-01
    • 2017-11-21
    • 2017-08-25
    • 2013-05-14
    • 2018-06-11
    相关资源
    最近更新 更多