5

我正在使用这些 api https://developers.google.com/youtube/ 并且我不知道如何在给定 youtube 频道地址的情况下获取包含相关信息的视频列表(至少单个视频 url 和标题)

4

3 回答 3

6

我知道这不再相关,但对于 2020 年的任何人来说,你需要一个 youtube v3 api 密钥

你可以使用的是

https://www.googleapis.com/youtube/v3/search?key=[API_KEY]&channelId=[CHANNEL_ID]&part=snippet,id&order=date&maxResults=50

您可以删除片段,它不会提供所有视频的名称和其他信息。ID 给出了视频 id

向 URL 发送获取请求

于 2020-01-21T18:03:10.387 回答
4

这有点令人费解,但可以相对轻松地完成。诀窍在于知道频道实际上只是特定用户上传的视频列表。因此,如果您说您有一个 youtube 频道地址,则该地址采用以下形式:

http://www.youtube.com/user/[username]

然后您可以使用用户上传的提要获取视频:

https://gdata.youtube.com/feeds/api/users/[username]/uploads

作为旁注,如果您使用提要:

https://gdata.youtube.com/feeds/api/users/[username]

您将获得有关用户的额外信息,包括一系列元素,这些元素为您提供各种提要链接(其中一个是我上面提到的上传提要),其中还包含视频数量等信息。

相反,如果您的频道 URL 采用以下形式:

https://www.youtube.com/channel/UC[userid]

请注意,这种 URL 总是以 UC 开头,然后是一个长字符串。在这种情况下,只需删除 UC,然后访问此提要:

https://gdata.youtube.com/feeds/api/users/[userid]/uploads
于 2012-11-08T07:49:26.777 回答
3

如果 a) 频道有超过 50 个视频,或者 b) 希望 youtube 视频 id 格式为平面 txt 列表,则此方法特别有用:

  1. 获取 Youtube API v3 密钥(参见https://stackoverflow.com/a/65440324/2585501
  2. 获取频道的Youtube频道ID(见https://stackoverflow.com/a/16326307/2585501
  3. 获取频道的 Uploads Playlist ID:(https://www.googleapis.com/youtube/v3/channels?id={channel Id}&key={API key}&part=contentDetails基于https://www.youtube.com/watch?v=RjUlmco7v2M
  4. 安装 youtube-dl(例如pip3 install --upgrade youtube-dlsudo apt-get install youtube-dl
  5. 使用 youtube-dl 下载上传播放列表:(youtube-dl -j --flat-playlist "https://<yourYoutubePlaylist>" | jq -r '.id' | sed 's_^_https://youtu.be/_' > videoList.txt请参阅https://superuser.com/questions/1341684/youtube-dl-how-download-only-the-playlist-not-the-files-therein
于 2020-12-24T15:48:26.270 回答