Youtube python:获取缩略图
有没有简单的方法可以从一个YouTube视频对象 gdata.youtube.YouTubeVideoEntry 中获取默认的缩略图?
我试过用 entry.media.thumbnail,但那样会得到四个缩略图对象。我可以相信总是会有四个吗?我怎么知道哪个是默认的缩略图,也就是在YouTube搜索页面上会显示的那个?我该怎么获取这个缩略图?还是说我需要修改其他的缩略图?
当我知道视频ID的时候,我会用:
http://i4.ytimg.com/vi/{{video_id}}/default.jpg
所以,获取视频ID也是很有帮助的。
我真的需要解析其中一个网址才能得到视频ID吗?感觉他们不直接提供这个信息有点奇怪。
3 个回答
0
获取高质量缩略图的最简单方法是:
"https://img.youtube.com/vi/[vid_id]/maxresdefault.jpg"
你可以通过下面的方式找到视频的ID:
"https://www.youtube.com/watch?v=[this is video id]"
最后:
url = ....
imgUrl = f"https://img.youtube.com/vi/{url[url.find('watch?v='):]}/maxresdefault.jpg"
3
这里教你如何从一个 gdata.youtube.YouTubeVideoEntry
对象中获取默认的缩略图:
import gdata.youtube.service
service = gdata.youtube.service.YouTubeService()
feed_url = 'http://gdata.youtube.com/feeds/api/standardfeeds/most_viewed?v=2'
feed = service.GetYouTubeVideoFeed(feed_url)
entry = feed.entry[0] # pick most viewed video as sample entry
thumbnail = entry.media.thumbnail[0].url
# will be an URL like: 'http://i.ytimg.com/vi/%(video_id)s/default.jpg'
# when querying YouTube API version 2 ('?v=2' at the end of feed URL)
你不能指望总是有4个缩略图(不过这种情况几乎总是成立)。默认的缩略图是缩略图列表中的第一个。
你还可以通过 entry.id.text
获取视频的链接,并从末尾提取出实际的视频ID,但你不能假设像 'http://i4.ytimg.com/vi/%(video_id)s/default.jpg'
这样的固定格式能给你缩略图的链接。你应该从视频条目中获取缩略图的链接。
补充:要获取列表中第一个“default.jpg”缩略图,你需要查询YouTube API的版本2(在链接后面加上一个额外的“?v=2”参数)。我更新了示例以便更清楚。
6
你可以把视频的ID放到一个特定的网址里:
thumnail_url = "http://img.youtube.com/vi/%s/0.jpg" % video_id
或者你可以创建一个模板过滤器:https://djangosnippets.org/snippets/2234/