You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Kivy与Pytube开发App,能否无需YouTube Data API获取视频播放量与点赞数?

解决方案:无需额外第三方库/YouTube Data API获取播放量、点赞数

方法1:基于Pytube内置HTML解析提取

Pytube的YouTube对象会获取视频页面的原始HTML,你可以直接通过正则匹配从中提取播放量、点赞数,无需额外安装依赖:

from pytube import YouTube
import re

def get_video_stats(url):
    yt = YouTube(url)
    html_content = yt.watch_html
    
    # 提取播放量
    view_match = re.search(r'"viewCount":"(\d+)"', html_content)
    view_count = view_match.group(1) if view_match else "无法获取"
    
    # 提取点赞数
    like_match = re.search(r'"likeCount":"(\d+)"', html_content)
    like_count = like_match.group(1) if like_match else "无法获取"
    
    return {"播放量": view_count, "点赞数": like_count}

调用示例:

stats = get_video_stats("https://www.youtube.com/watch?v=xxx")
print(stats["播放量"], stats["点赞数"])

注意:YouTube页面结构可能会迭代更新,若某天匹配失效,需要检查最新HTML中数据的格式,调整正则表达式即可。

方法2:尝试Pytube的metadata属性(部分版本支持)

部分新版本的Pytube中,YouTube对象的metadata属性已封装了这类元数据,可直接读取:

yt = YouTube("你的视频链接")
view_count = yt.metadata.get("viewCount", "无法获取")
like_count = yt.metadata.get("likeCount", "无法获取")

这种方式更稳定,无需自己写正则,建议优先尝试,若你的Pytube版本不支持再用方法1。

整合到Kivy应用

将上述逻辑封装后,在Kivy的UI回调中调用,更新对应组件的显示内容即可:

# 假设你有Kivy输入框和标签组件
def on_fetch_stats(self):
    video_url = self.link_input.text.strip()
    if not video_url:
        return
    stats = get_video_stats(video_url)
    self.view_count_label.text = f"播放量:{stats['播放量']}"
    self.like_count_label.text = f"点赞数:{stats['点赞数']}"

内容的提问来源于stack exchange,提问作者mrlinbr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 08:15:35