📜  在Python中使用 YouTube API 获取 YouTube 视频的观看次数、喜欢次数和标题的 GUI(1)

📅  最后修改于: 2023-12-03 14:51:20.051000             🧑  作者: Mango

在Python中使用 YouTube API 获取 YouTube 视频的观看次数、喜欢次数和标题的 GUI

本项目将介绍如何使用 Python 以及 Google 提供的 YouTube API 来获取 YouTube 视频的观看次数、喜欢次数以及视频标题等信息。同时,会以 GUI 的形式展示这些信息,让用户能够更加直观地了解该视频的情况。

准备工作

在开始之前,你需要准备以下工作:

  1. 安装 Python 3.x 环境
  2. 申请 Google 开发者账号并创建新的项目(详见 Google 开发者文档
  3. 安装 Google 提供的 Python 客户端库
获取视频信息

在获取视频信息之前,我们需要先设置 API 密钥,以便使用 YouTube API 进行访问。该 API 密钥可以在 Google 开发者后台的 API 面板中生成。

import google_auth_oauthlib.flow
import googleapiclient.discovery
import googleapiclient.errors

# 设置 API 密钥
DEVELOPER_KEY = 'your_developer_key'
YOUTUBE_API_SERVICE_NAME = 'youtube'
YOUTUBE_API_VERSION = 'v3'

def get_video_info(video_id):
    youtube = googleapiclient.discovery.build(
        YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION, developerKey=DEVELOPER_KEY)
    request = youtube.videos().list(
        part='snippet,statistics',
        id=video_id
    )
    response = request.execute()
    return response

在获取到视频信息后,我们可以通过 response 的键值访问到这些信息。例如,response['items'][0]['snippet']['title'] 就表示视频的标题。

编写 GUI 程序

为了更加方便用户获取视频信息,我们将使用 PyQt5 编写 GUI 程序,以便以更加直观的方式呈现这些信息。

from PyQt5.QtCore import Qt, QUrl
from PyQt5.QtGui import QDesktopServices
from PyQt5.QtWidgets import QApplication, QVBoxLayout, QHBoxLayout, QWidget, QLabel, QLineEdit, QPushButton

class YoutubeViewer(QWidget):
    def __init__(self):
        super().__init__()

        self.video_id_input = QLineEdit(self)
        self.video_id_input.setPlaceholderText('输入视频 ID')

        self.fetch_button = QPushButton('获取信息', self)
        self.fetch_button.clicked.connect(self.show_video_info)

        self.title_label = QLabel()
        self.views_label = QLabel()
        self.likes_label = QLabel()

        info_layout = QVBoxLayout()
        info_layout.addWidget(self.title_label)
        info_layout.addWidget(self.views_label)
        info_layout.addWidget(self.likes_label)

        input_layout = QHBoxLayout()
        input_layout.addWidget(self.video_id_input)
        input_layout.addWidget(self.fetch_button)

        main_layout = QVBoxLayout()
        main_layout.addLayout(input_layout)
        main_layout.addLayout(info_layout)
        self.setLayout(main_layout)

    def show_video_info(self):
        video_id = self.video_id_input.text()
        response = get_video_info(video_id)

        title = response['items'][0]['snippet']['title']
        views = response['items'][0]['statistics']['viewCount']
        likes = response['items'][0]['statistics']['likeCount']
        self.title_label.setText(f'<b>{title}</b>')
        self.views_label.setText(f'观看次数: {views}')
        self.likes_label.setText(f'喜欢次数: {likes}')

if __name__ == '__main__':
    app = QApplication([])
    window = YoutubeViewer()
    window.show()
    app.exec_()

这里我们新建了一个继承自 QWidget 的类 YoutubeViewer,在该类中实现了一个简单的 GUI 界面。其中,我们将视频 ID 作为输入框,使用 get_video_info 函数获取 YouTube 视频的信息,并使用 QLabel 显示标题、观看次数和喜欢次数。

运行程序

在完成上述代码后,我们就可以愉快地运行程序啦!在运行程序之前,确保 Python 客户端库已经安装,并在终端中执行以下命令:

python app.py

在程序运行之后,输入视频 ID 并点击获取信息按钮,即可在 GUI 窗口中看到视频的标题、观看次数和喜欢次数等信息了。

总结

以上就是如何使用 Python 以及 Google 提供的 YouTube API 来获取 YouTube 视频信息并以 GUI 界面来展示的完整流程。通过这个例子,我们不仅了解了如何与 API 进行交互,还学习了如何使用 PyQt5 来开发桌面应用。希望本项目对大家有所帮助!