从 youtube 频道获取视频列表
Posted
技术标签:
【中文标题】从 youtube 频道获取视频列表【英文标题】:Get list of video from a youtube channel 【发布时间】:2012-10-24 11:25:57 【问题描述】:我正在使用这些 API https://developers.google.com/youtube/ 而且我不知道如何在给定 youtube 频道地址的情况下获取包含相关信息的视频列表(至少单个视频 url 和标题)
【问题讨论】:
如果你以前没见过this 可能会有用 有同样的问题。我看到了一种获取给定视频 ID 列表信息的方法,但无法检索频道的视频 ID 列表。 【参考方案1】:我知道这不再相关,但对于 2020 年的任何人来说,你需要一个 youtube v3 api 密钥
你可以使用的是
https://www.googleapis.com/youtube/v3/search?key=[API_KEY]&channelId=[CHANNEL_ID]&part=snippet,id&order=date&maxResults=50
您可以删除 sn-p,它不会给出所有视频的名称和其他信息。 ID 给出了视频 id
向 URL 发送 get 请求
【讨论】:
【参考方案2】:这有点复杂,但可以相对轻松地完成。诀窍在于知道频道实际上只是特定用户上传的视频列表。因此,当您说您有一个 youtube 频道地址时,该地址采用以下形式:
http://www.youtube.com/user/[username]
然后您可以通过用户上传的 Feed 获取视频:
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
【讨论】:
我想知道我是否想在没有任何身份验证的情况下获取任何用户的每日统计信息,这可能吗?如果是,那怎么办? 此方法不再可用【参考方案3】:如果 a) 频道有超过 50 个视频,或者 b) 需要在平面 txt 列表中格式化的 youtube 视频 ID,则此方法特别有用:
-
获取 Youtube API v3 密钥(请参阅https://***.com/a/65440324/2585501)
获取频道的Youtube频道ID(见https://***.com/a/16326307/2585501)
获取频道的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)
安装 youtube-dl(例如 pip3 install --upgrade youtube-dl
或 sudo apt-get install youtube-dl
)
使用 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)
【讨论】:
以上是关于从 youtube 频道获取视频列表的主要内容,如果未能解决你的问题,请参考以下文章