【问题标题】:How to get notification when youtube channel uploads video in pythonyoutube频道在python中上传视频时如何获得通知
【发布时间】:2021-09-07 02:10:35
【问题描述】:

我正在尝试创建一个脚本,该脚本会在 youtube 频道上传视频时通知我。就像订阅按钮一样

我尝试过的:
我曾尝试寻找有关此的文档,并且在此过程中还学习了如何在 Google Cloud 中设置 YouTube V3 API。我发现最近的库是python-youtubeyoutube-channel-subscribe

到目前为止我的进步:
我已经尝试过 youtube-channel-subscribe 但问题在于它打开浏览器然后订阅,这将不起作用,因为我将在服务器上运行它。我已经浏览了 python-youtube 文档,但我认为它没有这个功能(我可能错了)

任何帮助将不胜感激。

【问题讨论】:

    标签: python python-3.x youtube youtube-api


    【解决方案1】:

    这么简单,

    1. 找到您要监控的页面。
    1. 获取它的 URL 并使用 Python Library Beautiful Soup 抓取它。 https://pypi.org/project/beautifulsoup4/.

    2. 列表项

    3. 为该文件的第一个版本创建一个 Json 文件(您可以非常简单,只需使用最新视频的名称即可)。

    4. 在你喜欢的任何时间间隔,再次调用 python scraper 进行比较

    5. 当 JSON 文件不同时,(如果最近的名称与原始名称不同,则执行 x)API 调用 Zapier https://zapier.com/

    6. 通过 api 调用让 Zapier 向您发送有关更改的短信。

    上面的代码可以直接在文档中找到。如果您想要一种更完整的抓取方法,可以绕过来自客户端网站的任何类型的阻止,我会使用代理链接仅供参考。

    【讨论】:

      【解决方案2】:

      这可以通过简单地使用 2 个内置的 Python 库来完成:requestsre。基本上,我们要监控 YouTube 频道的最新视频。

      我们可以通过这几行代码获取任何YouTube频道最新视频的标题、上传日期和观看次数:

      import requests
      import re
      
      channel = "https://www.youtube.com/user/PewDiePie"
      
      html = requests.get(channel + "/videos").text
      info = re.search('(?<={"label":").*?(?="})', html).group()
      date = re.search('\d+ \w+ ago.*seconds ', info).group()
      
      print(info)
      print(date)
      

      输出:

      Reacting To Strangers Secrets by PewDiePie 4 hours ago 11 minutes, 54 seconds 584,062 views
      4 hours ago 11 minutes, 54 seconds 
      

      您可以将视频的信息 (将相对日期转换为绝对日期) 存储在数据库中,并且只要 info 带有数据库中不存在的标题,或者 date包含一个从当前日期减去的时间,比数据库中的最后一个日期晚,则新视频已上传。

      【讨论】:

      • 嘿兄弟,只是想知道如何获取视频的网址。无论如何感谢您的帮助
      • @Joel 很高兴为您提供帮助。可以使用url = "https://www.youtube.com/watch?v=" + re.search('(?&lt;="videoId":").*?(?=")', html).group()获取最新视频的url。
      • 非常感谢!我认为你的回答应该得到如此快速的回应。无论如何,谢谢它会有很大帮助
      猜你喜欢
      • 2017-03-08
      • 1970-01-01
      • 1970-01-01
      • 2020-10-14
      • 2012-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多