【问题标题】:Get all playlist ids from channel id - youtube api v3从频道 ID 获取所有播放列表 ID - youtube api v3
【发布时间】:2015-01-06 01:19:55
【问题描述】:

我目前正在学习youtube api 的使用。我想从channel id 中检索所有playlists id。我通读了文档,发现我可以使用youtube.channels.list 来完成这样的任务。我对api_page 进行了基本测试。尽管如此,我还是不知道用什么params 来获取playlist id。如何从给定的 channel id 中检索所有 playlist ids

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

【问题讨论】:

    标签: youtube youtube-api


    【解决方案1】:

    一个简单的方法:

    使用YouTube API v3 使用资源playlists.list

    使用此参数获取频道的播放列表 ID:

    part: 'snippet'
    channelId: 'UCBkNpeyvBO2TdPGVC_PsPUA'
    

    https://www.googleapis.com/youtube/v3/playlists?part=snippet&channelId=UCBkNpeyvBO2TdPGVC_PsPUA&key={YOUR_API_KEY}

    输出:

     "items": [
      {
    
       "kind": "youtube#playlist",
       "etag": "\"PSjn-HSKiX6orvNhGZvglLI2lvk/K21sgPQuMRCjhSMBjm3v3n5tl1o\"",
       "id": "PL2qcutlDmS0CnyV8Jcbl2d7yFxd2iGg67",
       "snippet": {
        "publishedAt": "2014-07-08T03:13:37.000Z",
        "channelId": "UCBkNpeyvBO2TdPGVC_PsPUA",
        "title": "These Things Happen Series",
        "description": "",
        "thumbnails": {
         "default": {
          "url": "https://i.ytimg.com/vi/93mgU_VXZrA/default.jpg",
          "width": 120,
          "height": 90
         },
         "medium": {
          "url": "https://i.ytimg.com/vi/93mgU_VXZrA/mqdefault.jpg",
          "width": 320,
          "height": 180
         },
         "high": {
          "url": "https://i.ytimg.com/vi/93mgU_VXZrA/hqdefault.jpg",
          "width": 480,
          "height": 360
         },
         "standard": {
          "url": "https://i.ytimg.com/vi/93mgU_VXZrA/sddefault.jpg",
          "width": 640,
          "height": 480
         },
         "maxres": {
          "url": "https://i.ytimg.com/vi/93mgU_VXZrA/maxresdefault.jpg",
          "width": 1280,
          "height": 720
         }
        },
        "channelTitle": "GEazyTV"
       }
      },
      {
    
       "kind": "youtube#playlist",
       "etag": "\"PSjn-HSKiX6orvNhGZvglLI2lvk/5ifuvTYKbyV6DUPqbTa2bnO2jWY\"",
       "id": "PL2qcutlDmS0B0jwHOQYzgRhJpnxDwPBHc",
       "snippet": {
        "publishedAt": "2014-06-05T07:36:58.000Z",
        "channelId": "UCBkNpeyvBO2TdPGVC_PsPUA",
        "title": "B-Sides",
        "description": "",
        "thumbnails": {
         "default": {
          "url": "https://i.ytimg.com/vi/f7Ua9wKvVtI/default.jpg",
          "width": 120,
          "height": 90
         },
         "medium": {
          "url": "https://i.ytimg.com/vi/f7Ua9wKvVtI/mqdefault.jpg",
          "width": 320,
          "height": 180
         },
         "high": {
          "url": "https://i.ytimg.com/vi/f7Ua9wKvVtI/hqdefault.jpg",
          "width": 480,
          "height": 360
         },
         "standard": {
          "url": "https://i.ytimg.com/vi/f7Ua9wKvVtI/sddefault.jpg",
          "width": 640,
          "height": 480
         },
         "maxres": {
          "url": "https://i.ytimg.com/vi/f7Ua9wKvVtI/maxresdefault.jpg",
          "width": 1280,
          "height": 720
         }
        },
        "channelTitle": "GEazyTV"
       }
      },
    ...
    

    这是一个带有随机通道的示例。

    如果您不知道如何获取频道的 channelID,请使用 ressource channels.list:

    使用此参数获取播放列表的视频 ID:

    part: 'id'
    forUsername: 'channel_name'
    

    https://www.googleapis.com/youtube/v3/channels?part=id&forUsername=GEazyTV&key={YOUR_API_KEY}

     "items": [
      {
    
       "kind": "youtube#channel",
       "etag": "\"PSjn-HSKiX6orvNhGZvglLI2lvk/vIwM6ev74Om0AOupX26jJoEDELU\"",
       "id": "UCBkNpeyvBO2TdPGVC_PsPUA"
      }
    

    【讨论】:

    • 这似乎不适用于 php 客户端。检查这个问题stackoverflow.com/questions/26831919/…
    • 当您想通过 API 获取他们的视频时,YT 频道会很生气。您的请求 URL 似乎适用于您提供的示例,但不适用于频道 UCdKAVgh1r5u_Vjw70PdrgjA。知道为什么吗?
    【解决方案2】:

    我不确定我是如何找到这个解决方案的,但我发现如果您按照这些步骤操作,那么您可以检索要使用的播放列表 ID:

    1. 使用 Google API 控制台创建 API 密钥。

    2. 使用
      https://www.googleapis.com/youtube/v3/channels?part=contentDetails&key=[KEY FROM GOOGLE API CONSOLE]&id=[CHANNEL ID]
      您正在用相应的信息替换所有内容,包括括号(我发现频道 ID 很容易获得,因为它们通常在 URL 中。PlaylistID 是一个比较困难的)。

      李>
    3. 第 2 步中 URL 生成的提要应包含一个 uploads 对象,其中包含第 4 步中 URL 中使用的播放列表 ID。

    4. 使用
      https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&playlistId=[PLAYLIST ID RETRIEVED IN STEP 3 HERE]&key=[KEY FROM GOOGLE API CONSOLE]

    第 4 步中的链接最终应该在应用中使用。

    这对我每次都有效,并且我将 YouTube v3 API 集成到许多应用中。我完全同意@Utkanos 的comment 的观点,虽然@mpgn 的answer 有时有效,但它肯定不适用于所有频道。

    【讨论】:

    • channelId和uploads是同一个ID吗?
    【解决方案3】:

    Youtube Api v3 频道播放列表视频最多 50 个

    这种网址格式有效

    https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&playlistId=[]&key=[]&maxResults=50

    【讨论】:

      猜你喜欢
      • 2015-07-05
      • 1970-01-01
      • 2023-03-31
      • 2018-02-19
      • 1970-01-01
      • 2015-08-20
      • 2020-10-02
      • 2023-04-03
      • 2016-03-01
      相关资源
      最近更新 更多