YouTube 数据 API 未返回频道中的所有视频

问题描述 投票:0回答:1

我正在尝试获取频道中所有视频的列表,使用 playlistItems 列表通过传递 playlistId 来获取所有视频。示例-

使用channels.list API调用获取频道上传播放列表的ID:GET https://www.googleapis.com/youtube/v3/channels?part=contentDetails&id={YOUR_CHANNEL_ID}&key={YOUR_API_KEY}

使用 playlistItems.list 调用从上传播放列表中获取视频:GET https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=50&playlistId={YOUR_PLAYLIST_ID}&key={YOUR_API_KEY}

我正在使用下一页令牌来访问页面并循环,直到我不断获得下一页令牌。

但我注意到,这是非常不一致的。以上并没有返回该频道的所有视频。所有缺失的视频都可以在 YouTube 上找到,并且在使用传入其 videoId 的 VideosList 端点时也会返回有效数据。

到目前为止,我注意到每次都会丢失相同的视频,而它们在过去是可用的。这是 YouTube API 的已知问题吗?

还有其他方法可以获取所有状态(公共、私人、不公开)频道的所有视频吗?即使是可以拥有 50k+ 视频的大型频道。

youtube-api youtube-data-api
1个回答
1
投票
  1. https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=3&playlistId={YOUR_PLAYLIST_ID}&key={YOUR_API_KEY} 不会返回所有视频,因为

    maxResults=3
    您可以增加
    maxResults 
    最多 50 个。在获得前 50 个结果后(如果超过 50 个),将提供一个新的
    newPageToken
    ,您必须通过附加到之前的 URL
    &pageToken=THE_NEW_PAGE_TOKEN
    来使用它,依此类推。如果它无论如何都不起作用,您可能会对下一点感兴趣。

  2. 众所周知,YouTube 播放列表仅限于 20,000 个视频,因此从包含超过 50,000 个视频的频道恢复视频将无法正常工作,并且没有任何 YouTube Data API v3 端点可以恢复这些频道的所有视频。 但是 当您浏览包含超过 50,000 个视频的 YouTube 频道的

    Videos
    选项卡时,您会发现 PlayList 方法中所有丢失的视频。例如,您可以使用curl 在低级别上自动化此操作。 在这里您可能会发现Python代码正是这样做的。

© www.soinside.com 2019 - 2024. All rights reserved.