【问题标题】:How to scrape the thumbnail of a youtube video from id?如何从 id 中抓取 youtube 视频的缩略图?
【发布时间】:2017-03-10 21:09:08
【问题描述】:

我对 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 并将其保存到文件夹中。

【问题讨论】:

    标签: python youtube


    【解决方案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")
    

    【讨论】:

    • 我将如何做我的问题的第二部分?
    • 在那个问题中,您的意思是直接从视频描述中获取链接吗?
    • 如果是这样我建议使用正则表达式,你可以在这里找到一个例子:maxresdefault.jpg
    • @yevvy 我已经用一个链接更新了答案,你可以用它来实现这个
    【解决方案2】:

    对于现在阅读此答案的人来说,更新后的 url 方法是:

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

    【讨论】:

      【解决方案3】:

      这是一个简单的代码。正则表达式匹配所有共享和嵌入的 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)
      

      【讨论】:

      • 解释一下正则表达式可能很好
      猜你喜欢
      • 2017-10-14
      • 1970-01-01
      • 2020-06-26
      • 1970-01-01
      • 2013-06-05
      • 2018-07-17
      • 2011-10-23
      • 2011-10-12
      • 2015-10-31
      相关资源
      最近更新 更多