如何从id刮掉youtube视频的缩略图?

时间:2016-10-28 02:39:19

标签: python youtube

我是python的新手,我想知道如何才能获得要打印的maxres缩略图,而不是关于视频的所有内容。对不起,如果答案有点明显,我对python和编程有点新意。

from apiclient.discovery import build

DEVELOPER_KEY = 'xxxxxx'
youtube = build('youtube', 'v3', developerKey=DEVELOPER_KEY)

ids = '6Gw-RyTRMns'
results = youtube.videos().list(id=ids, part='snippet').execute()
for result in results.get('items', []):
    print(results)    

我还想知道是否有办法从给定视频的描述中获取图片的URL并将其保存到文件夹中。

3 个答案:

答案 0 :(得分:1)

这要归功于YouTube。他们使用下面的链接来修改不同分辨率的缩略图。假设你需要的只是URL,只需格式化这样的字符串:

http://img.youtube.com/vi/<insert-youtube-video-id-here>/maxresdefault.jpg

您可以在此处找到类似的问题:How do I get a YouTube video thumbnail from the YouTube API?

您可以在此处找到有关Api的更多信息:https://developers.google.com/youtube/v3/

要迭代某个频道,您可以在此处找到另一个类似的问题:python: get all youtube video urls of a channel

要下载图像,您可以使用类似的内容。

import urllib
urllib.urlretrieve("http://img.youtube.com/vi/ytvideo/0.jpg")

答案 1 :(得分:0)

对于那些现在阅读此答案的人,更新的url方法是:

http://img.youtube.com/vi/<insert-youtube-video-id-here>/hqdefault.jpg

答案 2 :(得分:0)

这是一个简单的代码。正则表达式匹配所有共享和嵌入式URL

import re
url = # Any Youtube URL
exp = "^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#&?]*).*"
s = re.findall(exp,url)[0][-1]
thumbnail = f"https://i.ytimg.com/vi/{s}/maxresdefault.jpg"
print(thumbnail)